概述
由于在内网环境,因此不能直接通过官网提供的脚本方式来下载istioctl客户端二进制文件,只能手工下载来安装。
安装
istioctl安装
下载istioctl并安装
下载istio-1.21.0-linux-amd64.tar.gz到服务器上:
https://github.com/istio/istio/releases/
tar zxvf istio-1.21.0-linux-amd64.tar.gz
cd istio-1.21.0
mv bin/istioctl /usr/local/bin
执行命令:istioctl
Istio profile
执行命令:istioctl profile list
Istio configuration profiles:
ambient
default
demo
empty
external
minimal
openshift
preview
remote
- default: default 是官方推荐的用于生产环境的profile。它在组件的选择上做到了最合适,比如组件中它只开启了 ingressgateway。可以通过 istioctl profile dump 命令来查看默认的设置。
- demo: demo profile 仅供学习使用,并不合适作为生产环境,也不适合用于性能测试。它会安装 Bookinfo app。
- minimal: 与default profile相同,但仅安装控制平面组件。用户要使用 单独的配置文件 配置控制平面和数据平面组件(例如,网关)。
- external: 用于配置远程集群。
- empty: empty profile 不会开启任何组件。该 profile 的作用是提供一个干净的模板供有经验的 istio 使用者自定义配置。
- preview: preview profile为探索 Istio 的新功能而设计,它不保证稳定性、安全性和性能 - 使用者风险自负,不适合用于生产环境。
各个profile的组件安装情况如下所示
安装istio
指定使用demo profile安装:
istioctl install --set profile=demo -y
Helm安装
同样,需要手工下载helm及其istio组件进行安装。helm使用文档参考:https://helm.sh/zh/docs/intro/install/
下载helm及部署
https://github.com/helm/helm/releases
选择helm-v3.14.0-linux-amd64.tar.gz下载
tar -zxvf helm-v3.14.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm help
Helm 安装 Istio
配置 Helm 存储库
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
为 Istio 组件,创建命名空间 istio-system
kubectl create namespace istio-system
安装 Istio Base Chart,它包含了集群范围的自定义资源定义 (CRD),这些资源必须在部署 Istio 控制平面之前安装:
helm install istio-base istio/base -n istio-system --set defaultRevision=default
helm ls -n istio-system
安装 Istio Discovery Chart,它用于部署 istiod 服务:
helm install istiod istio/istiod -n istio-system --wait
内网连接不到的话,从helm应用商店下载chat包:
Helm应用商店
下载:istiod-1.21.0.tgz
helm install istiod istiod-1.21.0.tgz -n istio-system --wait #安装时需要修改镜像仓库地址
kc edit deploy istiod -n istio-system
image: reg.privatexx.com/docker.io/istio/pilot:1.21.0
或者:
tar zxvf istiod-1.21.0.tgz
cd istiod
vi values.yaml
hub: "reg.privatexx.com/docker.io/istio" #修改镜像仓库地址
helm install istiod ./ -n istio-system
cd istio-1.21.0/manifests/charts/gateways/istio-ingress
修改hub:reg.privatexx.com/
helm install istio-ingress ./ -n istio-system
istio-1.21.0/manifests/charts/gateways/istio-egress
修改hub:reg.privatexx.com/
helm install istio-egress ./ -n istio-system
获取已安装的 Helm Chart 的状态,确保它已部署:
helm status istiod -n istio-system
检查 istiod 服务是否安装成功,确认其 Pod 是否正在运行:
kubectl get deployments -n istio-system
安装 Istio 的入站网关
kubectl create namespace istio-ingress
helm install istio-ingress istio/gateway -n istio-ingress --wait
卸载Istio
列出在命名空间 istio-system 中安装的所有 Istio Chart:
helm ls -n istio-system
删除 Istio 的所有网关 Chart:
helm delete istio-ingress -n istio-ingress
kubectl delete namespace istio-ingress
删除 Istio Discovery Chart:
helm delete istiod -n istio-system
删除 Istio Base Chart:
helm delete istio-base -n istio-system
删除命名空间 istio-system:
kubectl delete namespace istio-system









网友评论