在k8s集群中使用istioctl安装istio
在k8s集群中使用istioctl安装istio
在k8s集群中使用istioctl安装istio
版本对照
Istio版本 | K8s版本 |
---|---|
1.15 | 1.22, 1.23, 1.24, 1.25 |
1.14 | 1.21, 1.22, 1.23, 1.24 |
1.13 | 1.20, 1.21, 1.22, 1.23 |
我是用的版本是(istio 1.15.4 k8s 1.23.0)
1 安装istioctl
前置条件 docker、k8s安装正常
k8s的安装可以参考:
https://blog.csdn.net/m0_49952522/article/details/127883644?spm=1001.2014.3001.5502
官方给出了很多安装的方式,推荐istioctl。operator的方式比较简单,但是官方不在优先支持。
官网采用的命令大概率会超时。
$ curl -L https://istio.io/downloadIstio | sh -
# 指定具体版本
$ curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.15.4 sh -
这里直接去github上下载压缩文件
https://github.com/istio/istio/releases/tag/1.15.4
直接选istio,不要选istioctl。
下载完成后在linux上解压。
tar -xvf istio-1.15.4-linux-amd64.tar.gz
进入istio-1.15.4文件夹,将bin临时添加到环境变量。
按变量的生存周期来划分,Linux变量可分为两类:
1.永久的:需要修改配置文件,变量永久生效
2.临时的:使用export命令声明即可,变量在关闭shell时失效
export PATH=$PWD/bin:$PATH
测试istioctl是否正常运行。
istioctl version
2 安装istio(多节点集群)
通过 -f 传递配置文件
新建yaml文件或通过vi创建。
vi my-demo-config.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
profile: demo
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
profile: demo
istioctl install -f istio-deploy.yaml
kubectl get pod -nistio-system
3 单节点k8s集群(仅有一个master)
安装istio时出错,Istiod encountered an error: failed to wait for resource: resources not ready after 5m0s: timed out waiting for the condition
这里的timeout除了网络问题,在单节点k8s集群还有可能是因为:
- 这个timeout是假的,其实是机器内存要16G以上试下
- 如果k8s是只有master节点的话要开启允许master节点调度
3.1 允许master调度pod
查看节点调度
可以看到master节点存在污点(也有的安装后master没有污点就应该可以正常安装)。
kubectl describe node|grep -E "Name:|Taints:"
删除污点
kubectl taint node master node-role.kubernetes.io/master-
设置为尽量不调度
kc taint node master node-role.kubernetes.io/master=:PreferNoSchedule
重新执行
istioctl install -f istio-deploy.yaml
4 启用 Istio,注入sidecar
注入前,每个pod里面只有一个镜像
Istio 默认自动注入 Sidecar. 为命名空间打上标签 istio-injection=enabled
kubectl label namespace ctt istio-injection=enabled
# 覆盖
# kubectl label namespace default istio-injection=enabled --overwrite
删除pod(会重新启动达到deployment中定义的数量)或重新apply deployment。
kubectl delete pod -n ctt eureka-client-7c84cb577c-h8mng eureka-server-74ffd79d64-7768x service-provider-v1-b4bcc65fc-jdn6k service-provider-v2-95fd56fcf-z54jd
变成2/2说明sidecar注入成功。
5 卸载
可选的 --purge 参数将移除所有 Istio 资源,包括可能被其他 Istio 控制平面共享的、集群范围的资源。
#删除所有资源
istioctl uninstall --purge
参考
https://blog.csdn.net/qq_41854911/article/details/119300127?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167150460116782425620022%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=167150460116782425620022&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-119300127-null-null.142v68pc_new_rank,201v4add_ask,213v2t3_esquery_v3&utm_term=linux%20export&spm=1018.2226.3001.4187
https://blog.csdn.net/qq_44823950/article/details/125589202?ops_request_misc=&request_id=&biz_id=102&utm_term=k8s%20master%E5%BC%80%E5%90%AF%E8%B0%83%E5%BA%A6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-125589202.142v68pc_new_rank,201v4add_ask,213v2t3_esquery_v3&spm=1018.2226.3001.4187
https://zhuanlan.zhihu.com/p/506007550
更多推荐
所有评论(0)