二 Istio:在Kubernetes(k8s)集群上安装部署istio1.14( 七 )

我们还在文件中添加了命名空间资源,以创建 istio-system 命名空间 。
我们需要做的最后一件事是创建资源:
[root@k8scloude1 istioyaml]# kubectl apply -f istio-demo-profile.yamlWarning: resource namespaces/istio-system is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.namespace/istio-system configuredistiooperator.install.istio.io/demo-istio-install created#可以查看istio-system命名空间下的所有资源[root@k8scloude1 istioyaml]# kubectl get all -o wide -n istio-systemNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATESpod/istio-egressgateway-58949b7c84-k7v6f1/1Running03m38s10.244.112.173k8scloude2<none><none>pod/istio-ingressgateway-75bc568988-9j4wv1/1Running03m38s10.244.251.238k8scloude3<none><none>pod/istiod-84d979766b-kz5sd1/1Running04m20s10.244.112.130k8scloude2<none><none>NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGESELECTORservice/istio-egressgatewayClusterIP10.102.56.241<none>80/TCP,443/TCP3m35sapp=istio-egressgateway,istio=egressgatewayservice/istio-ingressgatewayLoadBalancer10.107.131.65192.168.110.19015021:30093/TCP,80:32126/TCP,443:30293/TCP,31400:30628/TCP,15443:30966/TCP3m35sapp=istio-ingressgateway,istio=ingressgatewayservice/istiodClusterIP10.103.37.59<none>15010/TCP,15012/TCP,443/TCP,15014/TCP4m21sapp=istiod,istio=pilotNAMEREADYUP-TO-DATEAVAILABLEAGECONTAINERSIMAGESSELECTORdeployment.apps/istio-egressgateway1/1113m39sistio-proxydocker.io/istio/proxyv2:1.14.3app=istio-egressgateway,istio=egressgatewaydeployment.apps/istio-ingressgateway1/1113m39sistio-proxydocker.io/istio/proxyv2:1.14.3app=istio-ingressgateway,istio=ingressgatewaydeployment.apps/istiod1/1114m21sdiscoverydocker.io/istio/pilot:1.14.3istio=pilotNAMEDESIREDCURRENTREADYAGECONTAINERSIMAGESSELECTORreplicaset.apps/istio-egressgateway-58949b7c841113m39sistio-proxydocker.io/istio/proxyv2:1.14.3app=istio-egressgateway,istio=egressgateway,pod-template-hash=58949b7c84replicaset.apps/istio-ingressgateway-75bc5689881113m39sistio-proxydocker.io/istio/proxyv2:1.14.3app=istio-ingressgateway,istio=ingressgateway,pod-template-hash=75bc568988replicaset.apps/istiod-84d979766b1114m21sdiscoverydocker.io/istio/pilot:1.14.3istio=pilot,pod-template-hash=84d979766b一旦 Operator 检测到 IstioOperator 资源,它将开始安装 Istio 。整个过程可能需要5分钟左右 。
为了检查安装的状态,我们可以看看 istio-system 命名空间中的 Pod 的状态 。
[root@k8scloude1 istioyaml]# kubectl get pod -o wide -n istio-systemNAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATESistio-egressgateway-58949b7c84-k7v6f1/1Running09m20s10.244.112.173k8scloude2<none><none>istio-ingressgateway-75bc568988-9j4wv1/1Running09m20s10.244.251.238k8scloude3<none><none>istiod-84d979766b-kz5sd1/1Running010m10.244.112.130k8scloude2<none><none>当所有的 Pod 都在运行时,Operator 已经完成了 Istio 的安装 。
6.5 启用 sidecar 注入服务网格需要让每个应用程序同时运行 sidecar 代理 。
要将 sidecar 代理注入到现有的 Kubernetes 部署中,我们可以使用 istioctl 命令中的 kube-inject 动作 。
然而,我们也可以在任意 Kubernetes 命名空间上启用 sidecar 自动注入 。如果我们用 istio-injection=enabled 标记命名空间,Istio 会自动为我们在该命名空间中创建的所有 Kubernetes Pod 注入 sidecar 。
让我们通过添加标签来启用 microservice 命名空间的 sidecar 自动注入 。
#创建命名空间[root@k8scloude1 istioyaml]# kubectl create ns microservicenamespace/microservice created[root@k8scloude1 istioyaml]# kubectl label namespace microservice istio-injection=enablednamespace/microservice labeled

经验总结扩展阅读