云计算-k8s实战指南:从 ServiceMesh 服务网格、流量管理、limitrange管理、亲和性、环境变量到RBAC管理全流程
介绍
本文是一份 Kubernetes 与 ServiceMesh 实战操作指南,涵盖多个核心功能配置场景。从 Bookinfo 应用部署入手,详细演示了通过 Istio 创建 Ingress Gateway 实现外部访问,以及基于用户身份、请求路径的服务网格路由规则配置,同时为应用微服务设置了默认目标规则。
还包含 Pod 时间同步、内存资源 LimitRange 配置、节点亲和性调度、环境变量设置等基础操作,以及 RBAC 权限管理中角色创建与集群角色绑定的完整流程。每个配置均提供具体 YAML 文件示例和执行命令,适合学习快速掌握 K8s 及服务网格的实操技能。
1.流量管理--创建 Ingress Gateway
使用提供的软件包ServiceMesh.tar.gz将Bookinfo应用部署到default命名空间下,使用Istio Gateway 可以实现应用程序从外部访问,请为 Bookinfo 应用创建一个名为bookinfo-gateway的网关,指定所有HTTP流量通过 80 端口流入网格,然后将网关绑定到虚拟服务bookinfo上。
[root@k8s-master-node1 ~]# tar -zxvf ServiceMesh.tar.gz [root@k8s-master-node1 ~]#docker load -i ServiceMesh/images/image.tar [root@k8s-master-node1 ~]# cd ServiceMesh/ [root@k8s-master-node1 ServiceMesh]# kubectl apply -f bookinfo/bookinfo.yaml ---------------------------------------------------------------------------- [root@k8s-master-node1 samples]# kubectl get pods NAME READY STATUS RESTARTS AGE details-v1-79f774bdb9-m98sl 1/1 Running 0 46s productpage-v1-6b746f74dc-snpf9 1/1 Running 0 46s ratings-v1-b6994bb9-nmws8 1/1 Running 0 46s reviews-v1-545db77b95-4rtn4 1/1 Running 0 46s [root@k8s-master-node1 samples]# kubectl apply -f bookinfo/bookinfo.yaml [root@k8s-master-node1 ServiceMesh]# vi bookinfo-gateway.yaml apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: bookinfo-gateway spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" --- apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: bookinfo spec: hosts: - "*" gateways: - bookinfo-gateway http: - match: - uri: exact: /productpage route: - destination: host: productpage port: number: 9080 [root@master ServiceMesh]# kubectl apply -f bookinfo-gateway.yaml