一旦 Operator 检测到 IstioOperator 资源,它将开始安装 Istio 。整个过程可能需要5分钟左右 。
为了检查安装的状态,我们可以看看 istio-system
命名空间中的 Pod 的状态 。
【二 Istio:在Kubernetes(k8s)集群上安装部署istio1.14】[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
要检查命名空间是否被标记,请运行下面的命令 。microservice
命名空间应该是唯一一个启用了该值的命名空间 。
[root@k8scloude1 istioyaml]# kubectl get namespace -L istio-injectionNAMESTATUSAGEISTIO-INJECTIONapp-team1Active163dmicroserviceActive3m39senabledmy-appActive162dnetworkActive219dns1Active256d#或者这样查询[root@k8scloude1 istioyaml]# kubectl get namespace -l istio-injection=enabledNAMESTATUSAGEmicroserviceActive6m56s
现在我们可以尝试在 microservice
命名空间创建一个 Deployment,并观察注入的代理 。我们将创建一个名为 mynginx
的 Deployment,使用hub.c.163.com/library/nginx:latest镜像的单一容器 。
[root@k8scloude1 istioyaml]# kubectl create deployment mynginx --image=hub.c.163.com/library/nginx:latest -n microservicedeployment.apps/mynginx created
如果我们看一下 Pod , 你会发现 Pod 里有两个容器 。
[root@k8scloude1 istioyaml]# kubectl get deployment -n microserviceNAMEREADYUP-TO-DATEAVAILABLEAGEmynginx1/11127s[root@k8scloude1 istioyaml]# kubectl get pod -n microserviceNAMEREADYSTATUSRESTARTSAGEmynginx-5cb948ffc5-wv29l2/2Running035s
同样地,描述 Pod 时会显示 Kubernetes 同时创建了一个 nginx
容器和一个 istio-proxy
容器:
[root@k8scloude1 istioyaml]# kubectl describe pod mynginx-5cb948ffc5-wv29l -n microserviceName:mynginx-5cb948ffc5-wv29l......Events:TypeReasonAgeFromMessage-------------------------NormalScheduled12mdefault-schedulerSuccessfully assigned microservice/mynginx-5cb948ffc5-wv29l to k8scloude2NormalPulled12mkubeletContainer image "docker.io/istio/proxyv2:1.14.3" already present on machineNormalCreated12mkubeletCreated container istio-initNormalStarted12mkubeletStarted container istio-initNormalPulling12mkubeletPulling image "hub.c.163.com/library/nginx:latest"NormalPulled12mkubeletSuccessfully pulled image "hub.c.163.com/library/nginx:latest" in 2.24360029sNormalCreated12mkubeletCreated container nginxNormalStarted12mkubeletStarted container nginxNormalPulled12mkubeletContainer image "docker.io/istio/proxyv2:1.14.3" already present on machineNormalCreated12mkubeletCreated container istio-proxyNormalStarted12mkubeletStarted container istio-proxy
运行下面的命令,删除deployment:
[root@k8scloude1 istioyaml]# kubectl delete deployment mynginx -n microservicedeployment.apps "mynginx" deleted[root@k8scloude1 istioyaml]# kubectl get deployment -n microserviceNo resources found in microservice namespace.[root@k8scloude1 istioyaml]# kubectl get pod -n microserviceNo resources found in microservice namespace.
6.6 更新和卸载 Istio如果我们想更新当前的安装或改变配置文件,那么需要更新先前部署的 IstioOperator
资源 。
要删除安装,我们必须删除 IstioOperator
,例如:
[root@k8scloude1 istioyaml]# kubectl get istiooperator -n istio-systemNAMEREVISIONSTATUSAGEdemo-istio-installHEALTHY45m[root@k8scloude1 istioyaml]# kubectl delete istiooperator demo-istio-install -n istio-system
在 Operator 删除了Istio 后,运行下面的命令来删除 Operator:
推荐阅读
- 二 Three光线检测-实现摄像机向鼠标点击位置滑动动画
- 一加9RT支持5G吗_一加9RT支不支持5G
- vivoX70Pro值得买吗_vivoX70Pro值不值得入手
- 创造与魔法9月14日最新礼包礼包码在哪领
- 我们平时吃的菠萝是长在?支付宝
- 暗区突围电视台免费宝箱位置在哪
- 17 基于SqlSugar的开发框架循序渐进介绍-- 基于CSRedis实现缓存的处理
- 北京广安门医院挂号攻略外地人就医看病指南
- 怎么在电脑上下载【智学网】新手教程
- 安装包里面的东西怎么下载(安装包在哪里可以下载)