Istio安装

2025-03-10  本文已影响0人  sknfie

概述

由于在内网环境,因此不能直接通过官网提供的脚本方式来下载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
  1. default: default 是官方推荐的用于生产环境的profile。它在组件的选择上做到了最合适,比如组件中它只开启了 ingressgateway。可以通过 istioctl profile dump 命令来查看默认的设置。
  2. demo: demo profile 仅供学习使用,并不合适作为生产环境,也不适合用于性能测试。它会安装 Bookinfo app。
  3. minimal: 与default profile相同,但仅安装控制平面组件。用户要使用 单独的配置文件 配置控制平面和数据平面组件(例如,网关)。
  4. external: 用于配置远程集群。
  5. empty: empty profile 不会开启任何组件。该 profile 的作用是提供一个干净的模板供有经验的 istio 使用者自定义配置。
  6. 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应用商店

https://artifacthub.io/

下载: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
上一篇 下一篇

猜你喜欢

热点阅读