istio 的安装应该非常简单,我们不需要自己去修改每个Pod的定义来增加一个proxy
我们前提是有一个Kubernetes, 可以是自己的minikube ,也可是aws 的eks
然后我们需要一些yaml file ,我们可以从这个git 获取
https://github.com/DickChesterwood/istio-fleetman/tree/master/_course_files/warmup-exercise
其实就是一些CRD的定义,customer resouce define , 这是k8s给我们的一些扩展,安装这些CRD以后,我们的k8s 就会监听istio 相关的
具体看一下
1 2 3 4 5 6 7 8 9 |
cat 1-istio-init.yaml apiVersion: v1 kind: Namespace metadata: name: istio-system labels: istio-operator-managed: Reconcile istio-injection: disabled ..... |
当我们执行了
1 |
kubectl apply -f https://raw.githubusercontent.com/DickChesterwood/istio-fleetman/master/_course_files/warmup-exercise/1-istio-init.yaml |
我们的istio就完成了了CRD的部分,然后我们需要安装istio相关的pod 来负责逻辑处理部分
1 |
kubectl apply -f https://raw.githubusercontent.com/DickChesterwood/istio-fleetman/master/_course_files/warmup-exercise/2-istio-minikube.yaml |
这个命令创建完成以后,我们就安装了一些istio 相关的Pod ,包括grafana,prometheus , kiali 等,都是一些方便我们来监控我们的cluster
然后我们需要执行另外的两个文件
1 |
kubectl apply -f https://raw.githubusercontent.com/DickChesterwood/istio-fleetman/master/_course_files/warmup-exercise/3-kiali-secret.yaml |
这两个文件主要是一些用户名和密码kiali, 用户名和passwd 是base64的,需要decode一下,admin/admin 默认的用户名和密码
第四个是一个例子app,用来让我们有真实的数据来演示istio
注意,我们需要额外设置一下我们sidecar-injector,这个pod的作用就是监听我们的所有的pod,如果我们创建了新的,pod就会帮我们注入一个proxypod ,我们什么都不需要修改我们的application
但是默认情况下sidecar-injector 是不会注入任何的pod,我们需要设置一下
1 |
kubectl label namespace default istio-injection-enabled |
上边的命就是给我们的default namepsace 添加一个标签 istio-injection-enabled , 然后我们的default namespace下的 pod 都会被自动的注入一个side car === proxy
1 |
kubectl apply -f https://raw.githubusercontent.com/DickChesterwood/istio-fleetman/master/_course_files/warmup-exercise/4-application-full-stack.yaml |
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021