我有一个版本为
1.27.3-gke.100
的 GKE autpilot 集群,我想在其中安装 istio。该集群是在没有标签 --workload-policies=allow-net-admin
的情况下创建的。如何在现有 GKE 集群上启用它?
NET_ADMIN 对于 Istio 等服务网格:在集群创建命令中指定 --workload-policies=allow-net-admin 。适用于运行 GKE 1.27 及更高版本的新集群和升级后的现有集群。
我相信这是在设置可运行的 istio+GKE 自动驾驶仪之前解决的最后一块难题。
如果可能需要别人的帮助,以下是我在到达上述死胡同之前所做的事情以及解决方法。
FAIL 1:看起来 istio 要求注入 sidecar,但流量丢失了。打开防火墙规则
FAIL 2(和当前):新部署没有创建任何内容。看起来 ReplicaSet 失败了:
│ Warning FailedCreate 6s (x17 over 5m36s) replicaset-controller Error creating: admission webhook "warden-validating.common-webhooks.networking.gke.io" denied the request: GKE Warden rejected the request be │
│ cause it violates one or more constraints. │
│ Violations details: {"[denied by autogke-default-linux-capabilities]":["linux capability 'NET_ADMIN' on container 'istio-init' not allowed; Autopilot only allows the capabilities: 'AUDIT_WRITE,CHOWN,DAC_OVERRIDE │
│ ,FOWNER,FSETID,KILL,MKNOD,NET_BIND_SERVICE,NET_RAW,SETFCAP,SETGID,SETPCAP,SETUID,SYS_CHROOT,SYS_PTRACE'."]} │
│ Requested by user: 'system:serviceaccount:kube-system:replicaset-controller', groups: 'system:serviceaccounts,system:serviceaccounts:kube-system,system:authenticated'.
1.27.3-gke.100
。但错误仍然存在将 GKE 集群升级到 1.27 后,运行 gcloud 容器集群更新 CLUSTER_NAME --workload-policies=allow-net-admin 以启用 Istio 所需的 NET_ADMIN 功能