YAZONG 我的开源

Kubernetes(十三)istio(13.3)下载安装istioctl与使用IstioOperator部署istio

  , , ,
0 评论0 浏览

下载安装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

image.png

[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