Kubernetes集群(z-k8s)配置Cilium结合Istio¶
Cilium Istio集成起步 可以快速完成Cilium集成 Istio服务网格 ,使得 Cilium 获得更为强大的7层网络控制: 通过Istio sidecar代理实现的具有mTLS加密流量的HTTP L7网络策略。
设置Cilium集成Istio¶
备注
当采用 Cilium完全取代kube-proxy运行Kubernetes 架构 ( Kubernetes集群(z-k8s)配置Cilium完全取代kube-proxy ),就需要在 cilium
CLI 传递 --config bpf-lb-sock-hostns-only=true
或者 在 helm 选项中使用 socketLB.hostNamespaceOnly
。如果没有这个选项,当Cilium通过socket负载均衡提供服务解析(service resolution)时,会bypass掉Istio sidecar,这就导致Istio的加密(encryption)和遥测(telemetry)功能无效。
简化且正确配置方法: 更新Cilium kube-proxy free配置,激活 socketLB.hostNamespaceOnly 以集成Istio(不修改默认配置)¶
API_SERVER_IP=z-k8s-api.staging.huatai.me
API_SERVER_PORT=6443
helm upgrade cilium cilium/cilium --version 1.12.1 \
--namespace kube-system \
--reuse-values \
--set kubeProxyReplacement=strict \
--set socketLB.hostNamespaceOnly=true \
--set k8sServiceHost=${API_SERVER_IP} \
--set k8sServicePort=${API_SERVER_PORT}
安装cilium-istioctl¶
检查确认cilium已经运行在集群中:
cilium status
下载
cilium enhanced istioctl
:
下载cilium增强istioctl¶
curl -L https://github.com/cilium/istio/releases/download/1.10.6-1/cilium-istioctl-1.10.6-1-linux-amd64.tar.gz | tar xz
部署默认istio配置到Kubernetes:
安装cilium增强istioctl¶
./cilium-istioctl install -y
添加一个namespace标签让Istio能够在部署应用时自动注入 Envoy负载均衡/反向代理 sidecar 代理:
为namespace添加标签,以便istio能够自动注入sidecar proxy¶
kubectl label namespace default istio-injection=enabled