5.1 部署 istio

5.1.1 Istio 版本的支持状态

版本 目前支持 发行日期 停止维护 支持的 Kubernetes 版本 未测试,可能支持的 Kubernetes 版本
master 否,仅限开发
1.11 2021年8月12日 ~2022年2月(预期) 1.19, 1.20, 1.21, 1.22 1.16, 1.17, 1.18
1.10 2021年5月18日 ~2021年11月(预期) 1.18, 1.19, 1.20, 1.21 1.16, 1.17, 1.22
1.9 2021年2月9日 2021年8月24日 1.17, 1.18, 1.19, 1.20 1.15, 1.16
1.8 2020年11月10日 2021年5月12日 1.16, 1.17, 1.18, 1.19 1.15
1.7 2020年8月21日 2021年2月25日 1.16, 1.17, 1.18 1.15
1.6及更早 -

由于我们部署的 Kubernetes 为1.22版本,通过上面的表可以知道,istio 支持的版本为 1.11

5.1.2 没有已知漏洞披露(CVEs)的版本

主版本 没有已知 CVEs 的补丁版本
1.11.x 1.11.1+
1.10.x 1.10.4+
1.9.x 1.9.8+
1.8及更早

5.1.3 下载istio-1.11

下载指定版本通过ISTIO_VERSIONOS_ARCH指定,不指定默认下载最新版本,当前最新版本为1.11.1

ISTIO_VERSION=1.11.1
OS_ARCH=amd64
wget https://github.com/istio/istio/releases/download/${ISTIO_VERSION}/istio-${ISTIO_VERSION}-linux-${OS_ARCH}.tar.gz
tar xf istio-${ISTIO_VERSION}-linux-${OS_ARCH}.tar.gz -C /usr/local

解压istioctl二进制文件

tar xf istio-${ISTIO_VERSION}-linux-${OS_ARCH}.tar.gz --strip-components 2 \
  -C /usr/local/bin istio-${ISTIO_VERSION}/bin/istioctl

根据官方的介绍有3种安装方式:istioct安装,helm安装,operator安装,使用operator安装依赖istioctl

另外测试发现operator安装的默认的镜像在grc.io仓库,版本为1.4-dev

5.1.4 使用operator安装istio

部署Istio Operator

istio-operator默认安装在istio-operator名称空间下

istioctl operator init
Installing operator controller in namespace: istio-operator using image: docker.io/istio/operator:1.11.1
Operator controller will watch namespaces: istio-system
✔ Istio operator installed
✔ Installation complete

安装istio

kubectl create ns istio-system
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: demo
EOF
istiooperator.install.istio.io/example-istiocontrolplane created

Istio Operator控制器在创建IstioOperator资源的90秒内启动Istio的安装。Istio安装过程将在120秒内完成。

检查pods

kubectl get po -n istio-system 
NAME                                    READY   STATUS    RESTARTS   AGE
istio-egressgateway-6f9d4548b-5ggbl     1/1     Running   0          50s
istio-ingressgateway-5dc645f586-2qqhr   1/1     Running   0          50s
istiod-65f8649bc-8q4wh                  1/1     Running   0          77s

检查services

kubectl get svc -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP      10.110.243.82    <none>        80/TCP,443/TCP                                                               62s
istio-ingressgateway   LoadBalancer   10.101.76.136    <pending>     15021:32631/TCP,80:30933/TCP,443:31777/TCP,31400:30110/TCP,15443:30541/TCP   62s
istiod                 ClusterIP      10.111.182.210   <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        88s

5.1.5 使用istioctl安装

不同profile的功能列表:安装配置文件

查看预设的profile

istioctl profile list
Istio configuration profiles:
    default
    demo
    empty
    external
    minimal
    openshift
    preview
    remote

通过预设的profile进行安装

istioctl install --set profile=demo

查看profile的配置

istioctl profile dump default

istioctl自定义安装

istioctl install --set profile=demo \
  --set values.global.imagePullPolicy=IfNotPresent \
  --set meshConfig.outboundTrafficPolicy.mode=ALLOW_ANY
This will install the Istio 1.11.1 demo profile with ["Istio core" "Istiod" "Ingress gateways" "Egress gateways"] components into the cluster. Proceed? (y/N) y
✔ Istio core installed
✔ Istiod installed
✔ Egress gateways installed
✔ Ingress gateways installed
✔ Installation complete
Thank you for installing Istio 1.11.  Please take a few minutes to tell us about your install/upgrade experience!  https://forms.gle/kWULBRjUv7hHci7T6

卸载istio

istioctl x uninstall --purge

新手建议直接使用default,如果想要体验完整功能则建议使用demo。

istioctl manifest apply --set profile=demo
This will install the Istio 1.11.1 demo profile with ["Istio core" "Istiod" "Ingress gateways" "Egress gateways"] components into the cluster. Proceed? (y/N) y
✔ Istio core installed
✔ Istiod installed
✔ Egress gateways installed
✔ Ingress gateways installed
✔ Installation complete
Thank you for installing Istio 1.11.  Please take a few minutes to tell us about your install/upgrade experience!  https://forms.gle/kWULBRjUv7hHci7T6

检查运行状态

kubectl get po -n istio-system

输出如下

NAME                                    READY   STATUS    RESTARTS   AGE
istio-egressgateway-6f9d4548b-przfm     1/1     Running   0          70s
istio-ingressgateway-5dc645f586-c8z6s   1/1     Running   0          70s
istiod-79b65d448f-wflf5                 1/1     Running   0          100s

查看svc

kubectl get svc -n istio-system
NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP      10.100.153.42    <none>        80/TCP,443/TCP                                                               80s
istio-ingressgateway   LoadBalancer   10.110.200.116   <pending>     15021:30161/TCP,80:31197/TCP,443:30715/TCP,31400:30986/TCP,15443:30867/TCP   80s
istiod                 ClusterIP      10.106.31.251    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        111s

修改为NodePort

kubectl patch -n istio-system svc istio-ingressgateway  -p '{"spec": {"type": "NodePort"}}'
service/istio-ingressgateway patched

再次查看

NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
istio-egressgateway    ClusterIP   10.100.153.42    <none>        80/TCP,443/TCP                                                               100s
istio-ingressgateway   NodePort    10.110.200.116   <none>        15021:30161/TCP,80:31197/TCP,443:30715/TCP,31400:30986/TCP,15443:30867/TCP   100s
istiod                 ClusterIP   10.106.31.251    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        2m11s
Copyright © huangzhongde.cn 2021 all right reserved,powered by Gitbook该文件修订时间: 2022-01-28 00:02:24

results matching ""

    No results matching ""