摘要:
workloadgroup类似于deployment;workloadentry类似于pod;存活探针不是服务网格的关注点;workloadgroup必须配置应用程序的就绪探针
关键点:
- 在vm上输入所有节点的路由route add -net 172.25.244.192/26 gw 192.168.31.211......;
- 将东西向网关的主机名硬编码到vm的hosts文件中;
- istio-eastwestgateway为NodePort,修改/etc/istio/envoy/sidecar.env (与/var/lib/istio/envoy/sidecar.env是一个文件)和/var/lib/istio/config/mesh,将15012修改为对应的NodePort端口号;
- token 失效,通过在 master 节点重新生成vm配置信息,并将 token 的内容复制过来再重试;
- 重新安装istio-sidecar.deb前使用-P参数删除dpkg -P istio-sidecar;
- readinessProbe问题见以下第一项(必须在workloadgroup.yaml中配置应用程序的就绪探针,因为控制平面要根据工作负载的健康状态确定流量是否应该被路由,当应用程序不健康时,端点会被从数据平面中移除)。
1、查看自动生成的workloadentry,Healthy状态为 "False"的处理,原因是debian虚拟机的/etc/istio/config/mesh文件中path与workloadgroup.yaml中的不一致,修改mesh文件,重新生成vm配置信息后OK。
# k -n vm-airnet get workloadentry airnet-mysql-192.168.31.222 -oyaml
message: 'failed to get readiness stats: server.state is not yet updated: '
status: "False" --------->status: "True",服务进程为启动也为"False"
type: Healthy
root@debian:/home# ./forum-linux-amd64
Server is listening in port:8080
root@debian:/home/vm-airnet# nmap -Pn -p 8080 192.168.31.222
Starting Nmap 7.93 ( https://nmap.org ) at 2024-01-02 06:55 EST
Nmap scan report for debian (192.168.31.222)
Host is up (0.000093s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
root@debian:/home/vm-airnet# more /etc/istio/config/mesh
readinessProbe:
httpGet:
path: /api/healthz
port: 8080 --------->监听8080端口的服务进程必须启动./forum-linux-amd64 Server is listening in port:8080
root@k8s-master01 vm-airnet]# more workloadgroup.yaml
apiVersion: networking.istio.io/v1alpha3
kind: WorkloadGroup
spec:
probe:
httpGet:
port: 8080
path: /api/healthz
2、测试将流量路由到workloadentry
[root@k8s-master01 vm-airnet]# k -n vm-airnet exec -ti tool-97f9cfd66-4j9b2 -- curl -is forum.vm-airnet.svc:/api/users |grep HTTP
HTTP/1.1 200 OK
[root@k8s-master01 vm-airnet]# istioctl proxy-config endpoints deploy/webapp.vm-airnet |grep forum
172.27.14.210:8080 HEALTHY OK outbound|80||forum.bookinfo.svc.cluster.local
192.168.31.222:8080 HEALTHY OK outbound|80||forum.vm-airnet.svc.cluster.local