8

ISTIO学习笔记(3)-安装istio

 3 years ago
source link: http://vearne.cc/archives/39414
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | http://vearne.cc

注意: 本文涉及的服务版本

k8s: v1.18.2
istio: 1.7.3

警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。

最近重新部署了一套k8s + istio的集群,在安装istio遇到了些问题,简单的记录一下。

istio 1.7.3 不再支持helm方式安装。仅支持istioctl和Operator模式进行安装。

  • istioctl模式 使用命令行的方式与k8s集群进行交互
  • Operator模式 会启动一个IstioOperator容器(常驻,不退出) 容器,然后用户可以通过kubectl提交配置文件给IstioOperator容器,由IstioOperator容器来完成istio核心模块或者相关插件的安装

2.1 istioctl模式安装

2.1.1 下载
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.7.3
  • samples/ 目录下,有示例应用程序
  • bin/ 目录下,包含 istioctl 的客户端文件。istioctl 工具用于手动注入 Envoy sidecar 代理。
  • manifests/profiles 目录中有具体的配置文件
2.1.2 将 istioctl 客户端路径增加到 path 环境变量中
export PATH=$PWD/bin:$PATH
2.1.3 显示可用配置文件的列表
$ istioctl profile list
Istio configuration profiles:
    remote
    separate
    default
    demo
    empty
    minimal
2.1.4 安装

不同的配置文件区别在于安装的模块有多有少,建议使用default配置

istioctl manifest install --set profile=default

安装完成以后

╰─$ kubectl get pod -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-579b9c8998-47mjg   1/1     Running   0          20h
istiod-fb4fbff6b-2nb9r                  1/1     Running   0          21h

Pilot应该是集成到istiod中了,这里简单说下ingressgateway,与之对应的还有egressgateway

  • ingressgateway 是整个网格的入口流量网关,可以执行负载均衡、重试、超时等逻辑,具体实现是envoy
  • egressgateway 是整个网格的出口流量网关,可以执行负载均衡、重试、超时等逻辑,具体实现是envoy

ingressgateway针对的是网格内部的服务,egressgateway针对的是网格外部的服务。
使用方法参考 萌叔的文章 ISTIO学习笔记(1)-配置GATEWAY

istio

如果网格外部的请求经过 –> istio-ingressgateway –> 网格内部的服务且配置了重试、超时等路由策略,那么这些策略都是生效的。

前面有几次安装都出现了问题,原因是笔者重启了集群
报的错误形如:
pod报如下错误,

Readiness probe failed: Get http://172.20.3.6:15021/healthz/ready: dial tcp 172.20.3.6:15021: connect: connection refused」
kubectl logs dm-backend-6f8d445b6d-9mpwb -c istio-proxy -n default -f

发现是pilot-agentpilot无法连通,导致envoy启动异常,进而导致Ready检查失败。初步怀疑与停止、启动时,集群组件执行顺序有关,萌叔没有做进一步的排查。另外单纯重启部分Node节点和etcd节点都没有发现问题。


请我喝杯咖啡

微信支付码


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK