我试图从GKE集群检索集群客户端证书,以与Kubernetes服务器API进行身份验证。我使用GKE API来检索集群信息,但是客户端证书and客户端密钥在响应中为空。经过进一步调查,我发现Google Kubernetes Engine在最新版本中默认禁用了客户端证书。现在,当我尝试在集群设置中启用它时,它会显示
客户端证书不可变。
我的问题是如何为GKE集群启用客户端证书。
根据gitlab的规定,从1.12开始,新的集群将不会颁发客户端证书。您可以使用--[no-]issue-client-certificate
标志手动启用(或禁用)客户端证书的颁发。默认情况下,集群将禁用基本身份验证和客户端证书颁发。
根据@ david,你可以创建一个拥有客户端证书的集群>使用下面的命令启用,之后在该集群上修改是不可能的。
gcloud container clusters create YOUR-CLUSTER --machine-type=custom-2-12288 --issue-client-certificate --zone us-central1-a
作为一种解决方案,如果您想在现有的集群上启用客户端证书,您可以使用命令行和命令末尾的——issue-client-certificate克隆(复制)集群,如下所示:
gcloud beta container --project "xxxxxxxx" clusters create "high-mem-pool-clone-1" --zone "us-central1-f" --username "admin" --cluster-version "1.16.15-gke.6000" --release-channel "None" --machine-type "custom-2-12288" --image-type "COS" --disk-type "pd-standard" --disk-size "100" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "3" --enable-stackdriver-kubernetes --no-enable-ip-alias --network "projects/xxxxxxx/global/networks/default" --subnetwork "projects/xxxxxxxx/regions/us-central1/subnetworks/default" --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0 --issue-client-certificate