下载安装istioctl
istioctl需要下载到部署了kubectl的节点上
1.1 github官方下载
下载安装脚本(有时候会出现下载不下来的问题,可以直接使用文档中的脚本文件)
$ curl -sL https://istio.io/downloadIstioctl > download-istioctl.sh
执行脚本下载
下载指定版本
$ ISTIO_VERSION=1.9.5 sh download-istioctl.sh
下载最新版本
$ sh download-istioctl.sh
1.2 网盘下载
由于github的网络不稳定,时常无法访问,可在网盘下载1.9.5版本的二进制文件:
> 链接: "https://pan.baidu.com/s/1akMTf606lVzOWFdhnXOmsQ" 提取码: nnw4
2. 解压缩,并设置好环境
把istioctl加入到PATH里面,并测试可用性
[root@node-2 ~]# tar -zxf istio-1.9.5-linux-amd64.tar.gz
解压缩下载的文件后,进入到istio的bin目录中
[root@node-2 ~]# cd istio-1.9.5
[root@node-2 istio-1.9.5]# cd bin
把当前目录添加到PATH
[root@node-2 istio-1.9.5]# vim /etc/profile
ISTIO_HOME=/root/istio-1.9.5
PATH=$ISTIO_HOME/bin:$PATH
export ISTIO_HOME
export PATH
[root@node-2 istio-1.9.5]# source /etc/profile
测试
[root@node-2 istio-1.9.5]# istioctl version
#在当前istioctl下面没有POD是没有问题的。
no running Istio pods in "istio-system"
1.9.5
[root@node-2 bin]# istioctl version --remote
no running Istio pods in "istio-system"
1.9.5
[root@node-2 bin]# kubectl version --short
Client Version: v1.19.7
Server Version: v1.19.7
使用IstioOperator部署istio
1. 初始化
初始化有下载镜像的过程,可能时间过长。可以把"科学上网代理"打开。
[root@node-2 istio-1.9.5]# istioctl operator init
Installing operator controller in namespace: istio-operator using image: docker.io/istio/operator:1.9.5
Operator controller will watch namespaces: istio-system
? Istio operator installed
? Installation complete
创建命名空间istio-operator。
此命令运行 operator 在 istio-operator 命名空间中创建以下资源:
- operator 自定义资源定义(CRD)
- operator 控制器的 deployment 对象
- 一个用来访问 operator 指标的服务
- Istio operator 运行必须的 RBAC 规则
2. 安装
使用 operator 安装 Istio(demo的profile,该有的不该有的都有了)
[root@node-2 istio-1.9.5]# kubectl create ns istio-system
namespace/istio-system created
在istio-system命名空间下,创建一个kind类型为IstioOperator的资源对象。
IstioOperator预设了几个profile,相当于几个套餐,每个套餐包含的功能和组件有所不同。
这个demo是一个示例,比较全的套餐,能把istio的核心功能都包含进去。
[root@node-2 istio-1.9.5]# 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
3. 检查安装结果
#operator controller会监控istio-system这个namespace,那么会看到这个配置文件的创建,会自动把istio拉起来,相比于之前的istio安装方式省时省事太多。
# 查看service
[root@node-2 istio-1.9.5]# kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-egressgateway ClusterIP 10.200.139.110 <none> 80/TCP,443/TCP,15443/TCP 4m17s
istio-ingressgateway LoadBalancer 10.200.65.178 <pending> 15021:30700/TCP,80:32271/TCP,443:30668/TCP,31400:30996/TCP,15443:31376/TCP 4m17s
istiod ClusterIP 10.200.48.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m48s
# 查看pod
[root@node-2 istio-1.9.5]# kubectl get pods -n istio-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
#入口流量egressgateway和出口流量ingressgateway。
istio-egressgateway-6fd7c998b5-pc8fd 1/1 Running 0 5m2s 10.233.99.6 gluster-02 <none> <none>
istio-ingressgateway-6495dc6f8d-plcts 1/1 Running 0 5m2s 10.233.99.5 gluster-02 <none> <none>
#重要的是istiod。1.5之后istio发生非常大的变更,把组件都合并到了一个istiod组件中,那么启动istiod就相当于istio跑起来可用了。
istiod-78ccbd5f7-hlszk 1/1 Running 0 5m33s 10.233.99.4 gluster-02 <none> <none>
[root@node-2 istio-1.9.5]# kubectl get all -n istio-system -o wide
[root@node-2 ~]# ./root-transition.sh check-root
Fetching root cert from istio-system namespace...
base64: invalid input
Your Root Cert will expire after
Dec 20 11:46:36 2032 GMT
Current time is
Fri Dec 23 20:02:14 CST 2022
=====YOU HAVE 3649 DAYS BEFORE THE ROOT CERT EXPIRES!=====
[root@gluster-01 ~]# crictl ps|grep istio
865abe7655a9c b49c302f73d45 14 minutes ago Running istio-operator 0 f937974537734
[root@gluster-01 ~]# crictl images|grep istio
docker.io/istio/operator 1.9.5 b49c302f73d45 74MB
[root@gluster-02 ~]# crictl ps|grep istio
7a9c812721658 89aff37ea4a73 10 minutes ago Running istio-proxy 0 fe96e1d4627a0
311858075b9fb 89aff37ea4a73 10 minutes ago Running istio-proxy 0 bccca4b2c1707
[root@gluster-02 ~]# crictl images|grep istio
docker.io/istio/pilot 1.9.5 7d14cde315648 73.8MB
docker.io/istio/proxyv2 1.9.5 89aff37ea4a73 91.8MB
标题:Kubernetes(十三)istio(13.3)下载安装istioctl与使用IstioOperator部署istio
作者:yazong
地址:https://blog.llyweb.com/articles/2022/12/24/1671814980401.html