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

时间:2017-01-12 09:39:01

标签: kubernetes google-kubernetes-engine

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

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

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

注意:

我尝试通过调用:

来修改群集的配置
kubectl apply -f some-resource.yaml

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

kubectl edit service/resource

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

2 个答案:

答案 0 :(得分:8)

我正在使用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

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

答案 1 :(得分:2)

您现在可以创建/克隆现有集群, 在“群集”页面上,单击“创建群集”,然后选择一个现有群集。但是请记住,这不会克隆您可能需要使用第三方工具(例如Velero)来帮助您备份资源的api资源。

以下是一些有用的链接