前置条件
安装K8S

Istio 安装部署

查看安装配置

mkdir /home/deploy/istio && cd /home/deploy/istio

wget https://github.com/istio/istio/releases/download/1.7.0/istio-1.7.0-linux-amd64.tar.gz && tar -zxvf istio-1.7.0-linux-amd64.tar.gz && cp istio-1.7.0/bin/istioctl /usr/local/bin/




创建命名空间
kubectl create ns istio-system

第一种 直接安装。 这种做法安装简单,相当于一键部署
istioctl manifest install -y

第二种 使用清单文件进行安装

配置第三方服务帐户令牌
--set values.global.jwtPolicy=first-party-jwt 加上这个参数,暂时可以不用另外配置证书了

可以在安装 Istio 之前使用 manifest generate 子命令生成清单,而不是 manifest apply,我认为这样比较可控。 例如,使用以下命令为 default 配置文件生成清单
istioctl manifest generate \
--set profile=default \
--set values.global.jwtPolicy=first-party-jwt \
  > generated-manifest.yaml

使用清单文件进行安装
[root@master istio]# kubectl apply -f generated-manifest.yaml

# 卸载 default 配置文件安装的集群
[root@master istio]# kubectl delete -f generated-manifest.yaml

验证安装是否成功
[root@master istio]# istioctl verify-install -f generated-manifest.yaml



安装MetalLB来解决K8S service LoadBalancer问题

查看pod
[root@master istio]# kubectl get svc -n istio-system
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                                                      AGE
istio-ingressgateway   LoadBalancer   10.222.73.189   192.168.20.106   15021:31797/TCP,80:32578/TCP,443:31676/TCP,15443:31801/TCP   98s
istiod                 ClusterIP      10.222.18.230   <none>           15010/TCP,15012/TCP,443/TCP,15014/TCP,853/TCP                2m57s
[root@master istio]#
[root@master istio]#
[root@master istio]# kubectl get pods -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-746548c687-fwpkl   1/1     Running   0          106s
istiod-6c5f6f55ff-cfrd7                 1/1     Running   0          3m5s
[root@master istio]#
[root@master istio]#






分类: Istio

毛巳煜

高级软件开发全栈架构师

工信部备案号:辽ICP备17016257号-2