如何克隆Google Container Cluster/Kubernetes群集?

Paw*_*zur 3 kubernetes google-kubernetes-engine

如标题.我想克隆(创建现有集群的副本).

如果无法复制/克隆Google Container Engine集群,那么如何克隆Kubernetes集群?

如果那是不可能的,有没有办法转储整个群集配置?

注意:

我尝试通过调用来修改集群的配置:

kubectl apply -f some-resource.yaml
Run Code Online (Sandbox Code Playgroud)

但是没有什么能阻止我/其他员工通过运行来修改集群:

kubectl edit service/resource
Run Code Online (Sandbox Code Playgroud)

或者从命令行kubectl调用设置属性.

Cam*_*mil 9

我正在使用来自CoreOS团队的bash脚本,经过小幅调整,效果非常好.默认情况下,它不包括kube-system命名空间,但如果需要,您可以调整它.您还可以添加或删除要复制的资源.

for ns in $(kubectl get ns --no-headers | cut -d " " -f1); do
  if { [ "$ns" != "kube-system" ]; }; then
  kubectl --namespace="${ns}" get --export -o=json svc,rc,rs,deployments,cm,secrets,ds,statefulsets,ing | \
jq '.items[] |
    select(.type!="kubernetes.io/service-account-token") |
    del(
        .spec.clusterIP,
        .metadata.uid,
        .metadata.selfLink,
        .metadata.resourceVersion,
        .metadata.creationTimestamp,
        .metadata.generation,
        .status,
        .spec.template.spec.securityContext,
        .spec.template.spec.dnsPolicy,
        .spec.template.spec.terminationGracePeriodSeconds,
        .spec.template.spec.restartPolicy
    )' >> "./my-cluster.json"
  fi
done
Run Code Online (Sandbox Code Playgroud)

要在另一个群集上还原它,您必须执行 kubectl create -f ./my-cluster.json

  • 更新:在 gcp 中我必须删除“--export” (2认同)