Merge release 1.12 into release 1.13 (#14171)

* ZH-trans: Update coarse-parallel-processing-work-queue.md (#11862)

* ZH-trans: Update coarse-parallel-processing-work-queue.md

* Update coarse-parallel-processing-work-queue.md

* zh-trans: add /docs/concepts/architecture/cloud-controller.md (#11799)

* docs/concepts/architecture/cloud-controller.md

* docs/concepts/architecture/cloud-controller.md

* docs/concepts/architecture/cloud-controller.md

* fix

* fix

* fix

* zh-trans: /docs/contribute/style/kubernetes-components.md (#11838)

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

zh-trans: /docs/contribute/generate-ref-docs/kubernetes-components.md; update

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

* Update weave-network-policy.md (#11858)

* ZH-trans: add Update define-environment-variable-container.md (#11859)

* Update define-environment-variable-container.md

* Update define-environment-variable-container.md

* Update define-environment-variable-container.md

* Update define-environment-variable-container.md

* Update define-environment-variable-container.md

* Update fine-parallel-processing-work-queue.md (#11863)

* Update fine-parallel-processing-work-queue.md

* Update fine-parallel-processing-work-queue.md

* Update setup-extension-api-server.md (#11864)

* zh-trans: add / docs/reference/setup-tools/kubeadm/kubeadm-join.md (#11798)

* zh-trans: add / docs/reference/setup-tools/kubeadm/kubeadm-join.md

zh-trans: add / docs/reference/setup-tools/kubeadm/kubeadm-join.md

* Update kubeadm-join.md

* Create kubeadm_join.md

* zh-trans: update docs/concepts/containers/images.md (#11877)

* zh-trans: update docs/concepts/containers/images.md

* zh-trans: update docs/concepts/containers/images.md

* Update kubeadm_alpha_phase_controlplane.md (#11878)

* 更新第 115 行翻译

* zh_trans: kubeadm_token_generate.md (#11884)

* zh_trans: kubeadm_token_generate.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_token_generate.md

* Better translation  

Better translation
 

* zh-trans: add /docs/tasks/configure-pod-container/configure-pod-initialization.md (#11886)

zh-trans: add /docs/tasks/configure-pod-container/configure-pod-initialization.md

* zh-trans:add content/zh/docs/reference/issues-security (#11890)

* zh-trans: add content/zh/docs/tutorials/online-training/overview.md (#11892)

* zh_trans: kubeadm_token_delete.md (#11883)

* zh_trans: kubeadm_token_delete.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_token_create.md

* fix tpye error

fix tpye error

*  Better translation  

Better translation

* zh_trans: independent/create-cluster-kubeadm.md (#11882)

* zh_trans: independent/create-cluster-kubeadm.md

zh_trans: docs/setup/independent/create-cluster-kubeadm.md

* fix word style error

* fix type error

* better zhtran

better zhtran

* fix "Create" -> "create"

fix "Create" -> "create"

* zh-trans: add docs⁩/concept⁨s/storage/storage-classes.md (#11788)

* ZH-trans: fixing formatting errors (#11661)

* ZH-trans: fixing formatting errors

* Update ZH-trans: fixing formatting errors

storage-classes zh part 1

* storage-classes zh trans

* fix typo

update trans for provisioner & fix typo

* fix typo

* 根据校对更新翻译

* zh_trans: kubeadm-token.md (#11898)

zh_trans: /docs/reference/setup-tools/kubeadm/kubeadm-token.md

* zh-trans: add /docs/tasks/configure-pod-container/quality-service-pod.md (#11900)

* zh-trans: add /docs/tasks/configure-pod-container/quality-service-pod.md

zh-trans: add /docs/tasks/configure-pod-container/quality-service-pod.md

* Update quality-service-pod.md

* zh_trans: kubeadm_alpha_phase_bootstrap-token_node.md (#11897)

zh_trans: Path:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_bootstrap-token_node.md

* zh-trans: add /docs/concepts/storage/volumes.md (#11767)

* zh-trans: add /docs/concepts/storage/volumes.md

zh-trans: add /docs/concepts/storage/volumes.md

* Update volumes.md

* Update volumes.md

* self-review

* Update volumes.md

* fix docs format error (#11934)

fix docs format error of https://v1-12.docs.kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-join/

* Update cloud-controller.md (#11922)

* zh-trans: /docs/reference/glossary/approver.md (#11924)

zh-trans: /docs/reference/glossary/approver.md

* zh-trans: add docs/setup/on-premises-vm/dcos.md (#11891)

* zh-trans: add docs/setup/on-premises-vm/dcos.md

* Update content/zh/docs/setup/on-premises-vm/dcos.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: /docs/tasks/configure-pod-container/configure-persistent-vo… (#11915)

* zh-trans: /docs/tasks/configure-pod-container/configure-persistent-volume-storage.md

zh-trans: /docs/tasks/configure-pod-container/configure-persistent-volume-storage.md

* Update configure-persistent-volume-storage.md

* zh_trans: kubeadm_alpha.md (#11902)

* zh_trans: kubeadm_alpha.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha.md

* Better translation

Better translation

* zh-trans: /docs/reference/glossary/downstream.md (#11931)

* zh-trans: /docs/reference/glossary/downstream.md

zh-trans: /docs/reference/glossary/downstream.md

* Update downstream.md

* Update downstream.md

* ZH-trans: Update install-kubeadm.md (#11955)

* fix typo of install-kubeadm.md

fix typo of install-kubeadm.md

* Update install-kubeadm.md

* zh-trans: add kubeadm/generated/kubeadm_alpha_phase_certs_renew_all.md (#11952)

* zh-trans: add /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_renew_all.md

zh-trans: add /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_renew_all.md

* Update kubeadm_alpha_phase_certs_renew_all.md

* renew 的翻译更新为续期

* zh-trans:kubeadm/generated/kubeadm_alpha_phase_certs_renew_etcd-peer.md (#11953)

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_renew_etcd-peer.md

/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_renew_etcd-peer.md

* Update kubeadm_alpha_phase_certs_renew_etcd-peer.md

* zh-trans: /docs/contribute/generate-ref-docs/kubectl.md (#11941)

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

* fix docs format error (#11936)

fix docs format error of https://v1-12.docs.kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-config/

* Update pull request (#11921)

* Update pull request (#11960)

* ZH-trans: add kubefed-options.md (#11956)

* Update ZH-trans: add kubefed-options.md

* Update kubefed-options.md

* ZH-trans: add generated/... (#11880)

* Update pull request

* Update kubeadm_alpha_phase_certs_renew.md

* Update pull request (#11881)

* ZH-trans: add generated/... (#11879)

* Update pull request

* Resolving file conflicts

* zh-trans: add zh/ docs/tasks/configure-pod-container/configure-servic… (#11889)

* zh-trans: add zh/ docs/tasks/configure-pod-container/configure-service-account.md

zh-trans: add zh/ docs/tasks/configure-pod-container/configure-service-account.md

* Update configure-service-account.md

* Update configure-service-account.md

* zh-trans: update docs/concepts/cluster-administration/kubelet-garbage-collection.md (#11875)

* zh-trans: update docs/concepts/cluster-administration/kubelet-garbage-collection.md

* zh-trans: update docs/concepts/cluster-administration/kubelet-garbage-collection.md

* zh-trans:update kubelet-garbage-collection.md

* zh_trans: kubeadm_alpha_phase_kubeconfig_user.md (#11901)

* zh_trans: kubeadm_alpha_phase_kubeconfig_user.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_kubeconfig_user.md

* Better translation

* zh-trans:add docs/reference/using-api/client-libraries.md (#11958)

* zh-trans:add docs/reference/using-api/client-libraries.md

* Update content/zh/docs/reference/using-api/client-libraries.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: add pull-image-private-registry.md (#11912)

* zh-trans: add pull-image-private-registry.md

zh-trans: add pull-image-private-registry.md

* Update pull-image-private-registry.md

* Update pull-image-private-registry.md

* ZH-trans: add kubeadm_alpha_phase_kubelet_config_annotate-cri.md (#11972)

* Create kubeadm_alpha_phase_kubelet_config_annotate-cri.md

* Update kubeadm_alpha_phase_kubelet_config_annotate-cri.md

* ZH-trans: add kubeadm_alpha_phase_kubelet_config.md (#11974)

* Create kubeadm_alpha_phase_kubelet_config.md

* Update kubeadm_alpha_phase_kubelet_config.md

* fix Typo "##" -> "## " (#12011)

* fix Typo "##" -> "## "

fix Typo "##" -> "## "

* update basic-stateful-set.md

* fix web style error (#12010)

fix web style error

* Create kubeadm_alpha_phase_selfhosting.md (#12006)

* Create kubeadm_alpha_phase_controlplane_apiserver.md (#12005)

* zh-trans:/docs/tasks/debug-application-cluster/resource-usage-monitor… (#11995)

* zh-trans:/docs/tasks/debug-application-cluster/resource-usage-monitoring.md

zh-trans:/docs/tasks/debug-application-cluster/resource-usage-monitoring.md

* Update resource-usage-monitoring.md

* Update resource-usage-monitoring.md

* zh-trans:/docs/tasks/debug-application-cluster/core-metrics-pipeline.md (#11990)

zh-trans:/docs/tasks/debug-application-cluster/core-metrics-pipeline.md

* zh-trans:/docs/tasks/debug-application-cluster/troubleshooting.md (#11989)

zh-trans:/docs/tasks/debug-application-cluster/troubleshooting.md

* Create kubeadm_alpha_phase_certs_renew_apiserver-kubelet-client.md (#11969)

* Create kubeadm_alpha_phase_certs_renew_apiserver-kubelet-client.md

* Update kubeadm_alpha_phase_certs_renew_apiserver-kubelet-client.md

* zh-trans: /docs/tasks/debug-application-cluster/debug-init-containers.md (#11962)

* zh-trans: /docs/tasks/debug-application-cluster/debug-init-containers.md

zh-trans: /docs/tasks/debug-application-cluster/debug-init-containers.md

* Update debug-init-containers.md

* zh-trans: docs/reference/glossary/horizontal-pod-autoscaler.md (#11930)

* zh-trans: docs/reference/glossary/horizontal-pod-autoscaler.md

zh-trans: docs/reference/glossary/horizontal-pod-autoscaler.md

* Update horizontal-pod-autoscaler.md

* zh-trans: add /docs/tasks/configure-pod-container/configure-projected… (#11911)

* zh-trans: add /docs/tasks/configure-pod-container/configure-projected-volume-storage.md

zh-trans: add /docs/tasks/configure-pod-container/configure-projected-volume-storage.md

* Update configure-projected-volume-storage.md

* Update configure-projected-volume-storage.md

* zh-trans: /docs/tasks/configure-pod-container/extended-resource.md (#11918)

* zh-trans: /docs/tasks/configure-pod-container/extended-resource.md

zh-trans: /docs/tasks/configure-pod-container/extended-resource.md

* Update extended-resource.md

* Update extended-resource.md

* zh-trans: add translate-compose-kubernetes.md (#11910)

* zh-trans: add translate-compose-kubernetes.md

zh-trans: add translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* Update translate-compose-kubernetes.md

* zh-trans: zh/docs/reference/glossary/flexvolume.md (#11925)

* zh-trans: zh/docs/reference/glossary/flexvolume.md

zh-trans: zh/docs/reference/glossary/flexvolume.md

* Update flexvolume.md

* zh_trans: kubeadm_alpha_phase_bootstrap-token_create.md (#11947)

* zh_trans: kubeadm_alpha_phase_bootstrap-token_create.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_bootstrap-token_create.md

* better translation  

better translation  

* zh-trans:add docs/setup/turnkey/alibaba-cloud.md (#11959)

* zh_trans: kubeadm_completion.md (#11895)

* zh_trans: kubeadm_completion.md

zh_trans: /docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_bootstrap-token_node.md

* Better translation  

Better translation

* Update kubeadm_completion.md

* better translation

better translation

* zh-trans: add /zh/ docs/tasks/debug-application-cluster/crictl.md (#11961)

* zh-trans: add /zh/ docs/tasks/debug-application-cluster/crictl.md

zh-trans: add /zh/ docs/tasks/debug-application-cluster/crictl.md

* Update crictl.md

* ZH-trans: add kubeadm_alpha_phase_certs_front-proxy-ca.md (#11968)

* ZH-trans: add kubeadm_alpha_phase_controlplane_all.md (#11970)

* Create kubeadm_alpha_phase_controlplane_all.md

* Update kubeadm_alpha_phase_controlplane_all.md

* Update kubeadm_alpha_phase_controlplane_all.md

* Update kubeadm_alpha_phase_controlplane_all.md

* ZH-trans: add kubeadm_alpha_phase_upload-config.md (#11971)

* Create kubeadm_alpha_phase_upload-config.md

* Update kubeadm_alpha_phase_upload-config.md

* Update kubeadm_alpha_phase_upload-config.md

* ZH-trans: Fixed some incorrect translations (#11973)

* zh-trans: /docs/tasks/debug-application-cluster/determine-reason-pod-… (#11977)

* zh-trans: /docs/tasks/debug-application-cluster/determine-reason-pod-failure.md

zh-trans: /docs/tasks/debug-application-cluster/determine-reason-pod-failure.md

* Update determine-reason-pod-failure.md

* zh-trans: /docs/tasks/debug-application-cluster/local-debugging.md (#11988)

* zh-trans: /docs/tasks/debug-application-cluster/local-debugging.md

zh-trans: /docs/tasks/debug-application-cluster/local-debugging.md

* Update local-debugging.md

* zh-trans:/docs/tasks/debug-application-cluster/events-stackdriver.md (#11996)

zh-trans:/docs/tasks/debug-application-cluster/events-stackdriver.md

* zh-trans:/docs/tasks/debug-application-cluster/get-shell-running-cont… (#11998)

* zh-trans:/docs/tasks/debug-application-cluster/get-shell-running-container.md

zh-trans:/docs/tasks/debug-application-cluster/get-shell-running-container.md

* Update get-shell-running-container.md

* zh-trans:/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md (#12001)

zh-trans:/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md

* ZH-trans: ad kubeadm_alpha_phase_kubelet_config_write-to-disk.md (#12004)

* Create kubeadm_alpha_phase_kubelet_config_write-to-disk.md

* Update kubeadm_alpha_phase_kubelet_config_write-to-disk.md

* Remove old-generated kubefed docs (generated on 25-march-2018) (#12093)

* Update _index.md (#12061)

* Update kubeadm_reset.md (#12047)

* ZH-trasn: add kubeadm_alpha_phase_kubeconfig_controller-manager.md (#12032)

* Create kubeadm_alpha_phase_kubeconfig_controller-manager.md

* Update kubeadm_alpha_phase_kubeconfig_controller-manager.md

* ZH-trans: add kubeadm_alpha_phase_preflight_node.md (#12035)

* Create kubeadm_alpha_phase_preflight_node.md

* Update kubeadm_alpha_phase_preflight_node.md

* Update kubeadm_alpha_phase_preflight_node.md

* ZH-trans: add kubeadm_alpha_phase_controlplane_scheduler.md (#12031)

* Create kubeadm_alpha_phase_controlplane_scheduler.md

* Update kubeadm_alpha_phase_controlplane_scheduler.md

* ZH-trans: add kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md (#12039)

* Create kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md

* Update kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md

* ZH-trans: add kubeadm_alpha_phase_kubelet_write-env-file.md (#12034)

* Create kubeadm_alpha_phase_kubelet_write-env-file.md

* Update kubeadm_alpha_phase_kubelet_write-env-file.md

* ZH-trans: add kubeadm_upgrade_node_experimental-control-plane.md (#12036)

* Create kubeadm_upgrade_node_experimental-control-plane.md

* Update kubeadm_upgrade_node_experimental-control-plane.md

* Create kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md (#12038)

* Create kubeadm_alpha_phase_etcd.md (#12040)

* ZH-trans: add kubeadm_alpha_phase_certs_renew_etcd-server.md (#12041)

* Create kubeadm_alpha_phase_certs_renew_etcd-server.md

* Update kubeadm_alpha_phase_certs_renew_etcd-server.md

* Update advanced.md (#12044)

* ZH-trans: add kubeadm_alpha_phase_certs_renew_etcd-healthcheck-client.md (#12042)

* Create kubeadm_alpha_phase_certs_renew_etcd-healthcheck-client.md

* Update kubeadm_alpha_phase_certs_renew_etcd-healthcheck-client.md

* Update kubeadm_alpha_phase_certs_renew_etcd-healthcheck-client.md

* Update kubeadm_version.md (#12046)

* Update _index.md (#12063)

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed_version.md (#12085)

zh-trans:/docs/reference/setup-tools/kubefed/kubefed_version.md

* ZH-trans: add kubeadm_alpha_phase_certs_etcd-peer.md (#12037)

* Create kubeadm_alpha_phase_certs_etcd-peer.md

* Update kubeadm_alpha_phase_certs_etcd-peer.md

* Update kubeadm_alpha_phase_certs_etcd-peer.md

* ZH-trans: add kubeadm_alpha_phase_kubelet_config_download.md (#12033)

* Create kubeadm_alpha_phase_kubelet_config_download.md

* Update kubeadm_alpha_phase_kubelet_config_download.md

* zh-trans: add docs/tasks/access-application-cluster/_index.md (#12048)

* zh-trans: update cpu-constraint-namespace.md and cpu-default-namespace.md (#12106)

* ZH-trans: update kubeadm_alpha_phase_upload-config.md (#12110)

* zh-tran: /docs/reference/setup-tools/kubefed/kubefed_unjoin.md (#12022)

* zh-tran: /docs/reference/setup-tools/kubefed/kubefed_unjoin.md

zh-tran: /docs/reference/setup-tools/kubefed/kubefed_unjoin.md

* Update kubefed_unjoin.md

* Update kubefed_unjoin.md

* Update kubefed_unjoin.md

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_… (#12114)

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_apiserver.md

zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_certs_apiserver.md

* Update kubeadm_alpha_phase_certs_apiserver.md

* Update kubeadm_alpha_phase_certs_apiserver.md

* zh-trans:/docs/reference/kubectl/docker-cli-to-kubectl.md (#12088)

* zh-trans:/docs/reference/kubectl/docker-cli-to-kubectl.md

zh-trans:/docs/reference/kubectl/docker-cli-to-kubectl.md

* Update docker-cli-to-kubectl.md

* zh-trans: /docs/reference/kubectl/conventions.md (#12089)

* zh-trans: /docs/reference/kubectl/conventions.md

zh-trans: /docs/reference/kubectl/conventions.md

* Update conventions.md

* zh-trans organize-cluster-access-kubeconfig.md (#12094)

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed.md (#12086)

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed.md

zh-trans:/docs/reference/setup-tools/kubefed/kubefed.md

* Update kubefed.md

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed_join.md (#12029)

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed_join.md

zh-trans:/docs/reference/setup-tools/kubefed/kubefed_join.md

* Update kubefed_join.md

* Update kubefed_join.md

* zh-trans: /docs/reference/setup-tools/kubefed/kubefed_init.md (#12020)

* zh-trans: /docs/reference/setup-tools/kubefed/kubefed_init.md

zh-trans: /docs/reference/setup-tools/kubefed/kubefed_init.md

* Update kubefed_init.md

* Update kubefed_init.md

* Update kubefed_init.md

* zh-trans: add docs/setup/independent/control-plane-flags.md (#12043)

* zh-trans: add docs/setup/independent/control-plane-flags.md

* update content/zh/docs/setup/independent/control-plane-flags.md

* zh-trans:/docs/tasks/tools/install-kubectl.md (#11992)

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* .

* .

* configure-aggregation-layer.md

* .

* .

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* zh-trans: add /docs/concepts/cluster-administration/manage-deployment.md (#11899)

* add /docs/concepts/cluster-administration/manage-deployment.md

* 更新部分翻译,去除多余的反引号

* 更新部分翻译

* zh-trans: add docs/tasks/service-catalog/install-service-catalog-using-sc.md (#12045)

* zh-trans: add docs/tasks/service-catalog/install-service-catalog-using-sc.md

* update docs/tasks/service-catalog/install-service-catalog-using-sc.md

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed_options.md (#12087)

* zh-trans:/docs/reference/setup-tools/kubefed/kubefed_options.md

zh-trans:/docs/reference/setup-tools/kubefed/kubefed_options.md

* Update kubefed_options.md

* Update kubefed_options.md

* zh-trans: Fix some blog links issue (#12115)

* zh-trans: Fix some blog links issue

* Revert the space change

* update Set Kubelet parameters via a config file (#12150)

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_kubeconfig_all.md (#12185)

zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_kubeconfig_all.md

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_… (#12184)

* zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_etcd_local.md

zh-trans:/docs/reference/setup-tools/kubeadm/generated/kubeadm_alpha_phase_etcd_local.md

* Update kubeadm_alpha_phase_etcd_local.md

* zh-trans: kubeadm/generated/kubeadm_alpha_phase_kubelet_config_upload.md (#12130)

zh-trans: kubeadm/generated/kubeadm_alpha_phase_kubelet_config_upload.md

* zh-trans: kubeadm/generated/kubeadm_alpha_phase_kubeconfig_admin.md (#12131)

zh-trans: kubeadm/generated/kubeadm_alpha_phase_kubeconfig_admin.md

* zh-trans: /docs/contribute/generate-ref-docs/kubernetes-api.md (#12141)

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

* zh-trans:/docs/concepts/overview/object-management-kubectl/imperative… (#12151)

* zh-trans:/docs/concepts/overview/object-management-kubectl/imperative-config.md

zh-trans:/docs/concepts/overview/object-management-kubectl/imperative-config.md

* Update imperative-config.md

* ZH-trans: added a blog post Chinese translation: 2018-05-01-developing-on-kubernetes.md (#12009)

* added a blog post chinese translation

* Update 2018-05-01-developing-on-kubernetes.md

apply some suggested changes per review comments

* Update 2018-05-01-developing-on-kubernetes.md

cont to review and improve the wording, up to squash

* more update and rewording

* ZH-trans: add kubeadm_alpha_phase_kubelet_config_enable-dynamic.md (#12209)

* ZH-trans: add kubeadm_alpha_phase_kubelet_config_enable-dynamic.md

* Update kubeadm_alpha_phase_kubelet_config_enable-dynamic.md

* ZH-trans: add kubeadm_alpha_phase_certs_renew_apiserver.md (#12210)

* ZH-trans: add kubeadm_alpha_phase_certs_renew_apiserver.md

* Update kubeadm_alpha_phase_certs_renew_apiserver.md

* Update kubeadm_alpha_phase_certs_renew_apiserver.md

* ZH-trans: add kubeadm_alpha_phase_certs_front-proxy-client.md (#12212)

* fix docs style (#12225)

* fix docs style

fix docs style

* fix docs style

fix docs style

* ZH-trans: add rbac.md (#12263)

* ZH-trans: add rbac.md

* Update rbac.md

* ZH-trans: add persistent-volume-claim.md (#12264)

* ZH-trans: add persistent-volume-claim.md

* Update persistent-volume-claim.md

* Update persistent-volume-claim.md

* Update docker-cli-to-kubectl.md (#12288)

* ZH-trans: add kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md (#12285)

* ZH-trans: add kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md

* Update kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md

* ZH-trans: add coredns.md (#12282)

* ZH-trans: add coredns.md

* Update coredns.md

* ZH-trans: add kubeadm_alpha_phase_certs_etcd-healthcheck-client.md (#12286)

* ZH-trans: add kubeadm_alpha_phase_certs_etcd-healthcheck-client.md

* Update kubeadm_alpha_phase_certs_etcd-healthcheck-client.md

* ZH-trans: add kubeadm_alpha_phase_kubeconfig_kubelet.md (#12284)

* ZH-trans: add kubeadm_alpha_phase_kubeconfig_kubelet.md

* Update kubeadm_alpha_phase_kubeconfig_kubelet.md

* ZH-trans: add service-account.md (#12261)

* ZH-trans: add service-account.md

* Update service-account.md

* ZH-trans: add security-context.md (#12262)

* ZH-trans: add security-context.md

* Update security-context.md

* Update security-context.md

* Update security-context.md

* fix typo "_必须_" -> "必须" (#12300)

fix typo "_必须_" -> "必须"

* fix docs style error (#12307)

fix docs style error

* Create explore-interactive.html (#12311)

* fix docs style error (#12314)

fix docs style error

* ZH-trans: add kube-controller-manager.md (#12260)

* ZH-trans: add kube-controller-manager.md

* Update kube-controller-manager.md

* Update kube-controller-manager.md

* Update kube-controller-manager.md

* zh-trans: /docs/contribute/localization.md (#12295)

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

zh-trans: /docs/contribute/localization.md; update

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

zh-trans: /docs/contribute/localization.md; update2

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

* ZH-trans: update tools.md (#12320)

ZH-trans: update tools.md

* ZH-trans: fix "kubead -config" -> "kubeadm-config" (#12319)

* ZH-trans: update kubeadm_config.md

* fix style error

* correct "availability” trans for chinese (#12394)

* ZH-trans:/docs/tasks/debug-application-cluster/debug-service.md (#12275)

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* .

* .

* configure-aggregation-layer.md

* .

* .

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* .

* .

* Translate some remnant partials for localization (#12240)

* zh-trans: /docs/tasks/administer-cluster/limit-storage-consumption.md (#12415)

* zh-trans: /docs/tasks/administer-cluster/limit-storage-consumption.md

zh-trans: /docs/tasks/administer-cluster/limit-storage-consumption.md

* Update limit-storage-consumption.md

* Update limit-storage-consumption.md

* update link to SSH tunneling (#12615)

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

* zh-trans: update content/zh/docs/setup/certificates.md (#12620)

* ZH-trans: add kubeadm_alpha_phase_certs_apiserver-kubelet-client.md (#12619)

* ZH-trans: add kubeadm_alpha_phase_certs_apiserver-kubelet-client.md

* Update kubeadm_alpha_phase_certs_apiserver-kubelet-client.md

* zh-trans: node-conformance.md (#12356)

* zh-trans: node-conformance.md

zh-trans: node-conformance.md

* better translation

better translation

* zh-trans: translate docs/getting-started-guides/ubuntu/operational-co… (#12353)

* zh-trans: translate docs/getting-started-guides/ubuntu/operational-considerations.md

* Adopt PR suggestions

* add period sign

* zh-trans: krib.md (#12363)

* zh-trans: krib.md

zh-trans: krib.md

* Update krib.md

* Update krib.md

* Update krib.md

* Update krib.md

* zh-trans: /docs/tasks/administer-federation/events.md (#12411)

* zh-trans: /docs/tasks/administer-federation/events.md

zh-trans: /docs/tasks/administer-federation/events.md

* Update events.md

* Update events.md

* zh-trans: /docs/setup/turnkey/azure.md (#12412)

zh-trans: /docs/setup/turnkey/azure.md

* zh-trans:/docs/tasks/administer-federation/hpa.md & /docs/tasks/administer-cluster/extended-resource-node.md (#12432)

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* .

* .

* configure-aggregation-layer.md

* .

* .

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* Add arm64, ppc64le and s390x platforms for calico (#12666)

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

add only

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

* zh-trans: developing-cloud-controller-manager.md (#12413)

* zh-trans: /docs/tasks/administer-cluster/developing-cloud-controller-manager.md

zh-trans: /docs/tasks/administer-cluster/developing-cloud-controller-manager.md

* Update developing-cloud-controller-manager.md

* fix typo: delete useless "**"

* Update developing-cloud-controller-manager.md

* ZH-trans: add 2018-05-01-developing-on-kubernetes.md (#12814)

* ZH-trans: update encrypt-data.md (#12939)

* ZH-trans: update encrypt-data.md

* Update encrypt-data.md

* ZH-trans: add example-task-template.md (#12940)

* ZH-trans: add example-task-template.md

* Update example-task-template.md

* Added Instana to tools (#12978)

Instana is already available in the english version of the text, therefore I added it here too. Hope my skills were enough to make the text still correct :-)

* ZH-trans: add expose-interactive.html (#12965)

* ZH-trans: add expose-interactive.html

* Update content/zh/docs/tutorials/kubernetes-basics/expose/expose-interactive.html

Co-Authored-By: xichengliudui <1693291525@qq.com>

* ZH-trans: add cloudstack.md (#12967)

* Create cloudstack.md

* Update cloudstack.md

* Update cloudstack.md

* Update cloudstack.md

* ZH-trans: add container-lifecycle-hooks.md (#12941)

* ZH-trans: add container-lifecycle-hooks.md

* Update container-lifecycle-hooks.md

* translate content/zh/docs/tasks/administer-cluster/dns-debugging-resolution.md to chinese (#12904)

* ZH-trans: add expose-external-ip-address.md (#12955)

* ZH-trans: add expose-external-ip-address.md

* Update expose-external-ip-address.md

* Update expose-external-ip-address.md

* Update expose-external-ip-address.md

* Update expose-external-ip-address.md

* Update expose-external-ip-address.md

* ZH-trans: add dns-horizontal-autoscaling.md (#12948)

* ZH-trans: add dns-horizontal-autoscaling.md

* Update dns-horizontal-autoscaling.md

* Update dns-horizontal-autoscaling.md

* zh-trans: update content/zh/docs/concepts/_index.md (#13182)

* zh-trans: update content/zh/docs/reference/access-authn-authz/node.md (#13181)

* Update dns-horizontal-autoscaling.md (#13119)

* Update dns-horizontal-autoscaling.md

* Update dns-horizontal-autoscaling.md

* Update dns-horizontal-autoscaling.md

* ZH-trans: add 2018-10-03-kubedirector.md (#13048)

* ZH-trans: add 2018-10-03-kubedirector.md

* Update 2018-10-03-kubedirector.md

* Update 2018-10-03-kubedirector.md

* ZH-trans: add guestbook.md (#12953)

* ZH-trans: add guestbook.md

* Update guestbook.md

* Update guestbook.md

* Update guestbook.md

* Update guestbook.md

* ZH-trans: add set-up-placement-policies-federation.md (#12947)

* ZH-trans: add set-up-placement-policies-federation.md

* update pull request

* Update set-up-placement-policies-federation.md

* Update set-up-placement-policies-federation.md

* Update set-up-placement-policies-federation.md

* Update set-up-placement-policies-federation.md

* ZH-trans: add service-accounts-admin.md (#13047)

* ZH-trans: add service-accounts-admin.md

* Update service-accounts-admin.md

* Update service-accounts-admin.md

* ZH-trans: add update-api-object-kubectl-patch.md (#12943)

* ZH-trans: add update-api-object-kubectl-patch.md

* Update update-api-object-kubectl-patch.md

* Update update-api-object-kubectl-patch.md

* Update update-api-object-kubectl-patch.md

* Update update-api-object-kubectl-patch.md

* ZH-trans: add parallel-processing-expansion.md (#12944)

* ZH-trans: add parallel-processing-expansion.md

* Update parallel-processing-expansion.md

* Update parallel-processing-expansion.md

* zh-trans: add 2018-12-05-new-contributor-shanghai.md (#12778)

* add zh 2017-03-00-Five-Days-Of-Kubernetes-1-6.md

add zh 2018-12-05-new-contributor-shanghai.md

* Delete 2017-03-00-Five-Days-Of-Kubernetes-1-6.md

* zh-trans: /docs/contribute/style/write-new-topic.md (#12572)

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

zh-trans: /docs/contribute/style/write-new-topic.md; update

Signed-off-by: liyuan198251 <li.yuan4@zte.com.cn>

* zh-trans: update content/zh/docs/setup/salt.md (#13202)

* zh-trans: add docs/reference/setup-tools/kubeadm/generated/kubeadm_token.md (#13198)

* ZH-trans: add kubeadm_upgrade_diff.md (#13170)

* ZH-trans: add kubeadm_upgrade_diff.md

* Update kubeadm_upgrade_diff.md

* Update kubeadm_upgrade_diff.md

* zh-trans: update docs/reference/access-authn-authz/authorization.md (#13180)

* zh-trans: update docs/reference/setup-tools/kubeadm/kubeadm-config.md (#13179)

* zh-trans: add docs/concepts/storage/dynamic-provisioning.md (#13171)

* ZH-trans: add 2015-05-00-Kubernetes-On-Openstack.md (#13149)

* ZH-trans: add Kubernetes开源项目产品经理

* Update 2015-05-00-Kubernetes-On-Openstack.md

* ZH-trans: add 2015-03-00-Welcome-To-Kubernetes-Blog.md (#13131)

* ZH-trans: add 2015-03-00-Welcome-To-Kubernetes-Blog.md

* Update 2015-03-00-Welcome-To-Kubernetes-Blog.md

* ZH-trans: add 2015-06-00-Slides-Cluster-Management-With.md (#13123)

* ZH-trans: add 2015-06-00-Slides-Cluster-Management-With.md

* Update 2015-06-00-Slides-Cluster-Management-With.md

* Create 2015-03-00-Kubernetes-Gathering-Videos.md (#13124)

* ZH-trans: add 2015-03-00-Weekly-Kubernetes-Community-Hangout.md (#13129)

* ZH-trans: add 2015-03-00-Weekly-Kubernetes-Community-Hangout.md

* Update 2015-03-00-Weekly-Kubernetes-Community-Hangout.md

* ZH-trans: add 2015-04-00-Kubernetes-Release-0150.md (#13130)

* ZH-trans: add 2015-04-00-Kubernetes-Release-0150.md

* Update 2015-04-00-Kubernetes-Release-0150.md

* ZH-trans: add 2015-04-00-Weekly-Kubernetes-Community-Hangout_17.md (#13132)

* ZH-trans: add 2015-04-00-Weekly-Kubernetes-Community-Hangout_17.md

* Update 2015-04-00-Weekly-Kubernetes-Community-Hangout_17.md

* Update 2015-04-00-Weekly-Kubernetes-Community-Hangout_17.md

* Update 2015-04-00-Weekly-Kubernetes-Community-Hangout_17.md

* ZH-trans: add 2015-04-00-Weekly-Kubernetes-Community-Hangout_29.md (#13147)

* ZH-trans: add 2015-05-00-Weekly-Kubernetes-Community-Hangout.md (#13148)

* ZH-trans: add flannel_multi_node_cluster.md (#13195)

* ZH-trans: add flannel_multi_node_cluster.md

* Update flannel_multi_node_cluster.md

* Update flannel_multi_node_cluster.md

* zh-trans: add docs/reference/command-line-tools-reference/kubelet-authentication-authorization.md (#13200)

* zh-trans: add docs/reference/command-line-tools-reference/kubelet-authentication-authorization.md

* Update kubelet-authentication-authorization.md

* zh-trans: /docs/tasks/administer-cluster/out-of-resource.md (#12879)

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* configure-aggregation-layer.md

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* .

* .

* configure-aggregation-layer.md

* .

* .

* Update configure-aggregation-layer.md

* .

* .

* .

* .

* .

* .

* zh-trans: update docs/setup/node-conformance.md (#13201)

* zh-trans: update docs/setup/node-conformance.md

* zh-trans: update docs/setup/on-premises-vm/dcos.md

* zh-trans: add content/zh/blog/_posts/2018-10-15-steering-election-results.md (#13227)

* zh-trans: add content/zh/blog/_posts/2018-10-15-steering-election-results.md

* Update content/zh/blog/_posts/2018-10-15-steering-election-results.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Add @xichengliudui to sig-docs-zh-owners (release-1.12) (#13167)

* Add @xichengliudui to sig-docs-zh-owners

* Update OWNERS_ALIASES

* ZH-trans: add coreos.md (#13193)

* ZH-trans: coreos.md

* Update coreos.md

* Update coreos.md

* Update coreos.md

* Update coreos.md

* Update coreos.md

* Update coreos.md

* add SataQiu as a sig-docs-zh-owner (#13271)

* Fix relative links issue in zh content (#13312)

* `http://kubernetes.io/docs/` -> `/docs/`

* `https://kubernetes.io/docs/` -> `/docs/`

* zh-trans: add docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md (#13194)

* zh-trans: add docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md

* Update content/zh/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update kubeadm-upgrade.md

* ZH-trans: add kubeadm-upgrade-ha-1-12.md (#13306)

* ZH-trans: add kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update kubeadm-upgrade-ha-1-12.md

* Update config.toml (#13408)

* zh-trans: add content/zh/blog/_posts/2018-11-08-kubernetes-docs-update-i18n.md (#13221)

* zh-trans: add content/zh/docs/reference/kubernetes-api/labels-annotations-taints.md (#13236)

* zh-trans: add content/zh/blog/_posts/2018-10-16-kubernetes-2018-north-american-contributor-summit.md (#13274)

* zh-trans: add content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md (#13268)

* zh-trans: add content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md

* Update content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: update content/zh/docs/tasks/service-catalog/install-service-catalog-using-helm.md

* ZH-trans: add 2017-10-00-Five-Days-Of-Kubernetes-18.md (#13427)

* ZH-trans: add 2017-10-00-Five-Days-Of-Kubernetes-18.md

* Update 2017-10-00-Five-Days-Of-Kubernetes-18.md

* zh-trans: add content/zh/docs/tasks/administer-federation/daemonset.md (#13239)

* message

* more message

* remove data.json

* ZH-trans: add aws.md (#13276)

* ZH-trans: add aws.md

* Update aws.md

* Update aws.md

* ZH-trans: add cluster-interactive.html (#13479)

* ZH-trans: add cluster-interactive.html

* Update cluster-interactive.html

* ZH-trans: add update-intro.html (#13480)

* Create update-intro.html

* Update update-intro.html

* Update update-intro.html

* Update update-intro.html

* Update update-intro.html

* Update update-intro.html

* ZH-trans: add README.md (#13235)

* ZH-trans: add vendoring

* Update README.md

* zh: docs/cocepts/cluster-administration/logging.md (#13541)

* zh: docs/cocepts/cluster-administration/logging.md

* Update logging.md

* zh-trans: update docker-cli-to-kubectl.md (#13591)

* Update docker-cli-to-kubectl.md

* Update docker-cli-to-kubectl.md

* zh-trans: update advanced.md (#13592)

* ZH-trans: add 2017-11-00-Autoscaling-In-Kubernetes.md (#13424)

* ZH-trans: add 2017-11-00-Autoscaling-In-Kubernetes.md

* Update 2017-11-00-Autoscaling-In-Kubernetes.md

* ZH-trans: add fedora_manual_config.md (#13439)

* ZH-trans: add fedora_manual_config.md

* Update fedora_manual_config.md

* zh-trans: content/zh/docs/concepts/overview/working-with-objects/labe… (#12277)

* zh-trans: content/zh/docs/concepts/overview/working-with-objects/labels.md

* update trans

* update trans

*  zh: docs/contribute/start.md trans (#13632)

* zh:docs/contribute/start.md trans

* Update start.md

* Update start.md

* Update start.md

* Update start.md

* Update content/zh/docs/contribute/start.md

Co-Authored-By: zhangqx2010 <zhangqx2010@users.noreply.github.com>

* Update content/zh/docs/contribute/start.md

Co-Authored-By: zhangqx2010 <zhangqx2010@users.noreply.github.com>

* Update content/zh/docs/contribute/start.md

Co-Authored-By: zhangqx2010 <zhangqx2010@users.noreply.github.com>

* zh-trans: update docs/reference/setup-tools/kubefed (#13729)

* Update 2017-10-00-Five-Days-Of-Kubernetes-18.md (#13472)

* zh-trans: add configure-multiple-schedulers.md (#13492)

* zh-trans: add configure-multiple-schedulers.md

* Update content/zh/docs/tasks/administer-cluster/configure-multiple-schedulers.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/tasks/administer-cluster/configure-multiple-schedulers.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update configure-multiple-schedulers.md

* Update configure-multiple-schedulers.md

* Update content/zh/docs/tasks/administer-cluster/configure-multiple-schedulers.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/tasks/administer-cluster/configure-multiple-schedulers.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/tasks/administer-cluster/configure-multiple-schedulers.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update configure-multiple-schedulers.md

* zh-trans: add docs/tasks/configure-pod-container/share-process-namespace.md (#13551)

* zh-trans: add docs/tasks/configure-pod-container/share-process-namespace.md

* Update share-process-namespace.md

* zh-trans: update docs/admin/accessing-the-api.md (#13744)

* zh-trans: add content/zh/blog/_posts/2018-10-11-topology-aware-volume-provisioning.md (#13303)

* ZH-trans: add 2016-02-00-Kubecon-Eu-2016-Kubernetes-Community-In.md (#13241)

* ZH-trans: add 2016-02-00-Kubecon-Eu-2016-Kubernetes-Community-In.md

* Update 2016-02-00-Kubecon-Eu-2016-Kubernetes-Community-In.md

* Update 2016-02-00-Kubecon-Eu-2016-Kubernetes-Community-In.md

* ZH-trans: add  2016-07-00-Citrix-Netscaler-And-Kubernetes.md (#13242)

* ZH-trans: add  2016-07-00-Citrix-Netscaler-And-Kubernetes.md

* Update 2016-07-00-Citrix-Netscaler-And-Kubernetes.md

* Update 2016-07-00-Citrix-Netscaler-And-Kubernetes.md

* zh-trans: update docs/admin/bootstrap-tokens.md (#13770)

* zh-trans: update content/zh/docs/admin/cluster-large.md (#13771)

* zh-trans: update content/zh/docs/admin/kube-apiserver.md (#13774)

* zh-trans: update content/zh/docs/admin/kube-apiserver.md

* Update kube-apiserver.md

* Update content/zh/docs/admin/kube-apiserver.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: update content/zh/docs/admin/multiple-zones.md (#13775)

* zh-trans: update content/zh/docs/admin/multiple-zones.md

* Update multiple-zones.md

* zh-trans: update node-conformance.md and ovs-networking.md (#13776)

* zh-trans: update high-availability/_index.md and authorization/webhook.md (#13780)

* zh-trans: update content/zh/docs/admin/authorization/_index.md (#13779)

* zh-trans: update content/zh/docs/admin/authorization/_index.md

* Update _index.md

* Update content/zh/docs/admin/authorization/_index.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/admin/authorization/_index.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update content/zh/docs/admin/authorization/_index.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: update content/zh/docs/admin/authorization/abac.md (#13777)

* zh-trans: update content/zh/docs/admin/authorization/abac.md

* Update content/zh/docs/admin/authorization/abac.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* Update abac.md

* zh-trans: update content/zh/docs/admin/service-accounts-admin.md (#13778)

* zh-trans: update content/zh/docs/admin/service-accounts-admin.md

* Update content/zh/docs/admin/service-accounts-admin.md

Co-Authored-By: SataQiu <1527062125@qq.com>

* zh-trans: update content/zh/docs/concepts/architecture (#13797)

* ZH-trans: add cluster.md (#13500)

* ZH-trans: add cluster.md

* Update cluster.md

* Update cluster.md

* Update cluster.md

* zh-trans: update docs/concepts/cluster-administration (#13825)

* Exclude content-en changes in the PR

* Exclude content/ko changes in the PR

* Exclude OWNERS_ALIASES change in the PR

* rm kubeadm/generated/README.md to fix the build

* Remove generated sass assets
This commit is contained in:
chenrui
2019-06-17 12:28:11 -04:00
committed by Kubernetes Prow Robot
parent d437c2e5e5
commit 577b431931
717 changed files with 76342 additions and 1681 deletions
+211
View File
@@ -0,0 +1,211 @@
---
reviewers:
- brendandburns
- erictune
- mikedanese
no_issue: true
title: 设置
main_menu: true
weight: 30
content_template: templates/concept
---
<!--
---
reviewers:
- brendandburns
- erictune
- mikedanese
no_issue: true
title: Setup
main_menu: true
weight: 30
content_template: templates/concept
---
-->
{{% capture overview %}}
<!--
Use this page to find the type of solution that best fits your needs.
-->
在这个页面可以找到最适合您以及您需要的解决方案类型。
<!--
Deciding where to run Kubernetes depends on what resources you have available
and how much flexibility you need. You can run Kubernetes almost anywhere,
from your laptop to VMs on a cloud provider to a rack of bare metal servers.
You can also set up a fully-managed cluster by running a single command or craft
your own customized cluster on your bare metal servers.
-->
Kubernetes 在何处运行取决于您拥有什么资源以及您需要多大的灵活性。您几乎可以在任何地方运行 Kubernetes
从笔记本电脑到云服务提供商的虚拟机,再到一排裸金属服务器。您还可以通过运行单个命令来设置完全
托管的集群,或者在裸金属服务器上创建您自己的定制集群。
{{% /capture %}}
{{% capture body %}}
<!--
## Local-machine Solutions
-->
## 本地机器解决方案
<!--
A local-machine solution is an easy way to get started with Kubernetes. You
can create and test Kubernetes clusters without worrying about consuming cloud
resources and quotas.
-->
本地机器解决方案是开始使用 Kubernetes 的一种简单的方法。您可以创建和测试 Kubernetes 集群,而不必担心消耗云资源和配额。
<!--
You should pick a local solution if you want to:
-->
你应该选择一个本地解决方案,如果您想:
<!--
* Try or start learning about Kubernetes
* Develop and test clusters locally
-->
* 尝试或开始了解 Kubernetes
* 在本地开发和测试集群
<!--
Pick a [local-machine solution](/docs/setup/pick-right-solution/#local-machine-solutions).
-->
选择[本地机器解决方案](/docs/setup/pick-right-solution/#local-machine-solutions)。
<!--
## Hosted Solutions
-->
## 托管解决方案
<!--
Hosted solutions are a convenient way to create and maintain Kubernetes clusters. They
manage and operate your clusters so you dont have to.
-->
托管解决方案是创建和维护 Kubernetes 集群的一种实用的方法。他们管理和操作您的集群,所以您不需要。
<!--
You should pick a hosted solution if you:
-->
您应该选择一个托管解决方案,如果您需要:
<!--
* Want a fully-managed solution
* Want to focus on developing your apps or services
* Dont have dedicated site reliability engineering (SRE) team but want high availability
* Don't have resources to host and monitor your clusters
-->
* 想要一个完全托管的解决方案
* 希望专注于开发您的应用或者服务
* 没有专门的可靠的工程(SRE)团队,但需要高可用
* 没有资源来托管和监视集群
<!--
Pick a [hosted solution](/docs/setup/pick-right-solution/#hosted-solutions).
-->
选择[托管解决方案](/docs/setup/pick-right-solution/#hosted-solutions)。
<!--
## Turnkey Cloud Solutions
-->
## 一站式云解决方案
<!--
These solutions allow you to create Kubernetes clusters with only a few commands and
are actively developed and have active community support. They can also be hosted on
a range of Cloud IaaS providers, but they offer more freedom and flexibility in
exchange for effort.
-->
这些解决方案允许您仅使用几个命令创建 Kubernetes 集群,这些集群是积极开发的,并且得到了社区的支持。
它们也可以托管在一系列云服务 IaaS 提供商上,它们提供了更多的自由和灵活性来换取工作量。
<!--
You should pick a turnkey cloud solution if you
-->
您应该选择一个一站式云服务解决方案,如果您需要:
<!--
* Want more control over your clusters than the hosted solutions allow
* Want to take on more operations ownership
-->
* 希望对集群拥有比托管解决方案更多的控制
* 希望拥有更多的运营所有权
<!--
Pick a [turnkey cloud solution](/docs/setup/pick-right-solution/#turnkey-cloud-solutions)
-->
选择[一站式云服务解决方案](/docs/setup/pick-right-solution/#turnkey-cloud-solutions)。
<!--
## Turnkey On-Premises Solutions
-->
## 一站式本地解决方案
<!--
These solutions allow you to create Kubernetes clusters on your internal, secure,
cloud network with only a few commands.
-->
这些解决方案允许您在您的内部、安全的云网络上创建 Kubernetes 集群,只需要几个命令。
<!--
You should pick a on-prem turnkey cloud solution-
-->
您应该选择一个一站式本地解决方案,如果您需要:
<!--
* Want to deploy clusters on your private cloud network
* Have a dedicated SRE team
* Have the resources to host and monitor your clusters
-->
* 希望在您的私有云网络上部署集群
* 有一个专门的 SRE 团队
* 拥有托管和监视集群的资源
<!--
Pick an [on-prem turnkey cloud solution](/docs/setup/pick-right-solution/#on-premises-turnkey-cloud-solutions).
-->
选择[一站式本地云服务解决方案](/docs/setup/pick-right-solution/#on-premises-turnkey-cloud-solutions)。
<!--
## Custom Solutions
-->
## 定制解决方案
<!--
Custom solutions give you the most freedom over your clusters but require the
most expertise. These solutions range from bare-metal to cloud providers on
different operating systems.
-->
定制解决方案为您的集群提供了最大的自由度,但需要最多的专业知识。这些解决方案涵盖了从裸金属到不同操作系统上的云服务提供商。
<!--
Pick a [custom solution](/docs/setup/pick-right-solution/#custom-solutions).
-->
选择[定制解决方案](/docs/setup/pick-right-solution/#custom-solutions)。
{{% /capture %}}
{{% capture whatsnext %}}
<!--
Go to [Picking the Right Solution](/docs/setup/pick-right-solution/) for a complete
list of solutions.
-->
转到完整的解决方案列表选择[正确的解决方案](/docs/setup/pick-right-solution/)。
{{% /capture %}}
+284
View File
@@ -0,0 +1,284 @@
---
title: PKI 证书和需求
content_template: templates/concept
---
<!--
---
title: PKI Certificates and Requirements
reviewers:
- sig-cluster-lifecycle
content_template: templates/concept
---
-->
{{% capture overview %}}
<!--
Kubernetes requires PKI certificates for authentication over TLS.
If you install Kubernetes with [kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/), the certificates that your cluster requires are automatically generated.
You can also generate your own certificates -- for example, to keep your private keys more secure by not storing them on the API server.
This page explains the certificates that your cluster requires.
-->
Kubernetes 需要 PKI 证书才能通过 TLS 进行身份验证。如果使用 [kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/) 安装 Kubernetes,集群所需的证书会被自动生成。
您还可以生成自己的证书——例如,通过不将私钥保存在 API 服务器上,来更安全地保护它们。。
此页面说明了集群所需的证书。
{{% /capture %}}
{{% capture body %}}
<!--
## How certificates are used by your cluster
-->
## 集群如何使用证书
<!--
Kubernetes requires PKI for the following operations:
-->
Kubernetes 在执行以下操作时需要相应的证书:
<!--
* Client certificates for the kubelet to authenticate to the API server
* Server certificate for the API server endpoint
* Client certificates for administrators of the cluster to authenticate to the API server
* Client certificates for the API server to talk to the kubelets
* Client certificate for the API server to talk to etcd
* Client certificate/kubeconfig for the controller manager to talk to the API server
* Client certificate/kubeconfig for the scheduler to talk to the API server.
* Client and server certificates for the [front-proxy][proxy]
-->
* 客户端证书,供 kubelet 访问 API 服务器时的身份验证使用
* API 服务器端点的服务器证书
* 客户端证书,供集群管理员访问 API 服务器时的身份验证之用
* API 服务器与 kubelet 通信所需的客户端证书
* API 服务器与 etcd 通信所需的客户端证书
* 客户端证书/kubeconfig,供控制器管理器与 API 服务器通信
* 客户端证书/kubeconfig,供调度器与 API 服务器通信。
* [front-proxy][proxy] 的客户端和服务器证书
{{< note >}}
<!--
`front-proxy` certificates are required only if you run kube-proxy to support [an extension API server](/docs/tasks/access-kubernetes-api/setup-extension-api-server/).
-->
仅在您使用 kube-proxy 来支持 [一个扩展 API 服务器](/docs/tasks/access-kubernetes-api/setup-extension-api-server/) 时才需要 `front-proxy` 证书。
{{< /note >}}
<!--
etcd also implements mutual TLS to authenticate clients and peers.
-->
etcd 还实现了双向 TLS 来验证客户端和对等端。
<!--
## Where certificates are stored
-->
## 证书在何处存储
<!--
If you install Kubernetes with kubeadm, certificates are stored in `/etc/kubernetes/pki`. All paths in this documentation are relative to that directory.
-->
如果使用 kubeadm 安装 Kubernetes,证书将存储在 `/etc/kubernetes/pki` 目录中。 本文档中的所有路径,都是与该目录的相对路径。
<!--
## Configure certificates manually
-->
## 手动配置证书
<!--
If you don't want kubeadm to generate the required certificates, you can create them in either of the following ways.
-->
如果您不希望 kubeadm 生成所需的证书,可以使用以下任一方法创建它们。
<!--
### Single root CA
-->
单个 root CA
<!--
You can create a single root CA, controlled by an administrator. This root CA can then create multiple intermediate CAs, and delegate all further creation to Kubernetes itself.
-->
您可以创建一个由管理员控制的单个 root CA。然后,此 root CA 可以创建多个中间 CA,并委托 Kubernetes 本身完成后续创建操作。
<!--
Required CAs:
| path | Default CN | description |
|------------------------|---------------------------|----------------------------------|
| ca.crt,key | kubernetes-ca | Kubernetes general CA |
| etcd/ca.crt,key | etcd-ca | For all etcd-related functions |
| front-proxy-ca.crt,key | kubernetes-front-proxy-ca | For the [front-end proxy][proxy] |
-->
所需 CA
| 路径 | 默认 CN | 描述 |
|------------------------|---------------------------|----------------------------------|
| ca.crt,key | kubernetes-ca | Kubernetes 通用 CA |
| etcd/ca.crt,key | etcd-ca | 所有 etcd 相关操作 |
| front-proxy-ca.crt,key | kubernetes-front-proxy-ca | 供 [front-end proxy][proxy] 使用 |
<!--
### All certificates
-->
### 所有证书
<!--
If you don't wish to copy these private keys to your API servers, you can generate all certificates yourself.
-->
如果您不希望将这些私钥复制到 API 服务器,您可以自己生成所有证书。
<!--
Required certificates:
| Default CN | Parent CA | O (in Subject) | kind | hosts (SAN) |
|-------------------------------|---------------------------|----------------|----------------------------------------|---------------------------------------------|
| kube-etcd | etcd-ca | | server, client [<sup>1</sup>][etcdbug] | `localhost`, `127.0.0.1` |
| kube-etcd-peer | etcd-ca | | server, client | `<hostname>`, `<Host_IP>`, `localhost`, `127.0.0.1` |
| kube-etcd-healthcheck-client | etcd-ca | | client | |
| kube-apiserver-etcd-client | etcd-ca | system:masters | client | |
| kube-apiserver | kubernetes-ca | | server | `<hostname>`, `<Host_IP>`, `<advertise_IP>`, `[1]` |
| kube-apiserver-kubelet-client | kubernetes-ca | system:masters | client | |
| front-proxy-client | kubernetes-front-proxy-ca | | client | |
-->
所需证书:
| 默认 CN | 父 CA | O (in Subject) | 种类 | 主机 (SAN) |
|-------------------------------|---------------------------|----------------|----------------------------------------|-----------------------------------------------------|
| kube-etcd | etcd-ca | | server, client [<sup>1</sup>][etcdbug] | `localhost`, `127.0.0.1` |
| kube-etcd-peer | etcd-ca | | server, client | `<hostname>`, `<Host_IP>`, `localhost`, `127.0.0.1` |
| kube-etcd-healthcheck-client | etcd-ca | | client | |
| kube-apiserver-etcd-client | etcd-ca | system:masters | client | |
| kube-apiserver | kubernetes-ca | | server | `<hostname>`, `<Host_IP>`, `<advertise_IP>`, `[1]` |
| kube-apiserver-kubelet-client | kubernetes-ca | system:masters | client | |
| front-proxy-client | kubernetes-front-proxy-ca | | client | |
[1]: `kubernetes`, `kubernetes.default`, `kubernetes.default.svc`, `kubernetes.default.svc.cluster`, `kubernetes.default.svc.cluster.local`
<!--
where `kind` maps to one or more of the [x509 key usage][usage] types:
-->
`kind` 映射到一个或多个 [x509 key usage][usage] 类型上
<!--
| kind | Key usage |
|--------|---------------------------------------------------------------------------------|
| server | digital signature, key encipherment, server auth |
| client | digital signature, key encipherment, client auth |
-->
| 种类 | 密钥用途 |
|--------|---------------------------------------------------------------------------------|
| server | 数字签名,密钥加密,服务器鉴权 |
| client | 数字签名,密钥加密,客户端鉴权 |
<!--
### Certificate paths
-->
### 证书路径
<!--
Certificates should be placed in a recommended path (as used by [kubeadm][kubeadm]). Paths should be specified using the given argument regardless of location.
| Default CN | recommend key path | recommended cert path | command | key argument | cert argument |
|------------------------------|------------------------------|-----------------------------|----------------|------------------------------|-------------------------------------------|
| etcd-ca | | etcd/ca.crt | kube-apiserver | | --etcd-cafile |
| etcd-client | apiserver-etcd-client.crt | apiserver-etcd-client.crt | kube-apiserver | --etcd-certfile | --etcd-keyfile |
| kubernetes-ca | | ca.crt | kube-apiserver | --client-ca-file | |
| kube-apiserver | apiserver.crt | apiserver.key | kube-apiserver | --tls-cert-file | --tls-private-key |
| apiserver-kubelet-client | apiserver-kubelet-client.crt | | kube-apiserver | --kubelet-client-certificate | |
| front-proxy-client | front-proxy-client.key | front-proxy-client.crt | kube-apiserver | --proxy-client-cert-file | --proxy-client-key-file |
| | | | | | |
| etcd-ca | | etcd/ca.crt | etcd | | --trusted-ca-file, --peer-trusted-ca-file |
| kube-etcd | | etcd/server.crt | etcd | | --cert-file |
| kube-etcd-peer | etcd/peer.key | etcd/peer.crt | etcd | --peer-key-file | --peer-cert-file |
| etcd-ca | | etcd/ca.crt | etcdctl[2] | | --cacert |
| kube-etcd-healthcheck-client | etcd/healthcheck-client.key | etcd/healthcheck-client.crt | etcdctl[2] | --key | --cert |
-->
证书应放置在推荐路径 (类似 [kubeadm][kubeadm] 中指定的)。无论位置如何,都应使用给定的参数指定路径。
| 默认 CN | 建议密钥路径 | 建议 cert 路径 | 命令 | 密钥参数 | cert 参数 |
|------------------------------|------------------------------|-----------------------------|----------------|------------------------------|-------------------------------------------|
| etcd-ca | | etcd/ca.crt | kube-apiserver | | --etcd-cafile |
| etcd-client | apiserver-etcd-client.crt | apiserver-etcd-client.crt | kube-apiserver | --etcd-certfile | --etcd-keyfile |
| kubernetes-ca | | ca.crt | kube-apiserver | --client-ca-file | |
| kube-apiserver | apiserver.crt | apiserver.key | kube-apiserver | --tls-cert-file | --tls-private-key |
| apiserver-kubelet-client | apiserver-kubelet-client.crt | | kube-apiserver | --kubelet-client-certificate | |
| front-proxy-client | front-proxy-client.key | front-proxy-client.crt | kube-apiserver | --proxy-client-cert-file | --proxy-client-key-file |
| | | | | | |
| etcd-ca | | etcd/ca.crt | etcd | | --trusted-ca-file, --peer-trusted-ca-file |
| kube-etcd | | etcd/server.crt | etcd | | --cert-file |
| kube-etcd-peer | etcd/peer.key | etcd/peer.crt | etcd | --peer-key-file | --peer-cert-file |
| etcd-ca | | etcd/ca.crt | etcdctl[2] | | --cacert |
| kube-etcd-healthcheck-client | etcd/healthcheck-client.key | etcd/healthcheck-client.crt | etcdctl[2] | --key | --cert |
<!--
[2]: For a liveness probe, if self-hosted
-->
[2]: 对应自托管时的活跃度检测场景
<!--
## Configure certificates for user accounts
-->
## 为用户帐户配置证书
<!--
You must manually configure these administrator account and service accounts:
-->
您必须手动配置这些管理员帐户和服务帐户:
<!--
| filename | credential name | Default CN | O (in Subject) |
|-------------------------|----------------------------|--------------------------------|----------------|
| admin.conf | default-admin | kubernetes-admin | system:masters |
| kubelet.conf | default-auth | system:node:`<nodename>` | system:nodes |
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
| scheduler.conf | default-manager | system:kube-scheduler | |
-->
| 文件名 | 凭据名 | 默认 | O (in Subject) |
|-------------------------|----------------------------|--------------------------------|----------------|
| admin.conf | default-admin | kubernetes-admin | system:masters |
| kubelet.conf | default-auth | system:node:`<nodename>` | system:nodes |
| controller-manager.conf | default-controller-manager | system:kube-controller-manager | |
| scheduler.conf | default-manager | system:kube-scheduler | |
<!--
1. For each config, generate an x509 cert/key pair with the given CN and O.
1. Run `kubectl` as follows for each config:
-->
1. 对于每个配置,使用给定的 CN 和 O 生成 x509 证书/密钥对。
1. 对于每个配置按如下所示执行 `kubectl`
```shell
KUBECONFIG=<filename> kubectl config set-cluster default-cluster --server=https://<host ip>:6443 --certificate-authority <path-to-kubernetes-ca> --embed-certs
KUBECONFIG=<filename> kubectl config set-credentials <credential-name> --client-key <path-to-key>.pem --client-certificate <path-to-cert>.pem --embed-certs
KUBECONFIG=<filename> kubectl config set-context default-system --cluster default-cluster --user <credential-name>
KUBECONFIG=<filename> kubectl config use-context default-system
```
<!--
These files are used as follows:
-->
这些文件用途如下:
<!--
| filename | command | comment |
|-------------------------|-------------------------|-----------------------------------------------------------------------|
| admin.conf | kubectl | Configures administrator user for the cluster |
| kubelet.conf | kubelet | One required for each node in the cluster. |
| controller-manager.conf | kube-controller-manager | Must be added to manifest in `manifests/kube-controller-manager.yaml` |
| scheduler.conf | kube-scheduler | Must be added to manifest in `manifests/kube-scheduler.yaml` |
-->
| 文件名 | 命令 | 描述 |
|-------------------------|-------------------------|-----------------------------------------------------------------------|
| admin.conf | kubectl | 配置集群的管理员用户 |
| kubelet.conf | kubelet | 集群中的每个节点都需要一个。 |
| controller-manager.conf | kube-controller-manager | 必须添加到清单 `manifests/kube-controller-manager.yaml` 中 |
| scheduler.conf | kube-scheduler | 必须添加到清单 `manifests/kube-scheduler.yaml` 中 |
<!--
[usage]: https://godoc.org/k8s.io/api/certificates/v1beta1#KeyUsage
-->
[usage]: https://godoc.org/k8s.io/api/certificates/v1beta1#KeyUsage
[kubeadm]: /docs/reference/setup-tools/kubeadm/kubeadm/
[proxy]: /docs/tasks/access-kubernetes-api/configure-aggregation-layer/
{{% /capture %}}
+471
View File
@@ -0,0 +1,471 @@
---
title: 安装 CRI
content_template: templates/concept
weight: 100
---
<!--
---
reviewers:
- vincepri
- bart0sh
title: CRI installation
content_template: templates/concept
weight: 100
---
-->
{{% capture overview %}}
从 v1.6.0 开始,Kubernetes 默认启用 CRI(容器运行时接口)。此页面包含各种运行时的安装说明。
此页面包含各种运行时的安装说明。
<!--
Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default.
This page contains installation instruction for various runtimes.
-->
{{% /capture %}}
{{% capture body %}}
请以 root 用户在操作系统上执行以下命令。
SSH 登录到各个主机后,你可以执行 `sudo -i` 成为 root 用户。
<!--
Please proceed with executing the following commands based on your OS as root.
You may become the root user by executing `sudo -i` after SSH-ing to each host.
-->
## Docker
<!--
## Docker
-->
在每台机器上安装 Docker
<!--
On each of your machines, install Docker.
-->
建议使用版本 18.06,但已知 1.111.121.13 和 17.03 也可以使用。
<!--
Version 18.06 is recommended, but 1.11, 1.12, 1.13 and 17.03 are known to work as well.
-->
跟踪在 Kubernetes 发行说明中最新的已验证 Docker 版本。
<!--
Keep track of the latest verified Docker version in the Kubernetes release notes.
-->
使用以下命令在系统上安装 Docker:
<!--
Use the following commands to install Docker on your system:
-->
<!--
# Install Docker from Ubuntu's repositories:
-->
<!--
# or install Docker CE 18.06 from Docker's repositories for Ubuntu or Debian:
-->
<!--
## Install prerequisites.
-->
<!--
## Download GPG key.
-->
<!--
## Add docker apt repository.
-->
<!--
## Install docker.
-->
<!--
# Setup daemon.
-->
<!--
# Restart docker.
-->
<!--
# Install Docker from CentOS/RHEL repository:
-->
<!--
# or install Docker CE 18.06 from Docker's CentOS repositories:
-->
<!--
## Install prerequisites.
-->
<!--
## Add docker repository.
-->
<!--
## Install docker.
-->
<!--
## Create /etc/docker directory.
-->
<!--
# Setup daemon.
-->
<!--
# Restart docker.
-->
{{< tabs name="tab-cri-docker-installation" >}}
{{< tab name="Ubuntu 16.04" codelang="bash" >}}
# 从 Ubuntu 的存储库安装 Docker
apt-get update
apt-get install -y docker.io
# 或者从 Docker 的 Ubuntu 或 Debian 镜像仓库中安装 Docker CE 18.06
## 安装环境准备。
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
## 下载 GPG 密钥。
url -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
## 添加 docker apt 镜像仓库。
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
## 安装 docker。
apt-get update && apt-get install docker-ce=18.06.0~ce~3-0~ubuntu
# 设置守护进程。
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# 重启 docker。
ystemctl daemon-reload
systemctl restart docker
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
# 从 CentOs 镜像仓库安装 Docker
yum install -y docker
# 或从 Docker 的 Centos 存储库安装 Docker CE 18.06
## 安装环境准备。
yum install yum-utils device-mapper-persistent-data lvm2
## 添加 docker 镜像仓库。
m-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## 安装 docker。
yum update && yum install docker-ce-18.06.1.ce
## 创建 /etc/docker 目录。
mkdir /etc/docker
# 设置守护进程。
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
# 重启 docker。
systemctl daemon-reload
systemctl restart docker
{{< /tab >}}
{{< /tabs >}}
请参阅 [Docker 官方安装指南](https://docs.docker.com/engine/installation/)
获取更多信息。
<!--
Refer to the [official Docker installation guides](https://docs.docker.com/engine/installation/)
for more information.
-->
## CRI-O
本节包含将“CRI-O”安装为 CRI 运行时所需的步骤。
<!--
## CRI-O
This section contains the necessary steps to install `CRI-O` as CRI runtime.
-->
使用以下命令在系统上安装 CRI-O:
<!--
Use the following commands to install CRI-O on your system:
-->
### 环境准备
<!--
### Prerequisites
-->
<!--
# Setup required sysctl params, these persist across reboots.
-->
<!--
# Install prerequisites
-->
<!--
# Install CRI-O
-->
<!--
# Install prerequisites
-->
<!--
# Install CRI-O
-->
```shell
modprobe overlay
modprobe br_netfilter
# 设置需要 sysctl 参数,这些参数在重新引导时仍然存在。
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl --system
```
{{< tabs name="tab-cri-cri-o-installation" >}}
{{< tab name="Ubuntu 16.04" codelang="bash" >}}
# 安装环境准备。
apt-get update
apt-get install software-properties-common
add-apt-repository ppa:projectatomic/ppa
apt-get update
# 安装 CRI-O
apt-get install cri-o-1.11
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
# 安装环境准备
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-311-candidate/x86_64/os/
# 安装 CRI-O
apt-get install cri-o-1.11
{{< /tab >}}
{{< /tabs >}}
### 启动 CRI-O
```
systemctl start crio
```
<!--
### Start CRI-O
```
systemctl start crio
```
-->
请参阅 [CRI-O 安装指南](https://github.com/kubernets-sigs/cri-o# get -started)
的更多的信息。
<!--
Refer to the [CRI-O installation guide](https://github.com/kubernetes-sigs/cri-o#getting-started)
for more information.
-->
## 容器
<!--
## containerd
-->
本节包含使用“容器运行时”作为 CRI 运行时所需的步骤。
<!--
This section contains the necessary steps to use `containerd` as CRI runtime.
-->
使用以下命令在系统上安装容器:
<!--
Use the following commands to install Containerd on your system:
-->
### 环境准备
<!--
### Prerequisites
-->
```shell
modprobe overlay
modprobe br_netfilter
# 设置需要 sysctl 参数,这些参数在重新引导时仍然存在。
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl --system
```
<!--
# Setup required sysctl params, these persist across reboots.
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sysctl --system
```
-->
{{< tabs name="tab-cri-containerd-installation" >}}
{{< tab name="Ubuntu 16.04+" codelang="bash" >}}
apt-get install -y libseccomp2
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
yum install -y libseccomp
{{< /tab >}}
{{< /tabs >}}
<!--
apt-get install -y libseccomp2
yum install -y libseccomp
-->
### 安装容器运行时
<!--
### Install containerd
-->
[容器运行时版本](https://github.com/containerd/containerd/release)定期发布,下面的值被硬编码为编写本文时可用的最新版本。请查看更新的版本和哈希[此处](https://storage.googleapis.com/cri-containerd.release)。
<!--
[Containerd releases](https://github.com/containerd/containerd/releases) are published regularly, the values below are hardcoded to the latest version available at the time of writing. Please check for newer versions and hashes [here](https://storage.googleapis.com/cri-containerd-release).
-->
<!--
# Export required environment variables.
-->
<!--
# Download containerd tar.
-->
<!--
# Check hash.
-->
<!--
# Unpack.
-->
<!--
# Start containerd.
-->
```shell
# 导出所需的环境变量。
export CONTAINERD_VERSION="1.1.2"
export CONTAINERD_SHA256="d4ed54891e90a5d1a45e3e96464e2e8a4770cd380c21285ef5c9895c40549218"
# 下载容器 tar 包。
wget https://storage.googleapis.com/cri-containerd-release/cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz
# 哈希校验和检查。
echo "${CONTAINERD_SHA256} cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz" | sha256sum --check -
# 解压缩。
tar --no-overwrite-dir -C / -xzf cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz
# 启动容器。
systemctl start containerd
```
## 其他 CRI 运行时:rktlet 和 frakti
<!--
## Other CRI runtimes: rktlet and frakti
-->
参考 [Frakti 快速入门指南](https://github.com/kubernetes/frakti# QuickStart)和 [Rktlet 入门指南](https://github.com/kubernets-incubator/rktlet/blob/master/docs/getting-startedguide.md)获取更多信息。
{{% /capture %}}
<!--
Refer to the [Frakti QuickStart guide](https://github.com/kubernetes/frakti#quickstart) and [Rktlet Getting Started guide](https://github.com/kubernetes-incubator/rktlet/blob/master/docs/getting-started-guide.md) for more information.
-->
@@ -0,0 +1,11 @@
---
title: 定制的云解决方案
weight: 50
---
<!--
---
title: Custom Cloud Solutions
weight: 50
---
-->
@@ -0,0 +1,209 @@
---
title: 在 AWS 或者 GCE 上的 CoreOS
reviewers:
- errordeveloper
content_template: templates/concept
---
<!--
---
title: CoreOS on AWS or GCE
reviewers:
- errordeveloper
content_template: templates/concept
---
-->
{{% capture overview %}}
<!--
There are multiple guides on running Kubernetes with [CoreOS](https://coreos.com/kubernetes/docs/latest/).
-->
有很多关于使用 [CoreOS](https://coreos.com/kubernetes/docs/latest/) 运行 Kubernetes 的指南。
{{% /capture %}}
{{% capture body %}}
<!--
## Official CoreOS Guides
-->
## CoreOS 官方指南
<!--
These guides are maintained by CoreOS and deploy Kubernetes the "CoreOS Way" with full TLS, the DNS add-on, and more. These guides pass Kubernetes conformance testing and we encourage you to [test this yourself](https://coreos.com/kubernetes/docs/latest/conformance-tests.html).
-->
这些指南由 CoreOS 维护,并以 "CoreOS 方式" 部署 Kubernetes 包括完整的 TLS、DNS 附加组件等等。这些指南通过了 Kubernetes 合规测试,我们鼓励您[自己测试](https://coreos.com/kubernetes/docs/latest/conformance-tests.html)
<!--
* [**AWS Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html)
-->
* [**AWS 多节点**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html)
<!--
Guide and CLI tool for setting up a multi-node cluster on AWS.
CloudFormation is used to set up a master and multiple workers in auto-scaling groups.
-->
用于在 AWS 上设置多节点群集的指南和 CLI 工具。
使用了 CloudFormation 来将一个主节点和多个工作节点配置到一个自动扩缩组中。
<!--
* [**Bare Metal Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-baremetal.html#automated-provisioning)
Guide and HTTP/API service for PXE booting and provisioning a multi-node cluster on bare metal.
[Ignition](https://coreos.com/ignition/docs/latest/) is used to provision a master and multiple workers on the first boot from disk.
-->
* [**裸金属多节点**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-baremetal.html#automated-provisioning)
用于 PXE 引导和配置裸机上的多节点集群的指南和 HTTP/API 服务。
[Ignition](https://coreos.com/ignition/docs/latest/) 被用来在第一次从磁盘引导时配置一个主节点和多个工作节点。
<!--
* [**Vagrant Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html)
Guide to setting up a multi-node cluster on Vagrant.
The deployer can independently configure the number of etcd nodes, master nodes, and worker nodes to bring up a fully HA control plane.
-->
* [**Vagrant 多节点**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html)
在 Vagrant 上设置多节点集群的指南。
部署人员可以独立配置 etcd 节点、主节点和工作节点的数量,从而生成一个完全高可用的控制平面。
<!--
* [**Vagrant Single-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html)
The quickest way to set up a Kubernetes development environment locally.
As easy as `git clone`, `vagrant up` and configuring `kubectl`.
-->
* [**Vagrant 单节点**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html)
在本地设置 Kubernetes 开发环境的最快方法。
简单到只需 `git clone``vagrant up` 和 配置 `kubectl`
<!--
* [**Full Step by Step Guide**](https://coreos.com/kubernetes/docs/latest/getting-started.html)
A generic guide to setting up an HA cluster on any cloud or bare metal, with full TLS.
Repeat the master or worker steps to configure more machines of that role.
-->
* [**完整的分步指南**](https://coreos.com/kubernetes/docs/latest/getting-started.html)
使用完整 TLS 在任何云或裸机上设置 HA 集群的通用指南。
重复主节点或工作节点步骤,以配置更多同一角色的机器。
<!--
## Community Guides
-->
## 社区指南
<!--
These guides are maintained by community members, cover specific platforms and use cases, and experiment with different ways of configuring Kubernetes on CoreOS.
-->
这些指南由社区成员维护,涵盖特定平台和用例,并尝试在 CoreOS 上配置 Kubernetes 的不同方法。
<!--
* [**Easy Multi-node Cluster on Google Compute Engine**](https://github.com/rimusz/coreos-multi-node-k8s-gce/blob/master/README.md)
Scripted installation of a single master, multi-worker cluster on GCE.
Kubernetes components are managed by [fleet](https://github.com/coreos/fleet).
-->
* [**Google Compute Engine 上的轻松多节点集群**](https://github.com/rimusz/coreos-multi-node-k8s-gce/blob/master/README.md)
在 GCE 上脚本安装单个主节点、多个工作节点集群。
Kubernetes 组件由 [fleet](https://github.com/coreos/fleet) 管理。
<!--
* [**Multi-node cluster using cloud-config and Weave on Vagrant**](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md)
Configure a Vagrant-based cluster of 3 machines with networking provided by Weave.
-->
* [**在 Vagrant 上使用 cloud-config 和 Weave 搭建多节点集群**](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md)
使用 Weave 提供的网络配置基于 Vagrant 的 3 台计算机集群。
<!--
* [**Multi-node cluster using cloud-config and Vagrant**](https://github.com/pires/kubernetes-vagrant-coreos-cluster/blob/master/README.md)
Configure a single master, multi-worker cluster locally, running on your choice of hypervisor: VirtualBox, Parallels, or VMware
-->
* [**使用 cloud-config 和 Vagrant 搭建多节点集群**](https://github.com/pires/kubernetes-vagrant-coreos-cluster/blob/master/README.md)
在本地配置单个主节点,多工作节点的集群,在您选择的虚拟机管理程序上运行:VirtualBox、Parallels 或 VMware
<!--
* [**Single-node cluster using a small macOS App**](https://github.com/rimusz/kube-solo-osx/blob/master/README.md)
Guide to running a solo cluster (master + worker) controlled by an macOS menubar application.
Uses xhyve + CoreOS under the hood.
-->
* [**使用一个小型 macOS 应用程序来搭建单节点集群**](https://github.com/rimusz/kube-solo-osx/blob/master/README.md)
运行由 macOS 菜单栏应用程序控制的单节点集群(主 + 工作节点)指南。
底层使用的是 xhyve + CoreOS。
<!--
* [**Multi-node cluster with Vagrant and fleet units using a small macOS App**](https://github.com/rimusz/coreos-osx-gui-kubernetes-cluster/blob/master/README.md)
Guide to running a single master, multi-worker cluster controlled by an macOS menubar application.
Uses Vagrant under the hood.
-->
* [**使用一个小型 macOS 应用程序并具有 Vagrant 和 fleet 单元搭建多节点集群**](https://github.com/rimusz/coreos-osx-gui-kubernetes-cluster/blob/master/README.md)
运行由 macOS 菜单栏应用程序控制的单主节点,多工作节点集群的指南。
底层使用的是 Vagrant。
<!--
* [**Multi-node cluster using cloud-config, CoreOS and VMware ESXi**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes)
Configure a single master, single worker cluster on VMware ESXi.
-->
* [**使用 cloud-configCoreOS 和 VMware ESXi 搭建多节点群集**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes)
在 VMware ESXi 上配置单个主节点,单个工作节点的集群。
<!--
* [**Single/Multi-node cluster using cloud-config, CoreOS and Foreman**](https://github.com/johscheuer/theforeman-coreos-kubernetes)
Configure a standalone Kubernetes or a Kubernetes cluster with [Foreman](https://theforeman.org).
-->
* [**使用 cloud-configCoreOS 和 Foreman 的单/多节点集群**](https://github.com/johscheuer/theforeman-coreos-kubernetes)
使用 [Foreman](https://theforeman.org) 配置独立的 Kubernetes 或 Kubernetes 集群。
<!--
## Support Level
-->
## 支持级别
<!--
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
GCE | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | | Community ([@pires](https://github.com/pires))
Vagrant | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | | Community ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles))
-->
IaaS 供应商 | 配置管理 | 操作系统 | 网络 | 文档 | 合规 | 支持级别
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
GCE | CoreOS | CoreOS | flannel | [文档](/docs/getting-started-guides/coreos) | | 社区 ([@pires](https://github.com/pires))
Vagrant | CoreOS | CoreOS | flannel | [文档](/docs/getting-started-guides/coreos) | | 社区 ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles))
<!--
For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart.
-->
有关所有解决方案的支持级别信息,请参阅[解决方案表](/docs/getting-started-guides/#table-of-solutions)。
{{% /capture %}}
+9
View File
@@ -0,0 +1,9 @@
---
title: "用 kubeadm 创建集群"
weight: 30
---
<!-- ---
title: "Bootstrapping Clusters with kubeadm"
weight: 30
--- -->
@@ -0,0 +1,130 @@
---
title: 使用 kubeadm 定制控制平面配置
content_template: templates/concept
weight: 40
---
<!--
---
reviewers:
- sig-cluster-lifecycle
title: Customizing control plane configuration with kubeadm
content_template: templates/concept
weight: 40
---
-->
{{% capture overview %}}
<!--
The kubeadm configuration exposes the following fields that can override the default flags passed to control plane components such as the APIServer, ControllerManager and Scheduler:
-->
kubeadm 配置公开了以下字段,这些字段可以覆盖传递给控制平面组件(如 APIServer、ControllerManager 和 Scheduler)的默认参数:
- `APIServerExtraArgs`
- `ControllerManagerExtraArgs`
- `SchedulerExtraArgs`
<!--
These fields consist of `key: value` pairs. To override a flag for a control plane component:
-->
这些字段由 `key: value` 对组成。
要覆盖控制平面组件的参数:
<!--
1. Add the appropriate field to your configuration.
2. Add the flags to override to the field.
-->
1. 将适当的字段添加到配置中。
2. 向字段添加要覆盖的参数值。
<!--
For more details on each field in the configuration you can navigate to our
[API reference pages](https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm#ClusterConfiguration).
-->
有关配置中的每个字段的详细信息,您可以导航到我们的 [API 参考页面](https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm#ClusterConfiguration)。
{{% /capture %}}
{{% capture body %}}
<!--
## APIServer flags
-->
## APIServer 参数
<!--
For details, see the [reference documentation for kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/).
-->
有关详细信息,请参阅 [kube-apiserver 参考文档](/docs/reference/command-line-tools-reference/kube-apiserver/)。
<!--
Example usage:
-->
使用示例:
```yaml
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
kubernetesVersion: v1.12.0
metadata:
name: 1.12-sample
apiServerExtraArgs:
advertise-address: 192.168.0.103
anonymous-auth: false
enable-admission-plugins: AlwaysPullImages,DefaultStorageClass
audit-log-path: /home/johndoe/audit.log
```
<!--
## ControllerManager flags
-->
## ControllerManager 参数
<!--
For details, see the [reference documentation for kube-controller-manager](/docs/reference/command-line-tools-reference/kube-controller-manager/).
-->
有关详细信息,请参阅 [kube-controller-manager 参考文档](/docs/reference/command-line-tools-reference/kube-controller-manager/)。
<!--
Example usage:
-->
使用示例:
```yaml
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
kubernetesVersion: v1.12.0
metadata:
name: 1.12-sample
controllerManagerExtraArgs:
cluster-signing-key-file: /home/johndoe/keys/ca.key
bind-address: 0.0.0.0
deployment-controller-sync-period: 50
```
<!--
## Scheduler flags
-->
## Scheduler 参数
<!--
For details, see the [reference documentation for kube-scheduler](/docs/reference/command-line-tools-reference/kube-scheduler/).
-->
有关详细信息,请参阅 [kube-scheduler 参考文档](/docs/reference/command-line-tools-reference/kube-scheduler/)。
<!--
Example usage:
-->
使用示例:
```yaml
apiVersion: kubeadm.k8s.io/v1alpha3
kind: ClusterConfiguration
kubernetesVersion: v1.12.0
metadata:
name: 1.12-sample
schedulerExtraArgs:
address: 0.0.0.0
config: /home/johndoe/schedconfig.yaml
kubeconfig: /home/johndoe/kubeconfig.yaml
```
{{% /capture %}}
@@ -1,5 +1,7 @@
---
title: 使用 kubeadm 创建一个单主集群
reviewers:
- sig-cluster-lifecycle
title: 使用 kubeadm 创建只有一个主节点的集群
content_template: templates/task
weight: 30
---
@@ -15,13 +17,13 @@ weight: 30
{{% capture overview %}}
<!--
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification). Kubeadm also supports other cluster
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices. With kubeadm, your cluster should pass [Kubernetes Conformance tests](https://kubernetes.io/blog/2017/10/software-conformance-certification). Kubeadm also supports other cluster
lifecycle functions, such as upgrades, downgrade, and managing [bootstrap tokens](/docs/reference/access-authn-authz/bootstrap-tokens/). -->
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">**kubeadm** 能帮助您建立一个小型的符合最佳实践的 Kubernetes 集群。通过使用 kubeadm, 您的集群会符合 [Kubernetes 合规性测试](https://kubernetes.io/blog/2017/10/software-conformance-certification)的要求. Kubeadm 也支持其他的集群生命周期操作,比如升级、降级和管理[启动引导令牌](/docs/reference/access-authn-authz/bootstrap-tokens/)。
<!-- Because you can install kubeadm on various types of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited for integration with provisioning systems
<!-- Because you can install kubeadm on various types of machine (e.g. laptop, server,
Raspberry Pi, etc.), it's well suited for integration with provisioning systems
such as Terraform or Ansible. -->
因为您可以在不同类型的机器(比如笔记本、服务器和树莓派等)上安装 kubeadm,因此它非常适合与 Terraform 或 Ansible 这类自动化管理系统集成。
@@ -129,7 +131,7 @@ Kubernetes 发现版本的通常只维护支持九个月,在维护周期内,
{{% /capture %}}
{{% capture prerequisites %}}
<!--
<!--
- One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS
- 2 GB or more of RAM per machine. Any less leaves little room for your
@@ -143,10 +145,10 @@ Kubernetes 发现版本的通常只维护支持九个月,在维护周期内,
- 每台机器 2 GB 以上的内存,内存不足时应用会受限制
- 主节点上 2 CPU 以上
- 集群里所有的机器有完全的网络连接,公有网络或者私有网络都可以
{{% /capture %}}
{{% capture steps %}}
<!--
<!--
## Objectives
* Install a single master Kubernetes cluster or [high availability cluster](https://kubernetes.io/docs/setup/independent/high-availability/)
@@ -170,13 +172,13 @@ See ["Installing kubeadm"](/docs/setup/independent/install-kubeadm/).
apt-get upgrade` or `yum update` to get the latest version of kubeadm.
When you upgrade, the kubelet restarts every few seconds as it waits in a crashloop for
kubeadm to tell it what to do. This crashloop is expected and normal.
kubeadm to tell it what to do. This crashloop is expected and normal.
After you initialize your master, the kubelet runs normally.
{{< /note >}}-->
## 步骤
### 在您的机器上安装 kubeadm
### 在您的机器上安装 kubeadm
请查阅[安装 kubeadm](/docs/setup/independent/install-kubeadm/)。
@@ -198,22 +200,22 @@ communicates with). -->
主节点是集群里运行控制面的机器,包括 etcd (集群的数据库)和 API 服务(kubectl CLI 与之交互)。
<!-- 1. Choose a Pod network add-on, and verify whether it requires any arguments to
<!-- 1. Choose a Pod network add-on, and verify whether it requires any arguments to
be passed to kubeadm initialization. Depending on which
third-party provider you choose, you might need to set the `--Pod-network-cidr` to
a provider-specific value. See [Installing a Pod network add-on](#Pod-network).
1. (Optional) Unless otherwise specified, kubeadm uses the network interface associated
with the default gateway to advertise the master's IP. To use a different
network interface, specify the `--apiserver-advertise-address=<ip-address>` argument
to `kubeadm init`. To deploy an IPv6 Kubernetes cluster using IPv6 addressing, you
1. (Optional) Unless otherwise specified, kubeadm uses the network interface associated
with the default gateway to advertise the master's IP. To use a different
network interface, specify the `--apiserver-advertise-address=<ip-address>` argument
to `kubeadm init`. To deploy an IPv6 Kubernetes cluster using IPv6 addressing, you
must specify an IPv6 address, for example `--apiserver-advertise-address=fd00::101`
1. (Optional) Run `kubeadm config images pull` prior to `kubeadm init` to verify
connectivity to gcr.io registries.
1. (Optional) Run `kubeadm config images pull` prior to `kubeadm init` to verify
connectivity to gcr.io registries.
Now run:
```bash
kubeadm init <args>
kubeadm init <args>
``` -->
@@ -227,7 +229,7 @@ IPv6 的集群,则需要指定一个 IPv6 地址,比如 `--apiserver-adverti
现在运行:
```bash
kubeadm init <args>
kubeadm init <args>
```
<!-- ### More information
@@ -254,7 +256,7 @@ components do not currently support multi-architecture.
`kubeadm init` first runs a series of prechecks to ensure that the machine
is ready to run Kubernetes. These prechecks expose warnings and exit on errors. `kubeadm init`
then downloads and installs the cluster control plane components. This may take several minutes.
then downloads and installs the cluster control plane components. This may take several minutes.
The output should look like: -->
如果需要再次运行 `kubeadm init`,您必须先[卸载集群](#tear-down)。
@@ -383,8 +385,8 @@ each other. -->
kubeadm only supports Container Network Interface (CNI) based networks (and does not support kubenet).**
Several projects provide Kubernetes Pod networks using CNI, some of which also
support [Network Policy](/docs/concepts/services-networking/networkpolicies/). See the [add-ons page](/docs/concepts/cluster-administration/addons/) for a complete list of available network add-ons.
- IPv6 support was added in [CNI v0.6.0](https://github.com/containernetworking/cni/releases/tag/v0.6.0).
support [Network Policy](/docs/concepts/services-networking/networkpolicies/). See the [add-ons page](/docs/concepts/cluster-administration/addons/) for a complete list of available network add-ons.
- IPv6 support was added in [CNI v0.6.0](https://github.com/containernetworking/cni/releases/tag/v0.6.0).
- [CNI bridge](https://github.com/containernetworking/plugins/blob/master/plugins/main/bridge/README.md) and [local-ipam](https://github.com/containernetworking/plugins/blob/master/plugins/ipam/host-local/README.md) are the only supported IPv6 network plugins in Kubernetes version 1.9. -->
**网络必须在部署任何应用之前部署好。此外,在网络安装之前是 CoreDNS 不会启用的。
@@ -527,7 +529,7 @@ kubectl create -f ./
{{% /tab %}}
<!--
<!--
For `flannel` to work correctly, you must pass `--Pod-network-cidr=10.244.0.0/16` to `kubeadm init`.
@@ -561,7 +563,7 @@ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8
想了解更多关于 `flannel` 的信息,请查阅[ GitHub 上的 CoreOS flannel 仓库](https://github.com/coreos/flannel)。
{{% /tab %}}
<!--
<!--
Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1`
to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information
please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements).
@@ -585,7 +587,7 @@ Kube-router 提供 Pod 间联网、网络策略和和高效的基于 IPVS/LVS
想了解关于使用 kubeadm 搭建 Kubernetes 和 Kube-router 的更多信息。请查看官方的[安装指引](https://github.com/cloudnativelabs/kube-router/blob/master/docs/kubeadm.md)。
{{% /tab %}}
<!--
<!--
Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1`
to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information
please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements).
@@ -614,7 +616,7 @@ kubectl apply -f https://raw.githubusercontent.com/romana/romana/master/containe
```
{{% /tab %}}
<!--
<!--
Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1`
to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information
please see [here](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#network-plugin-requirements).
@@ -647,7 +649,7 @@ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl versio
```
{{% /tab %}}
<!--
<!--
Provides overlay SDN solution, delivering multicloud networking, hybrid cloud networking,
simultaneous overlay-underlay support, network policy enforcement, network isolation,
service chaining and flexible load balancing.
@@ -744,7 +746,7 @@ kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert
``` bash
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
```
<!--
<!--
If you do not have the token, you can get it by running the following command on the master node:
``` bash
@@ -899,7 +901,7 @@ privileges by using `kubectl create (cluster)rolebinding`.
### (可选) 在非主节点上控制集群
为了能在其他机器(比如,笔记本)上使用 kubectl 来控制您的集群,您可以从主节点上复制管理员的
为了能在其他机器(比如,笔记本)上使用 kubectl 来控制您的集群,您可以从主节点上复制管理员的
kubeconfig 到您的机器上,像下面这样操作:
``` bash
@@ -1108,8 +1110,3 @@ If you are running into difficulties with kubeadm, please consult our [troublesh
## 查错 {#troubleshooting}
如果您在使用 kubeadm 发现任何问题,请查阅我们的[纠错文档](/docs/setup/independent/troubleshooting-kubeadm/)。
@@ -3,17 +3,17 @@ title: 安装 kubeadm
content_template: templates/task
weight: 20
---
<!--
<!--
---
title: Installing kubeadm
content_template: templates/task
weight: 20
---
---
-->
{{% capture overview %}}
<!--
<!--
<img src="https://raw.githubusercontent.com/cncf/artwork/master/kubernetes/certified-kubernetes/versionless/color/certified-kubernetes-color.png" align="right" width="150px">This page shows how to install the `kubeadm` toolbox.
For information how to create a cluster with kubeadm once you have performed this installation process,
see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-cluster-kubeadm/) page.
@@ -24,7 +24,7 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust
{{% capture prerequisites %}}
<!--
<!--
* One or more machines running one of:
- Ubuntu 16.04+
- Debian 9
@@ -38,7 +38,7 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust
* Full network connectivity between all machines in the cluster (public or private network is fine)
* Unique hostname, MAC address, and product_uuid for every node. See [here](#verify-the-mac-address-and-product-uuid-are-unique-for-every-node) for more details.
* Certain ports are open on your machines. See [here](#check-required-ports) for more details.
* Swap disabled. You **MUST** disable swap in order for the kubelet to work properly.
* Swap disabled. You **MUST** disable swap in order for the kubelet to work properly.
-->
* 一台或多台运行着下列系统的机器:
- Ubuntu 16.04+
@@ -49,7 +49,7 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust
- HypriotOS v1.0.1+
- Container Linux (针对1800.6.0 版本测试)
* 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响您应用的运行内存)
* 2 CPU 核心或更多
* 2 CPU 核心或更多
* 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
* 节点之中不可以有重复的主机名,MAC 地址,product_uuid。更多详细信息请参见[这里](#verify-the-mac-address-and-product-uuid-are-unique-for-every-node) 。
* 开启主机上的一些特定端口. 更多详细信息请参见[这里](#check-required-ports)。
@@ -59,8 +59,8 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust
{{% capture steps %}}
<!--
## Verify the MAC address and product_uuid are unique for every node
<!--
## Verify the MAC address and product_uuid are unique for every node
-->
## 确保每个节点上 MAC 地址和 product_uuid 的唯一性。
@@ -71,13 +71,14 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust
* 您可以使用下列命令获取网络接口的 MAC 地址:`ip link` 或是 `ifconfig -a`
* 下列命令可以用来获取 product_uuid `sudo cat /sys/class/dmi/id/product_uuid`
<!--
<!--
It is very likely that hardware devices will have unique addresses, although some virtual machines may have
identical values. Kubernetes uses these values to uniquely identify the nodes in the cluster.
If these values are not unique to each node, the installation process
may [fail](https://github.com/kubernetes/kubeadm/issues/31).
may [fail](https://github.com/kubernetes/kubeadm/issues/31).
-->
一般来讲,硬件设备会拥有独一无二的地址,但是有些虚拟机可能会雷同。Kubernetes 使用这些值来唯一确定集群中的节点。如果这些值在集群中不唯一,可能会导致安装[失败](https://github.com/kubernetes/kubeadm/issues/31)。
一般来讲,硬件设备会拥有独一无二的地址,但是有些虚拟机可能会雷同。Kubernetes 使用这些值来唯一确定集群中的节点。
如果这些值在集群中不唯一,可能会导致安装[失败](https://github.com/kubernetes/kubeadm/issues/31)。
<!--
## Check network adapters
@@ -126,17 +127,17 @@ route, we recommend you add IP route(s) so Kubernetes cluster addresses go via t
** Default port range for [NodePort Services](/docs/concepts/services-networking/service/).
-->
** [NodePort 服务](/docs/concepts/services-networking/service/) 的默认端口范围。
** [NodePort 服务](/docs/concepts/services-networking/service/)的默认端口范围。
<!--
<!--
Any port numbers marked with * are overridable, so you will need to ensure any
custom ports you provide are also open.
custom ports you provide are also open.
-->
任何使用 * 标记的端口号都有可能被覆盖,所以您需要保证您的自定义端口的状态是开放的。
<!--
<!--
Although etcd ports are included in master nodes, you can also host your own
etcd cluster externally or on custom ports.
etcd cluster externally or on custom ports.
-->
虽然主节点已经包含了 etcd 的端口,您也可以使用自定义的外部 etcd 集群,或是指定自定义端口。
<!--
@@ -149,20 +150,21 @@ documentation for the plugins about what port(s) those need.
<!-- ## Installing runtime -->
## 安装 runtime
<!--
<!--
Since v1.6.0, Kubernetes has enabled the use of CRI, Container Runtime Interface, by default.
The container runtime used by default is Docker, which is enabled through the built-in
`dockershim` CRI implementation inside of the `kubelet`.
`dockershim` CRI implementation inside of the `kubelet`.
-->
从 v1.6.0 起,Kubernetes 开始允许使用 CRI,容器运行时接口。默认的容器运行时是 Docker,这是由 `kubelet` 内置的 CRI 实现 `dockershim` 开启的。
从 v1.6.0 起,Kubernetes 开始允许使用 CRI,容器运行时接口。
默认的容器运行时是 Docker,这是由 `kubelet` 内置的 CRI 实现 `dockershim` 开启的。
<!--
<!--
Other CRI-based runtimes include:
- [containerd](https://github.com/containerd/cri) (CRI plugin built into containerd)
- [cri-o](https://github.com/kubernetes-incubator/cri-o)
- [frakti](https://github.com/kubernetes/frakti)
- [rkt](https://github.com/kubernetes-incubator/rktlet)
- [rkt](https://github.com/kubernetes-incubator/rktlet)
-->
其他的容器运行时有:
@@ -171,17 +173,17 @@ Other CRI-based runtimes include:
- [frakti](https://github.com/kubernetes/frakti)
- [rkt](https://github.com/kubernetes-incubator/rktlet)
<!--
Refer to the [CRI installation instructions](/docs/setup/cri) for more information.
<!--
Refer to the [CRI installation instructions](/docs/setup/cri) for more information.
-->
参考 [CRI 安装指南](/docs/setup/cri) 获取更多信息.
参考 [CRI 安装指南](/docs/setup/cri)获取更多信息.
<!--
## Installing kubeadm, kubelet and kubectl
-->
## 安装 kubeadm, kubelet 和 kubectl
<!--
<!--
You will install these packages on all of your machines:
* `kubeadm`: the command to bootstrap the cluster.
@@ -189,47 +191,50 @@ You will install these packages on all of your machines:
* `kubelet`: the component that runs on all of the machines in your cluster
and does things like starting pods and containers.
* `kubectl`: the command line util to talk to your cluster.
* `kubectl`: the command line util to talk to your cluster.
-->
您需要在每台机器上都安装以下的软件包:
* `kubeadm`: 用来初始化集群的指令。
* `kubelet`: 在集群中的每个节点上用来启动 pod 和 container 等。
* `kubelet`: 在集群中的每个节点上用来启动 pod 和容器等。
* `kubectl`: 用来与集群通信的命令行工具。
<!--
<!--
kubeadm **will not** install or manage `kubelet` or `kubectl` for you, so you will
need to ensure they match the version of the Kubernetes control panel you want
kubeadm to install for you. If you do not, there is a risk of a version skew occurring that
can lead to unexpected, buggy behaviour. However, _one_ minor version skew between the
kubelet and the control plane is supported, but the kubelet version may never exceed the API
server version. For example, kubelets running 1.7.0 should be fully compatible with a 1.8.0 API server,
but not vice versa.
but not vice versa.
-->
kubeadm **不能** 帮您安装或管理 `kubelet``kubectl` ,所以您得保证他们满足通过 kubeadm 安装的 Kubernetes 控制层对版本的要求。如果版本没有满足要求,就有可能导致一些难以想到的错误或问题。然而控制层与 kubelet 间的 _小版本号_ 不一致无伤大雅,不过请记住 kubelet 的版本不可以超过 API server 的版本。例如 1.8.0 的 API server 可以适配 1.7.0 的 kubelet,反之就不行了。
kubeadm **不能** 帮您安装或管理 `kubelet``kubectl` ,所以您得保证他们满足通过 kubeadm 安装的 Kubernetes 控制层对版本的要求。
如果版本没有满足要求,就有可能导致一些难以想到的错误或问题。
然而控制层与 kubelet 间的 _小版本号_ 不一致无伤大雅,不过请记住 kubelet 的版本不可以超过 API server 的版本。
例如 1.8.0 的 API server 可以适配 1.7.0 的 kubelet,反之则不行。
<!--
<!--
{{< warning >}}
These instructions exclude all Kubernetes packages from any system upgrades.
This is because kubeadm and Kubernetes require
[special attention to upgrade](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/).
{{</ warning >}}
{{</ warning >}}
-->
{{< warning >}}
这些指南不包括所有系统升级时使用的 Kubernetes 程序包。这是因为 kubeadm 和 Kubernetes 需要 [升级时的特别注意事项](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/)。
{{</ warning >}}
这些指南不包括所有系统升级时使用的 Kubernetes 程序包。这是因为 kubeadm 和 Kubernetes 需要[升级时的特别注意事项](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/)。
{{</ warning >}}
<!--
<!--
For more information on version skews, please read our
[version skew policy](/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy).
[version skew policy](/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy).
-->
更多关于版本偏差的信息,请参阅 [版本偏差政策](/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy)。
更多关于版本偏差的信息,请参阅[版本偏差政策](/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy)。
{{< tabs name="k8s_install" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
```bash
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
@@ -271,12 +276,12 @@ systemctl enable kubelet && systemctl start kubelet
<!-- **Note:** -->
**请注意:**
<!--
<!--
- Setting SELinux in permissive mode by running `setenforce 0` and `sed ...` effectively disables it.
This is required to allow containers to access the host filesystem, which is needed by pod networks for example.
You have to do this until SELinux support is improved in the kubelet.
- Some users on RHEL/CentOS 7 have reported issues with traffic being routed incorrectly due to iptables being bypassed. You should ensure
`net.bridge.bridge-nf-call-iptables` is set to 1 in your `sysctl` config, e.g.
`net.bridge.bridge-nf-call-iptables` is set to 1 in your `sysctl` config, e.g.
-->
- 通过命令 `setenforce 0``sed ...` 可以将 SELinux 设置为 permissive 模式(将其禁用)。
只有执行这一操作之后,容器才能访问宿主的文件系统,进而能够正常使用 Pod 网络。您必须这么做,直到 kubelet 做出升级支持 SELinux 为止。
@@ -303,10 +308,10 @@ mkdir -p /opt/cni/bin
curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-amd64-${CNI_VERSION}.tgz" | tar -C /opt/cni/bin -xz
```
<!--
Install crictl (required for kubeadm / Kubelet Container Runtime Interface (CRI))
<!--
Install crictl (required for kubeadm / Kubelet Container Runtime Interface (CRI))
-->
安装 crictl (kubeadm / Kubelet 的容器运行时接口 (CRI) 要求)
安装 crictl (kubeadm / Kubelet 的容器运行时接口 (CRI) 要求)
```bash
CRICTL_VERSION="v1.11.1"
@@ -314,7 +319,7 @@ mkdir -p /opt/bin
curl -L "https://github.com/kubernetes-incubator/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" | tar -C /opt/bin -xz
```
<!--
<!--
Install `kubeadm`, `kubelet`, `kubectl` and add a `kubelet` systemd service: -->
安装 `kubeadm`, `kubelet`, `kubectl` 并且添加一个 `kubelet` systemd 服务:
@@ -332,8 +337,8 @@ mkdir -p /etc/systemd/system/kubelet.service.d
curl -sSL "https://raw.githubusercontent.com/kubernetes/kubernetes/${RELEASE}/build/debs/10-kubeadm.conf" | sed "s:/usr/bin:/opt/bin:g" > /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
```
<!--
Enable and start `kubelet`:
<!--
Enable and start `kubelet`:
-->
启用并启动 `kubelet`:
@@ -391,19 +396,19 @@ systemctl daemon-reload
systemctl restart kubelet
```
<!--
## Troubleshooting
<!--
## Troubleshooting
-->
## 查错
<!--
<!--
If you are running into difficulties with kubeadm, please consult our [troubleshooting docs](/docs/setup/independent/troubleshooting-kubeadm/).
-->
如果您在使用 kubeadm 时候遇到问题,请查看我们的[疑难解答文档](/docs/setup/independent/troubleshooting-kubeadm/).
如果您在使用 kubeadm 时候遇到问题,请查看我们的[疑难解答文档](/docs/setup/independent/troubleshooting-kubeadm/).
{{% capture whatsnext %}}
<!--
<!--
* [Using kubeadm to Create a Cluster](/docs/setup/independent/create-cluster-kubeadm/)
-->
* [使用 kubeadm 来创建集群](/docs/setup/independent/create-cluster-kubeadm/)
* [使用 kubeadm 来创建集群](/docs/setup/independent/create-cluster-kubeadm/)
{{% /capture %}}
@@ -0,0 +1,406 @@
---
title: 使用 kubeadm 创建一个高可用 etcd 集群
content_template: templates/task
weight: 60
---
<!--
---
reviewers:
- sig-cluster-lifecycle
title: Set up a High Availability etcd cluster with kubeadm
content_template: templates/task
weight: 60
---
-->
{{% capture overview %}}
<!--
Kubeadm defaults to running a single member etcd cluster in a static pod managed
by the kubelet on the control plane node. This is not a high availability setup
as the etcd cluster contains only one member and cannot sustain any members
becoming unavailable. This task walks through the process of creating a high
availability etcd cluster of three members that can be used as an external etcd
when using kubeadm to set up a kubernetes cluster.
-->
默认情况下,kubeadm 运行单成员的 etcd 集群,该集群由控制面节点上的 kubelet 以静态 Pod 的方式进行管理。由于 etcd 集群只包含一个成员且不能在任一成员不可用时保持运行,所以这不是一种高可用设置。本任务,将告诉您如何在使用 kubeadm 创建一个 kubernetes 集群时创建一个外部 etcd:有三个成员的高可用 etcd 集群。
{{% /capture %}}
{{% capture prerequisites %}}
<!--
* Three hosts that can talk to each other over ports 2379 and 2380. This document assumes these default ports. However, they are configurable through the kubeadm config file.
-->
* 三个可以通过 2379 和 2380 端口相互通信的主机。本文档使用这些作为默认端口。不过,它们可以通过 kubeadm 的配置文件进行自定义。
<!--
* Each host must [have docker, kubelet, and kubeadm installed][toolbox].
-->
* 每个主机必须 [安装有 docker、kubelet 和 kubeadm][工具箱]。
<!--
* Some infrastructure to copy files between hosts. For example `ssh` and `scp` can satisfy this requirement.
-->
* 一些可以用来在主机间复制文件的基础设施。例如 `ssh``scp` 就可以满足需求。
<!--
[toolbox]: /docs/setup/independent/install-kubeadm/
-->
[工具箱]: /docs/setup/independent/install-kubeadm/
{{% /capture %}}
{{% capture steps %}}
<!--
## Setting up the cluster
-->
## 建立集群
<!--
The general approach is to generate all certs on one node and only distribute the *necessary* files to the other nodes.
-->
一般来说,是在一个节点上生成所有证书并且只分发这些*必要*的文件到其它节点上。
{{< note >}}
<!--
kubeadm contains all the necessary crytographic machinery to generate the certificates described below; no other cryptographic tooling is required for this example.
-->
kubeadm 包含生成下述证书所需的所有必要的密码学工具;在这个例子中,不需要其他加密工具。
{{< /note >}}
<!--
1. Configure the kubelet to be a service manager for etcd.
Running etcd is simpler than running kubernetes so you must override the
kubeadm-provided kubelet unit file by creating a new one with a higher
precedence.
-->
1. 将 kubelet 配置为 etcd 的服务管理器。
运行 etcd 比运行 kubernetes 更简单,因此您必须通过创建具有更高优先级的新文件来覆盖 kubeadm 提供的 kubelet 单元文件。
```sh
cat << EOF > /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf
[Service]
ExecStart=
ExecStart=/usr/bin/kubelet --address=127.0.0.1 --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true
Restart=always
EOF
systemctl daemon-reload
systemctl restart kubelet
```
<!--
1.Create configuration files for kubeadm.
Generate one kubeadm configuration file for each host that will have an etcd
member running on it using the following script.
-->
1. 为 kubeadm 创建配置文件。
使用以下脚本为每个将要运行 etcd 成员的主机生成一个 kubeadm 配置文件。
<!--
```sh
# Update HOST0, HOST1, and HOST2 with the IPs or resolvable names of your hosts
export HOST0=10.0.0.6
export HOST1=10.0.0.7
export HOST2=10.0.0.8
# Create temp directories to store files that will end up on other hosts.
mkdir -p /tmp/${HOST0}/ /tmp/${HOST1}/ /tmp/${HOST2}/
ETCDHOSTS=(${HOST0} ${HOST1} ${HOST2})
NAMES=("infra0" "infra1" "infra2")
for i in "${!ETCDHOSTS[@]}"; do
HOST=${ETCDHOSTS[$i]}
NAME=${NAMES[$i]}
cat << EOF > /tmp/${HOST}/kubeadmcfg.yaml
apiVersion: "kubeadm.k8s.io/v1alpha3"
kind: ClusterConfiguration
etcd:
local:
serverCertSANs:
- "${HOST}"
peerCertSANs:
- "${HOST}"
extraArgs:
initial-cluster: infra0=https://${ETCDHOSTS[0]}:2380,infra1=https://${ETCDHOSTS[1]}:2380,infra2=https://${ETCDHOSTS[2]}:2380
initial-cluster-state: new
name: ${NAME}
listen-peer-urls: https://${HOST}:2380
listen-client-urls: https://${HOST}:2379
advertise-client-urls: https://${HOST}:2379
initial-advertise-peer-urls: https://${HOST}:2380
EOF
done
```
-->
```sh
# 使用 IP 或可解析的主机名替换 HOST0、HOST1 和 HOST2
export HOST0=10.0.0.6
export HOST1=10.0.0.7
export HOST2=10.0.0.8
# 创建临时目录来存储将被分发到其它主机上的文件
mkdir -p /tmp/${HOST0}/ /tmp/${HOST1}/ /tmp/${HOST2}/
ETCDHOSTS=(${HOST0} ${HOST1} ${HOST2})
NAMES=("infra0" "infra1" "infra2")
for i in "${!ETCDHOSTS[@]}"; do
HOST=${ETCDHOSTS[$i]}
NAME=${NAMES[$i]}
cat << EOF > /tmp/${HOST}/kubeadmcfg.yaml
apiVersion: "kubeadm.k8s.io/v1alpha3"
kind: ClusterConfiguration
etcd:
local:
serverCertSANs:
- "${HOST}"
peerCertSANs:
- "${HOST}"
extraArgs:
initial-cluster: infra0=https://${ETCDHOSTS[0]}:2380,infra1=https://${ETCDHOSTS[1]}:2380,infra2=https://${ETCDHOSTS[2]}:2380
initial-cluster-state: new
name: ${NAME}
listen-peer-urls: https://${HOST}:2380
listen-client-urls: https://${HOST}:2379
advertise-client-urls: https://${HOST}:2379
initial-advertise-peer-urls: https://${HOST}:2380
EOF
done
```
<!--
1.Generate the certificate authority
If you already have a CA then the only action that is copying the CA's `crt` and
`key` file to `/etc/kubernetes/pki/etcd/ca.crt` and
`/etc/kubernetes/pki/etcd/ca.key`. After those files have been copied,
proceed to the next step, "Create certificates for each member".
-->
1. 生成证书颁发机构
如果您已经拥有 CA,那么唯一的操作是复制 CA 的 `crt` 和 `key` 文件到 `etc/kubernetes/pki/etcd/ca.crt` 和 `/etc/kubernetes/pki/etcd/ca.key`。复制完这些文件后继续下一步,“为每个成员创建证书”。
<!--
If you do not already have a CA then run this command on `$HOST0` (where you generated the configuration files for kubeadm).
-->
如果您还没有 CA,则在 `$HOST0`(您为 kubeadm 生成配置文件的位置)上运行此命令。
```
kubeadm alpha phase certs etcd-ca
```
<!--
This creates two files
-->
创建了如下两个文件
- `/etc/kubernetes/pki/etcd/ca.crt`
- `/etc/kubernetes/pki/etcd/ca.key`
<!--
1. Create certificates for each member
-->
1. 为每个成员创建证书
<!--
```sh
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST2}/kubeadmcfg.yaml
cp -R /etc/kubernetes/pki /tmp/${HOST2}/
# cleanup non-reusable certificates
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
cp -R /etc/kubernetes/pki /tmp/${HOST1}/
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
# No need to move the certs because they are for HOST0
# clean up certs that should not be copied off this host
find /tmp/${HOST2} -name ca.key -type f -delete
find /tmp/${HOST1} -name ca.key -type f -delete
```
-->
```sh
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST2}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST2}/kubeadmcfg.yaml
cp -R /etc/kubernetes/pki /tmp/${HOST2}/
# 清理不可重复使用的证书
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST1}/kubeadmcfg.yaml
cp -R /etc/kubernetes/pki /tmp/${HOST1}/
find /etc/kubernetes/pki -not -name ca.crt -not -name ca.key -type f -delete
kubeadm alpha phase certs etcd-server --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-peer --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs etcd-healthcheck-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
kubeadm alpha phase certs apiserver-etcd-client --config=/tmp/${HOST0}/kubeadmcfg.yaml
# 不需要移动 certs 因为它们是给 HOST0 使用的
# 清理不应从此主机复制的证书
find /tmp/${HOST2} -name ca.key -type f -delete
find /tmp/${HOST1} -name ca.key -type f -delete
```
<!--
1.Copy certificates and kubeadm configs
The certificates have been generated and now they must be moved to their
respective hosts.
-->
1. 复制证书和 kubeadm 配置
证书已生成,现在必须将它们移动到对应的主机。
```sh
USER=ubuntu
HOST=${HOST1}
scp -r /tmp/${HOST}/* ${USER}@${HOST}:
ssh ${USER}@${HOST}
USER@HOST $ sudo -Es
root@HOST $ chown -R root:root pki
root@HOST $ mv pki /etc/kubernetes/
```
<!--
1.Ensure all expected files exist
The complete list of required files on `$HOST0` is:
-->
1. 确保已经所有预期的文件都存在
`$HOST0` 所需文件的完整列表如下:
```
/tmp/${HOST0}
└── kubeadmcfg.yaml
---
/etc/kubernetes/pki
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
└── etcd
├── ca.crt
├── ca.key
├── healthcheck-client.crt
├── healthcheck-client.key
├── peer.crt
├── peer.key
├── server.crt
└── server.key
```
<!--
On `$HOST1`:
-->
在 `$HOST1`:
```
$HOME
└── kubeadmcfg.yaml
---
/etc/kubernetes/pki
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
└── etcd
├── ca.crt
├── healthcheck-client.crt
├── healthcheck-client.key
├── peer.crt
├── peer.key
├── server.crt
└── server.key
```
<!--
On `$HOST2`
-->
在 `$HOST2`
```
$HOME
└── kubeadmcfg.yaml
---
/etc/kubernetes/pki
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
└── etcd
├── ca.crt
├── healthcheck-client.crt
├── healthcheck-client.key
├── peer.crt
├── peer.key
├── server.crt
└── server.key
```
<!--
1.Create the static pod manifests
Now that the certificates and configs are in place it's time to create the
manifests. On each host run the `kubeadm` command to generate a static manifest
for etcd.
-->
1. 创建静态 Pod 清单
既然证书和配置已经就绪,是时候去创建清单了。在每台主机上运行 `kubeadm` 命令来生成 etcd 使用的静态清单。
```sh
root@HOST0 $ kubeadm alpha phase etcd local --config=/tmp/${HOST0}/kubeadmcfg.yaml
root@HOST1 $ kubeadm alpha phase etcd local --config=/home/ubuntu/kubeadmcfg.yaml
root@HOST2 $ kubeadm alpha phase etcd local --config=/home/ubuntu/kubeadmcfg.yaml
```
<!--
1.Optional: Check the cluster health
-->
1. 可选:检查群集运行状况
```sh
docker run --rm -it \
--net host \
-v /etc/kubernetes:/etc/kubernetes quay.io/coreos/etcd:v3.2.18 etcdctl \
--cert-file /etc/kubernetes/pki/etcd/peer.crt \
--key-file /etc/kubernetes/pki/etcd/peer.key \
--ca-file /etc/kubernetes/pki/etcd/ca.crt \
--endpoints https://${HOST0}:2379 cluster-health
...
cluster is healthy
```
{{% /capture %}}
{{% capture whatsnext %}}
<!--
Once your have a working 3 member etcd cluster, you can continue setting up a
highly available control plane using the [external etcd method with
kubeadm](/docs/setup/independent/high-availability/).
-->
一旦拥有了一个正常工作的 3 成员的 etcd 集群,你就可以基于[使用 kubeadm 的外部 etcd 方法](/docs/setup/independent/high-availability/),继续部署一个高可用的控制平面。
{{% /capture %}}
+178
View File
@@ -0,0 +1,178 @@
---
reviewers:
- Random-Liu
title: 验证节点设置
---
<!--
---
reviewers:
- Random-Liu
title: Validate Node Setup
---
-->
{{< toc >}}
<!--
## Node Conformance Test
-->
## 节点合规性测试
<!--
*Node conformance test* is a containerized test framework that provides a system
verification and functionality test for a node. The test validates whether the
node meets the minimum requirements for Kubernetes; a node that passes the test
is qualified to join a Kubernetes cluster.
-->
*节点合规性测试* 是一种容器化测试框架,为节点提供系统验证和功能测试。该测试验证节点是否满足 Kubernetes 的最低要求;通过测试的节点有资格加入 Kubernetes 集群。
<!--
## Limitations
-->
## 限制
<!--
In Kubernetes version 1.5, node conformance test has the following limitations:
* Node conformance test only supports Docker as the container runtime.
-->
在 Kubernetes 1.5 版中,节点合规性测试具有以下限制:
* 节点合规性测试仅支持 Docker 作为容器运行时。
<!--
## Node Prerequisite
-->
## 节点先决条件
<!--
To run node conformance test, a node must satisfy the same prerequisites as a
standard Kubernetes node. At a minimum, the node should have the following
daemons installed:
* Container Runtime (Docker)
* Kubelet
-->
要运行节点合规性测试,节点必须满足与标准 Kubernetes 节点相同的先决条件。该节点至少应安装以下守护程序:
* 容器运行时(Docker
* Kubelet
<!--
## Running Node Conformance Test
-->
## 运行节点合规性测试
<!--
To run the node conformance test, perform the following steps:
1. Point your Kubelet to localhost `--api-servers="http://localhost:8080"`,
because the test framework starts a local master to test Kubelet. There are some
other Kubelet flags you may care:
* `--pod-cidr`: If you are using `kubenet`, you should specify an arbitrary CIDR to Kubelet, for example `--pod-cidr=10.180.0.0/24`.
* `--cloud-provider`: If you are using `--cloud-provider=gce`, you should
remove the flag to run the test.
2. Run the node conformance test with command:
```shell
# $CONFIG_DIR is the pod manifest path of your Kubelet.
# $LOG_DIR is the test output path.
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
k8s.gcr.io/node-test:0.2
```
-->
要运行节点合规性测试,请执行以下步骤:
1. 将您的 Kubelet 指向 localhost `--api-servers="http://localhost:8080"`,因为测试框架启动了一个本地主服务器来测试 Kubelet。您可能会关注其他一些 Kubelet 标记:
* `--pod-cidr` 如果你使用 `kubenet`,你应该为 Kubelet 指定一个任意的 CIDR,例如 `--pod-cidr=10.180.0.0/24`
* `--cloud-provider`: 如果您使用`--cloud-provider = gce`,则应删除该标志以运行测试。
2. 使用以下命令运行节点合规性测试:
```shell
# $CONFIG_DIR is the pod manifest path of your Kubelet.
# $LOG_DIR is the test output path.
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
k8s.gcr.io/node-test:0.2
```
<!--
## Running Node Conformance Test for Other Architectures
-->
## 为其他架构运行节点合规性测试
<!--
Kubernetes also provides node conformance test docker images for other
architectures:
-->
Kubernetes 还为其他架构提供节点合规性测试 docker 镜像:
Arch | Image |
--------|:-----------------:|
amd64 | node-test-amd64 |
arm | node-test-arm |
arm64 | node-test-arm64 |
<!--
## Running Selected Test
-->
## 运行选定的测试
<!--
To run specific tests, overwrite the environment variable `FOCUS` with the
regular expression of tests you want to run.
-->
要运行特定测试,请使用要运行的测试的正则表达式覆盖环境变量 `FOCUS`
```shell
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
-e FOCUS=MirrorPod \ # Only run MirrorPod test
k8s.gcr.io/node-test:0.2
```
<!--
To skip specific tests, overwrite the environment variable `SKIP` with the
regular expression of tests you want to skip.
-->
要跳过特定测试,请使用要跳过的测试的正则表达式覆盖环境变量 `SKIP`
```shell
sudo docker run -it --rm --privileged --net=host \
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
-e SKIP=MirrorPod \ # Run all conformance tests but skip MirrorPod test
k8s.gcr.io/node-test:0.2
```
<!--
Node conformance test is a containerized version of [node e2e test](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/e2e-node-tests.md).By default, it runs all conformance tests.
-->
节点合规性测试是[节点 e2e 测试](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/e2e-node-tests.md)的容器化版本。默认情况下,它会运行所有一致性测试。
<!--
Theoretically, you can run any node e2e test if you configure the container and
mount required volumes properly. But **it is strongly recommended to only run conformance test**, because it requires much more complex configuration to run non-conformance test.
-->
从理论上讲,如果配置容器并正确安装所需的卷,则可以运行任何节点 e2e 测试。 但**强烈建议仅运行一致性测试**,因为它需要更复杂的配置来运行不一致性测试。
<!--
## Caveats
-->
## 注意事项
<!--
* The test leaves some docker images on the node, including the node conformance
test image and images of containers used in the functionality
test.
* The test leaves dead containers on the node. These containers are created
during the functionality test.
-->
* 测试在节点上留下一些 docker 镜像,包括节点合规性测试镜像和功能测试中使用的容器镜像。
* 测试在节点上留下了死容器。 这些容器是在功能测试期间创建的。
@@ -0,0 +1,205 @@
<!--
title: Installing Kubernetes with Digital Rebar Provision (DRP) via KRIB
krib-version: 2.4
author: Rob Hirschfeld (zehicle)
-->
---
title: 通过 KRIB 安装带有 Digital Rebar ProvisionDRP)的 Kubernetes
krib-version: 2.4
author: Rob Hirschfeld (zehicle)
---
<!--
## Overview
-->
## 概览
<!--
This guide helps to install a Kubernetes cluster hosted on bare metal with [Digital Rebar Provision](https://github.com/digitalrebar/provision) using only its Content packages and *kubeadm*.
-->
本指南帮助使用 [Digital Rebar Provision](https://github.com/digitalrebar/provision) 安装在裸机上托管的 Kubernetes 集群,且仅使用其内容包和 *kubeadm*
<!--
Digital Rebar Provision (DRP) is an integrated Golang DHCP, bare metal provisioning (PXE/iPXE) and workflow automation platform. While [DRP can be used to invoke](https://provision.readthedocs.io/en/tip/doc/integrations/ansible.html) [kubespray](../kubespray), it also offers a self-contained Kubernetes installation known as [KRIB (Kubernetes Rebar Integrated Bootstrap)](https://github.com/digitalrebar/provision-content/tree/master/krib).
-->
Digital Rebar ProvisionDRP)是一个集成的 Golang DHCP、裸机配置(PXE/iPXE)和工作流自动化平台。 虽然 [DRP 可用于调用](https://provision.readthedocs.io/en/tip/doc/integrations/ansible.html) [kubespray](../kubespray),但它还提供了一个独立的 Kubernetes 安装,称为 [KRIBKubernetes Rebar Integrated Bootstrap](https://github.com/digitalrebar/provision-content/tree/master/krib)。
{{< note >}}
<!--
KRIB is not a _stand-alone_ installer: Digital Rebar templates drive a standard *[kubeadm](/docs/admin/kubeadm/)* configuration that manages the Kubernetes installation with the [Digital Rebar cluster pattern](https://provision.readthedocs.io/en/tip/doc/arch/cluster.html#rs-cluster-pattern) to elect leaders _without external supervision_.
-->
KRIB 不是一个 _独立的_ 安装程序:Digital Rebar 模板驱动一个标准的 *[kubeadm](/docs/admin/kubeadm/)* 配置,使用 [Digital Rebar 集群模式](https://provision.readthedocs.io/en/tip/doc/arch/cluster.html#rs-cluster-pattern) 管理 Kubernetes 安装,_在没有外部监督的情况下_ 选举领导者。
{{< /note >}}
<!--
KRIB features:
* zero-touch, self-configuring cluster without pre-configuration or inventory
* very fast, no-ssh required automation
* bare metal, on-premises focused platform
* highly available cluster options (including splitting etcd from the controllers)
* dynamic generation of a TLS infrastructure
* composable attributes and automatic detection of hardware by profile
* options for persistent, immutable and image-based deployments
* support for Ubuntu 18.04, CentOS/RHEL 7 and others
-->
KRIB特点:
* 零接触,无需预配置或组件目录的自配置集群
* 非常快,无需 ssh 的自动化
* 关注裸机和本地部署的平台
* 高度可用的集群选项(包括将 etcd 从控制节点分离)
* 动态生成 TLS 基础架构
* 可组合属性和按配置文件自动检测硬件
* 支持基于持久存储、不可变存储和映像的部署
* 支持 Ubuntu 18.04、CentOS/RHEL 7 等
<!--
## Creating a cluster
-->
## 创建集群
<!--
Review [Digital Rebar documentation](https://https://provision.readthedocs.io/en/tip/README.html) for details about installing the platform.
-->
有关安装该平台的详细信息,请查看 [Digital Rebar 文档](https://https://provision.readthedocs.io/en/tip/README.html)。
<!--
The Digital Rebar Provision Golang binary should be installed on a Linux-like system with 16 GB of RAM or larger (Packet.net Tiny and Rasberry Pi are also acceptable).
-->
Digital Rebar Provision Golang 二进制文件应该安装在类似 Linux 的系统上,内存为 16 GB 或更大(Packet.net Tiny 和 Rasberry Pi 也可以接受)。
<!--
### (1/5) Discover servers
-->
### (1/5) 发现服务器
<!--
Following the [Digital Rebar installation](https://provision.readthedocs.io/en/tip/doc/quickstart.html), allow one or more servers to boot through the _Sledgehammer_ discovery process to register with the API. This will automatically install the Digital Rebar runner and to allow for next steps.
-->
按 [Digital Rebar 安装](https://provision.readthedocs.io/en/tip/doc/quickstart.html) 文档所给的步骤执行安装,允许一个或多个服务器通过 _Sledgehammer_ 发现过程引导以向 API 注册。 这将自动安装 Digital Rebar runner 并允许后续步骤。
<!--
### (2/5) Install KRIB Content and Certificate Plugin
-->
### (2/5) 安装 KRIB 内容和证书插件
<!--
Upload the KRIB Content bundle (or build from [source](https://github.com/digitalrebar/provision-content/tree/master/krib)) and the Cert Plugin for your DRP platform (e.g.: [amd64 Linux v2.4.0](https://s3-us-west-2.amazonaws.com/rebar-catalog/certs/v2.4.0-0-02301d35f9f664d6c81d904c92a9c81d3fd41d2c/amd64/linux/certs)). Both are freely available via the [RackN UX](https://portal.rackn.io).
-->
上传与您的 DRP 平台匹配的 KRIB 软件包(或从[源代码](https://github.com/digitalrebar/provision-content/tree/master/krib)构建)和 Cert 插件(例如:[amd64 Linux v2.4.0](https://s3-us-west-2.amazonaws.com/rebar-catalog/certs/v2.4.0-0-02301d35f9f664d6c81d904c92a9c81d3fd41d2c/amd64/linux/certs))。两者都可以通过 [RackN UX](https://portal.rackn.io) 免费获得。
<!--
### (3/5) Start your cluster deployment
-->
### (3/5) 启动集群部署
<!--
KRIB documentation is dynamically generated from the source and will be more up to date than this guide.
-->
{{< note >}}
KRIB 文档是从源代码动态生成的,并且将比本指南更新。
{{< /note >}}
<!--
Following the [KRIB documentation](https://provision.readthedocs.io/en/tip/doc/content-packages/krib.html), create a Profile for your cluster and assign your target servers into the cluster Profile. The Profile must set `krib\cluster-name` and `etcd\cluster-name` Params to be the name of the Profile. Cluster configuration choices can be made by adding additional Params to the Profile; however, safe defaults are provided for all Params.
-->
遵循 [KRIB 文档](https://provision.readthedocs.io/en/tip/doc/content-packages/krib.html),为您的集群创建配置文件,并将目标服务器分配到集群配置文件中。 配置文件必须将 `krib\cluster-name``etcd\cluster-name` 参数(Params)设置为配置文件的名称。 可以通过向配置文件添加其他参数来进行集群配置选择; 不过所有参数都有安全的默认值。
<!--
Once all target servers are assigned to the cluster Profile, start a KRIB installation Workflow by assigning one of the included Workflows to all cluster servers. For example, selecting `krib-live-cluster` will perform an immutable deployment into the Sledgehammer discovery operating system. You may use one of the pre-created read-only Workflows or choose to build your own custom variation.
-->
将所有目标服务器分配给集群配置文件后,通过将所包含的工作流程之一分配给所有集群服务器来启动 KRIB 安装工作流程。 例如,选择 `krib-live-cluster` 将在 Sledgehammer 所发现的操作系统中执行不可变的部署。您可以使用其中一个预先创建的只读工作流,也可以选择构建自己的自定义变体。
<!--
For basic installs, no further action is required. Advanced users may choose to assign the controllers, etcd servers or other configuration values in the relevant Params.
-->
对于一般安装,无需进一步操作。高级用户可以选择在相关参数中设定控制器、etcd 服务器或其他配置值。
<!--
### (4/5) Monitor your cluster deployment
-->
### (4/5) 监控集群部署
<!--
Digital Rebar Provision provides detailed logging and live updates during the installation process. Workflow events are available via a websocket connection or monitoring the Jobs list.
During the installation, KRIB writes cluster configuration data back into the cluster Profile.
-->
Digital Rebar Provision 在安装过程中提供详细的日志记录和实时更新。通过 websocket 连接或监视作业列表可以获得工作流事件。
在安装过程中,KRIB 将集群配置数据写回集群配置文件。
<!--
### (5/5) Access your cluster
-->
### (5/5) 访问您的集群
<!--
The cluster is available for access via *kubectl* once the `krib/cluster-admin-conf` Param has been set. This Param contains the `kubeconfig` information necessary to access the cluster.
For example, if you named the cluster Profile `krib` then the following commands would allow you to connect to the installed cluster from your local terminal.
-->
一旦设置了 `krib/cluster-admin-conf` 参数,就可以通过 *kubectl* 访问集群。 该参数包含访问集群所需的 `kubeconfig` 信息。
例如,如果您将集群配置文件命名为 `krib`,则以下命令将允许您从本地终端连接到已安装的集群。
::
drpcli profiles get krib params krib/cluster-admin-conf > admin.conf
export KUBECONFIG=admin.conf
kubectl get nodes
<!--
The installation continues after the `krib/cluster-admin-conf` is set to install the Kubernetes UI and Helm. You may interact with the cluster as soon as the `admin.conf` file is available.
-->
`krib/cluster-admin-conf` 设置为安装 Kubernetes UI 和 Helm 后,安装继续。只要 `admin.conf` 文件可用,您就可以与集群进行交互。
<!--
## Cluster operations
-->
## 集群操作
<!--
KRIB provides additional Workflows to manage your cluster. Please see the [KRIB documentation](https://provision.readthedocs.io/en/tip/doc/content-packages/krib.html) for an updated list of advanced cluster operations.
-->
KRIB 提供额外的工作流来管理您的集群。有关高级集群操作的更新列表,请参阅 [KRIB 文档](https://provision.readthedocs.io/en/tip/doc/content-packages/krib.html)。
<!--
### Scale your cluster
-->
### 扩展您的集群
<!--
You can add servers into your cluster by adding the cluster Profile to the server and running the appropriate Workflow.
-->
您可以通过将集群配置文件添加到服务器并运行相应的工作流来将服务器添加到集群中。
<!--
### Cleanup your cluster (for developers)
-->
### 清理集群(面向开发人员)
<!--
You can reset your cluster and wipe out all configuration and TLS certificates using the `krib-reset-cluster` Workflow on any of the servers in the cluster.
-->
您可以使用集群中任何服务器上的 `krib-reset-cluster` 工作流重置您的集群并清除所有配置和 TLS 证书。
<!--
When running the reset Workflow, be sure not to accidentally target your production cluster!
-->
{{< caution >}}
运行重置工作流程时,请小心不要指向生产集群!
{{< /caution >}}
<!--
## Feedback
-->
## 反馈
<!--
* Slack Channel: [#community](https://rackn.slack.com/messages/community/)
* [GitHub Issues](https://github.com/digital/provision/issues)
-->
* Slack Channel[#community](https://rackn.slack.com/messages/community/)
* [GitHub 问题](https://github.com/digital/provision/issues)
@@ -0,0 +1,11 @@
---
title: 本地部署的虚拟机(On-Premises VMs
weight: 60
---
<!--
---
title: On-Premises VMs
weight: 60
---
-->
@@ -0,0 +1,213 @@
---
reviewers:
- thockin
title: Cloudstack
content_template: templates/concept
---
<!--
---
reviewers:
- thockin
title: Cloudstack
content_template: templates/concept
---
-->
{{% capture overview %}}
<!--
[CloudStack](https://cloudstack.apache.org/) is a software to build public and private clouds based on hardware virtualization principles (traditional IaaS).
To deploy Kubernetes on CloudStack there are several possibilities depending on the Cloud being used and what images are made available.
CloudStack also has a vagrant plugin available, hence Vagrant could be used to deploy Kubernetes either using the existing shell provisioner or using new Salt based recipes.
-->
[CloudStack](https://cloudstack.apache.org/) 是一种基于硬件虚拟化原则(传统 IaaS 概念)用来构建公有云和私有云的软件。要在 CloudStack 上部署 Kubernetes
有几种可能性取决于正在使用的云以及可用的镜像。CloudStack 还提供了一个 vagrant 插件,因此 vagrant 可以使用现有的 shell 创建程序,或新的基于 Salt 的方法来部署 Kubernetes。
<!--
[CoreOS](http://coreos.com) templates for CloudStack are built [nightly](http://stable.release.core-os.net/amd64-usr/current/).
CloudStack operators need to [register](http://docs.cloudstack.apache.org/projects/cloudstack-administration/en/latest/templates.html) this template in their cloud before proceeding with these Kubernetes deployment instructions.
-->
CloudStack 的 [CoreOS](http://coreos.com) 模板会[每夜](http://stable.release.core-os.net/amd64-usr/current/)构建。
CloudStack operators 需要在他们的云中 [注册](http://docs.cloudstack.apache.org/projects/cloudstack-administration/en/latest/templates.html)这个模板,然后才能继续执行 Kubernetes 部署的命令。
<!--
This guide uses a single [Ansible playbook](https://github.com/apachecloudstack/k8s), which is completely automated and can deploy Kubernetes on a CloudStack based Cloud using CoreOS images. The playbook, creates an ssh key pair, creates a security group and associated rules and finally starts coreOS instances configured via cloud-init.
-->
本指南只用到一个 [Ansible playbook](https://github.com/apachecloudstack/k8s),完全自动化,可以使用 CoreOS 镜像在基于 CloudStack 的云上部署 Kubernetes。playbook 会创建 ssh 密钥对、创建安全组和相关规则,最后启动通过 cloud-init 配置的 CoreOS 实例。
{{% /capture %}}
{{% capture body %}}
<!--
## Prerequisites
-->
## 先决条件
```shell
sudo apt-get install -y python-pip libssl-dev
sudo pip install cs
sudo pip install sshpubkeys
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
```
<!--
On CloudStack server you also have to install libselinux-python :
-->
在 CloudStack 服务器上,您还必须安装 libselinux-python
```shell
yum install libselinux-python
```
<!--
[_cs_](https://github.com/exoscale/cs) is a python module for the CloudStack API.
-->
[_cs_](https://github.com/exoscale/cs) 是 CloudStack API 的 python 模块。
<!--
Set your CloudStack endpoint, API keys and HTTP method used.
-->
设置所使用的 CloudStack 端点、API 键和 HTTP 方法。
<!--
You can define them as environment variables: `CLOUDSTACK_ENDPOINT`, `CLOUDSTACK_KEY`, `CLOUDSTACK_SECRET` and `CLOUDSTACK_METHOD`.
-->
你可以将它们定义为环境变量:`CLOUDSTACK_ENDPOINT``CLOUDSTACK_KEY``CLOUDSTACK_SECRET``CLOUDSTACK_METHOD`
<!--
Or create a `~/.cloudstack.ini` file:
-->
或者创建一个 `~/.cloudstack.ini` 文件:
```none
[cloudstack]
endpoint = <your cloudstack api endpoint>
key = <your api access key>
secret = <your api secret key>
method = post
```
<!--
We need to use the http POST method to pass the _large_ userdata to the coreOS instances.
-->
我们需要使用 http POST 方法将 _large_ userdata 传递给 coreOS 实例。
<!--
### Clone the playbook
-->
### 复制 playbook
```shell
git clone https://github.com/apachecloudstack/k8s
cd kubernetes-cloudstack
```
<!--
### Create a Kubernetes cluster
-->
### 创建一个 Kubernetes 集群
<!--
You simply need to run the playbook.
-->
你只需要运行 playbook 即可。
```shell
ansible-playbook k8s.yml
```
<!--
Some variables can be edited in the `k8s.yml` file.
-->
可以在 `k8s.yml` 文件中编辑某些变量。
```none
vars:
ssh_key: k8s
k8s_num_nodes: 2
k8s_security_group_name: k8s
k8s_node_prefix: k8s2
k8s_template: <templatename>
k8s_instance_type: <serviceofferingname>
```
<!--
This will start a Kubernetes master node and a number of compute nodes (by default 2).
The `instance_type` and `template` are specific, edit them to specify your CloudStack cloud specific template and instance type (i.e. service offering).
-->
这将启动一个 Kubernetes 主节点和一些计算节点(默认情况下为 2)。
`instance_type``模板`是特定的,编辑它们可以指定特定于 CloudStack 云的模板和实例类型(即服务提供)。
<!--
Check the tasks and templates in `roles/k8s` if you want to modify anything.
-->
如果您想修改任何内容,请检查 `roles/k8s` 中的任务和模板。
<!--
Once the playbook as finished, it will print out the IP of the Kubernetes master:
-->
一旦副本完成,它将打印出 Kubernetes 主节点的IP:
```none
TASK: [k8s | debug msg='k8s master IP is {{ k8s_master.default_ip }}'] ********
```
<!--
SSH to it using the key that was created and using the _core_ user.
-->
使用创建的密钥和 _core_ 用户 SSH 到它。
```shell
ssh -i ~/.ssh/id_rsa_k8s core@<master IP>
```
<!--
And you can list the machines in your cluster:
-->
您可以列出群集中的计算机:
```shell
fleetctl list-machines
```
```none
MACHINE IP METADATA
a017c422... <node #1 IP> role=node
ad13bf84... <master IP> role=master
e9af8293... <node #2 IP> role=node
```
<!--
## Support Level
-->
## 支持级别
<!--
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
CloudStack | Ansible | CoreOS | flannel | [docs](/docs/setup/on-premises-vm/cloudstack/) | | Community ([@Guiques](https://github.com/ltupin/))
-->
IaaS 供应商 | 配置管理 | 操作系统 | 网络 | 文档 | 合规 | 支持级别
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
CloudStack | Ansible | CoreOS | flannel | [文档](/docs/setup/on-premises-vm/cloudstack/) | | 社区 ([@Guiques](https://github.com/ltupin/))
<!--
For support level information on all solutions, see the [Table of solutions](/docs/setup/pick-right-solution/#table-of-solutions) chart.
-->
有关所有解决方案的支持级别信息,请查看[解决方案](/docs/setup/pick-right-solution/# Table -of-solutions)图表。
{{% /capture %}}
@@ -0,0 +1,48 @@
---
title: 在 DC/OS 上运行 Kubernetes
content_template: templates/concept
---
<!--
---
reviewers:
- smugcloud
title: Kubernetes on DC/OS
content_template: templates/concept
---
-->
{{% capture overview %}}
<!--
Mesosphere provides an easy option to provision Kubernetes onto [DC/OS](https://mesosphere.com/product/), offering:
-->
Mesosphere 提供了一个将 Kubernetes 加入 [DC/OS](https://mesosphere.com/product/) 的简易选项,提供:
<!--
* Pure upstream Kubernetes
* Single-click cluster provisioning
* Highly available and secure by default
* Kubernetes running alongside fast-data platforms (e.g. Akka, Cassandra, Kafka, Spark)
-->
* 纯粹的上游 Kubernetes
* 一键集群供应
* 默认的高可用和安全保障
* Kubernetes 与快速数据处理平台一起运行(例如 Akka、Cassandra、Kafka、Spark
{{% /capture %}}
{{% capture body %}}
<!--
## Official Mesosphere Guide
-->
## Mesosphere 官方指南
<!--
The canonical source of getting started on DC/OS is located in the [quickstart repo](https://github.com/mesosphere/dcos-kubernetes-quickstart).
-->
开始使用 DC/OS 的权威指南位于 [quickstart repo](https://github.com/mesosphere/dcos-kubernetes-quickstart)。
{{% /capture %}}
+11
View File
@@ -0,0 +1,11 @@
---
title: "下载 Kubernetes"
weight: 20
---
<!--
---
title: "Downloading Kubernetes"
weight: 20
---
-->
@@ -0,0 +1,53 @@
---
title: 从源代码构建
---
<!--
---
reviewers:
- david-mcmahon
- jbeda
title: Building from Source
---
-->
您可以从源代码构建发行包,也可以下载预构建的发行包。
<!--
You can either build a release from source or download a pre-built release.
-->
如果您不打算开发 Kubernetes 本身,我们建议您使用当前发行包的预构建版本,该版本可以在[发行说明](/docs/setup/release/notes/)中找到。
<!--
If you do not plan on developing Kubernetes itself, we suggest using a pre-built version of the current release, which can be found in the [Release Notes](/docs/setup/release/notes/).
-->
Kubernetes 源代码可以从 [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) 仓库下载。
<!--
The Kubernetes source code can be downloaded from the [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repo.
-->
## 从源代码构建
<!--
## Building from source
-->
如果您只是简单地想从源代码构建一个发行包,则不需要设置完整的 golang 环境,因为所有构建过程都发生在 Docker 容器中。
<!--
If you are simply building a release from source there is no need to set up a full golang environment as all building happens in a Docker container.
-->
构建一个发行包很简单。
<!--
Building a release is simple.
-->
```shell
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
make release
```
有关发布过程的更多细节,请参见 kubernetes/kubernetes [`build`](http://releases.k8s.io/{{< param "githubbranch" >}}/build/) 目录。
<!--
For more details on the release process see the kubernetes/kubernetes [`build`](http://releases.k8s.io/{{< param "githubbranch" >}}/build/) directory.
-->
+12 -33
View File
@@ -148,52 +148,31 @@ The following enumerates the set of defined key/value pairs that are supported t
<!--
Key | Value
`api_servers` | (Optional) The IP address / host name where a kubelet can get read-only access to kube-apiserver
`cbr-cidr` | (Optional) The minion IP address range used for the docker container bridge.
`cloud` | (Optional) Which IaaS platform is used to host Kubernetes, *gce*, *azure*, *aws*, *vagrant*
`etcd_servers` | (Optional) Comma-delimited list of IP addresses the kube-apiserver and kubelet use to reach etcd. Uses the IP of the first machine in the kubernetes_master role, or 127.0.0.1 on GCE.
`hostnamef` | (Optional) The full host name of the machine, i.e. uname -n
`node_ip` | (Optional) The IP address to use to address this node
`hostname_override` | (Optional) Mapped to the kubelet hostname-override
`network_mode` | (Optional) Networking model to use among nodes: *openvswitch*
`networkInterfaceName` | (Optional) Networking interface to use to bind addresses, default value *eth0*
`publicAddressOverride` | (Optional) The IP address the kube-apiserver should use to bind against for external read-only access
`roles` | (Required) 1. `kubernetes-master` means this machine is the master in the Kubernetes cluster. 2. `kubernetes-pool` means this machine is a kubernetes-node. Depending on the role, the Salt scripts will provision different resources on the machine.
-->
键 | 值
-----------------------------------|----------------------------------------------------------------
<!--
`api_servers` | (Optional) The IP address / host name where a kubelet can get read-only access to kube-apiserver
-->
`api_servers` | (可选) IP 地址/主机名 kubelet 用其访问 kube-apiserver
<!--
`cbr-cidr` | (Optional) The minion IP address range used for the docker container bridge.
-->
`cbr-cidr` | (可选) docker 容器网桥分配给 minion 节点的 IP 地址范围
<!--
`cloud` | (Optional) Which IaaS platform is used to host Kubernetes, *gce*, *azure*, *aws*, *vagrant*
-->
`cloud` | (可选) 托管 Kubernetes 的 IaaS 平台, *gce*, *azure*, *aws*, *vagrant*
<!--
`etcd_servers` | (Optional) Comma-delimited list of IP addresses the kube-apiserver and kubelet use to reach etcd. Uses the IP of the first machine in the kubernetes_master role, or 127.0.0.1 on GCE.
-->
`etcd_servers` | (可选) 以逗号分隔的 IP 地址列表,kube-apiserver 和 kubelet 使用其访问 etcd。kubernetes_master 角色的节点使用第一个机器的 IP ,在 GCE 环境上使用 127.0.0.1。
<!--
`hostnamef` | (Optional) The full host name of the machine, i.e. uname -n
-->
`hostnamef` | (可选) 机器的完整主机名,即:uname -n
<!--
`node_ip` | (Optional) The IP address to use to address this node
-->
`node_ip` | (可选)用于定位本节点的 IP 地址
<!--
`hostname_override` | (Optional) Mapped to the kubelet hostname-override
-->
`hostname_override` | (可选)对应 kubelet 的 hostname-override 参数
<!--
`network_mode` | (Optional) Networking model to use among nodes: *openvswitch*
-->
`network_mode` | (可选)节点间使用的网络模型:*openvswitch*
<!--
`networkInterfaceName` | (Optional) Networking interface to use to bind addresses, default value *eth0*
-->
`networkInterfaceName` | (可选)用于绑定地址的网络接口,默认值 *eth0*
<!--
`publicAddressOverride` | (Optional) The IP address the kube-apiserver should use to bind against for external read-only access
-->
`publicAddressOverride` | (可选)kube-apiserver 用于外部只读访问而绑定的IP地址
<!--
`roles` | (Required) 1. `kubernetes-master` means this machine is the master in the Kubernetes cluster. 2. `kubernetes-pool` means this machine is a kubernetes-node. Depending on the role, the Salt scripts will provision different resources on the machine.
-->
`roles` | (必选)1、`kubernetes-master` 表示本节点是 Kubernetes 集群的 master。2、`kubernetes-pool` 表示本节点是一个 kubernetes-node。根据角色,Salt 脚本会在机器上提供不同的资源
<!--
+11
View File
@@ -0,0 +1,11 @@
---
title: 一站式云解决方案
weight: 40
---
<!--
---
title: Turnkey Cloud Solutions
weight: 40
---
-->
@@ -0,0 +1,53 @@
---
title: 在阿里云上运行 Kubernetes
---
<!--
---
reviewers:
- colemickens
- brendandburns
title: Running Kubernetes on Alibaba Cloud
---
-->
<!--
## Alibaba Cloud Container Service
-->
## 阿里云容器服务
<!--
The [Alibaba Cloud Container Service](https://www.aliyun.com/product/containerservice) lets you run and manage Docker applications on a cluster of Alibaba Cloud ECS instances. It supports the popular open source container orchestrators: Docker Swarm and Kubernetes.
-->
[阿里云容器服务](https://www.aliyun.com/product/containerservice)允许您在阿里云 ECS 实例集群上运行和管理 Docker 应用程序。
它支持流行的开源容器编排框架:Docker Swarm 和 Kubernetes。
<!--
To simplify cluster deployment and management, use [Kubernetes Support for Alibaba Cloud Container Service](https://www.aliyun.com/solution/kubernetes/).
-->
为了简化集群部署和管理,您可以使用[阿里云容器服务的 Kubernetes 支持](https://www.aliyun.com/solution/kubernetes/)。
<!--
You can get started quickly by following the [Kubernetes walk-through](https://help.aliyun.com/document_detail/53751.html), and there are some [tutorials for Kubernetes Support on Alibaba Cloud](https://yq.aliyun.com/teams/11/type_blog-cid_200-page_1) in Chinese.
-->
您可以通过 [Kubernetes 演练](https://help.aliyun.com/document_detail/53751.html) 快速入门,
这里还有一些中文版的[阿里云 Kubernetes 支持教程](https://yq.aliyun.com/teams/11/type_blog-cid_200-page_1)。
<!--
To use custom binaries or open source Kubernetes, follow the instructions below.
-->
要使用自定义二进制文件或开源 Kubernetes,请遵循下面的说明。
<!--
## Custom Deployments
-->
## 自定义部署
<!--
The source code for [Kubernetes with Alibaba Cloud provider implementation](https://github.com/AliyunContainerService/kubernetes) is open source and available on GitHub.
-->
[阿里云提供的 Kubernetes 实现](https://github.com/AliyunContainerService/kubernetes)是开源的,您可以在 GitHub 上找到。
<!--
For more information, see "[Quick deployment of Kubernetes - VPC environment on Alibaba Cloud](https://www.alibabacloud.com/forum/read-830)" in English and [Chinese](https://yq.aliyun.com/articles/66474).
-->
更多信息,请参见英文版“[快速部署 Kubernetes - 阿里云 VPC 环境](https://www.alibabacloud.com/forum/read-830)”以及[中文版](https://yq.aliyun.com/articles/66474)。
+191
View File
@@ -0,0 +1,191 @@
---
reviewers:
- justinsb
- clove
title: 在 AWS EC2 上运行 Kubernetes
content_template: templates/task
---
<!--
---
reviewers:
- justinsb
- clove
title: Running Kubernetes on AWS EC2
content_template: templates/task
---
-->
{{% capture overview %}}
<!--
This page describes how to install a Kubernetes cluster on AWS.
-->
本页介绍如何在 AWS 上安装 Kubernetes 集群。
{{% /capture %}}
{{% capture prerequisites %}}
<!--
To create a Kubernetes cluster on AWS, you will need an Access Key ID and a Secret Access Key from AWS.
-->
要在 AWS 上创建 Kubernetes 集群,您需要一个访问密钥 ID 和一个来自 AWS 的 Secret 访问密钥。
<!--
### Supported Production Grade Tools
-->
### 支持的生产等级工具
<!--
* [conjure-up](/docs/getting-started-guides/ubuntu/) is an open-source installer for Kubernetes that creates Kubernetes clusters with native AWS integrations on Ubuntu.
* [Kubernetes Operations](https://github.com/kubernetes/kops) - Production Grade K8s Installation, Upgrades, and Management. Supports running Debian, Ubuntu, CentOS, and RHEL in AWS.
* [CoreOS Tectonic](https://coreos.com/tectonic/) includes the open-source [Tectonic Installer](https://github.com/coreos/tectonic-installer) that creates Kubernetes clusters with Container Linux nodes on AWS.
* CoreOS originated and the Kubernetes Incubator maintains [a CLI tool, kube-aws](https://github.com/kubernetes-incubator/kube-aws), that creates and manages Kubernetes clusters with [Container Linux](https://coreos.com/why/) nodes, using AWS tools: EC2, CloudFormation and Autoscaling.
-->
* [conjure-up](/docs/getting-started-guides/ubuntu/) 是 Kubernetes 的一个开源安装程序,可以在 Ubuntu 上创建本机 AWS 集成的 Kubernetes 集群。
\
* [Kubernetes 操作](https://github.com/kubernetes/kops) - 生产级 K8s 安装、升级和管理。支持在 AWS 中运行 Debian、Ubuntu、CentOS 和 RHEL。
* [CoreOS 结构](https://coreos.com/tectonic/)包括开源[结构](https://github.com/coreos/tectonic-installer),它在 AWS 上创建带有 Linux 容器节点的 Kubernetes 集群。
* CoreOS 起源于 Kubernetes 孵化器,Kubernetes 孵化器维护 [一个 CLI 工具 kube-aws](https://github.com/kubernetes-incubator/kube-aws),它使用 AWS 工具:EC2、CloudFormation 和 Autoscaling 创建和管理 [Linux 容器](https://coreos.com/why/)节点的 Kubernetes 集群。
{{% /capture %}}
{{% capture steps %}}
<!--
## Getting started with your cluster
-->
## 开始您的集群
<!--
### Command line administration tool: kubectl
-->
### 命令行管理工具:kubectl
<!--
The cluster startup script will leave you with a `kubernetes` directory on your workstation.
Alternately, you can download the latest Kubernetes release from [this page](https://github.com/kubernetes/kubernetes/releases).
-->
集群启动脚本将在您的工作站上留下一个 `kubernetes` 目录。
或者,您可以从[这个页面](https://github.com/kubernetes/kubernetes/releases)下载最新的 Kubernetes 版本。
<!--
Next, add the appropriate binary folder to your `PATH` to access kubectl:
-->
接下来,将相应的二进制文件夹添加到您的 `PATH` 中访问 kubectl
```shell
# macOS
export PATH=<path/to/kubernetes-directory>/platforms/darwin/amd64:$PATH
# Linux
export PATH=<path/to/kubernetes-directory>/platforms/linux/amd64:$PATH
```
<!--
An up-to-date documentation page for this tool is available here: [kubectl manual](/docs/user-guide/kubectl/)
-->
这个工具的最新文档页面可以在这里找到:[kubectl 手册](/docs/user-guide/kubectl/)
<!--
By default, `kubectl` will use the `kubeconfig` file generated during the cluster startup for authenticating against the API.
For more information, please read [kubeconfig files](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
-->
默认情况下,`kubectl` 将使用集群启动期间生成的 `kubeconfig` 文件对 API 进行身份验证。
更多信息,请阅读 [kubeconfig 文件](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
<!--
### Examples
-->
### 例子
<!--
See [a simple nginx example](/docs/tasks/run-application/run-stateless-application-deployment/) to try out your new cluster.
-->
查看一个[简单的 nginx 示例](/docs/tasks/run-application/run-stateless-application-deployment/)来试用您的新集群。
<!--
The "Guestbook" application is another popular example to get started with Kubernetes: [guestbook example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/guestbook/)
-->
"留言板"应用程序是 Kubernetes 的另一个流行示例:[留言板示例](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/guestbook/)
<!--
For more complete applications, please look in the [examples directory](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/)
-->
有关更完整的应用程序,请查看[示例目录](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/)
<!--
## Scaling the cluster
-->
## 扩展集群
<!--
Adding and removing nodes through `kubectl` is not supported. You can still scale the amount of nodes manually through adjustments of the 'Desired' and 'Max' properties within the [Auto Scaling Group](http://docs.aws.amazon.com/autoscaling/latest/userguide/as-manual-scaling.html), which was created during the installation.
-->
`kubectl` 不支持添加和删除节点。您仍然可以通过[自动扩缩功能组](http://docs.aws.amazon.com/autoscaling/latest/userguide/as-manual-scale.html) 中的 `Desired``Max` 属性手动调整节点的数量,该属性是在安装过程中创建的。
<!--
## Tearing down the cluster
-->
## 拆除集群
<!--
Make sure the environment variables you used to provision your cluster are still exported, then call the following script inside the
`kubernetes` directory:
-->
确保用于提供集群的环境变量已经导出,然后在 `kubernetes` 目录中调用以下脚本:
```shell
cluster/kube-down.sh
```
<!--
## Support Level
-->
## 支持级别
<!--
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
-->
IaaS 供应商 | 配置管理 | 操作系统 | 网络 | 文档 | 合规 | 支持级别
-------------------- | ------------ | ------------- | ---------- | --------------------------------------------- | ---------| ----------------------------
AWS | kops | Debian | k8s (VPC) | [文档](https://github.com/kubernetes/kops) | | 社区 ([@justinsb](https://github.com/justinsb))
AWS | CoreOS | CoreOS | flannel | [文档](/docs/getting-started-guides/aws) | | 社区
AWS | Juju | Ubuntu | flannel, calico, canal | [文档](/docs/getting-started-guides/ubuntu) | 100% | 商业、社区
<!--
For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart.
-->
有关所有解决方案的支持级别信息,请查看[解决方案表](/docs/getting-started-guides/#table-of-solutions)。
<!--
## Further reading
-->
## 进一步阅读
<!--
Please see the [Kubernetes docs](/docs/) for more details on administering
and using a Kubernetes cluster.
-->
有关管理和使用 Kubernetes 集群的详细信息,请参阅 [Kubernetes 文档](/docs/)。
{{% /capture %}}
+87
View File
@@ -0,0 +1,87 @@
---
reviewers:
- colemickens
- brendandburns
title: 在 Azure 上运行 Kubernetes
---
<!--
---
reviewers:
- colemickens
- brendandburns
title: Running Kubernetes on Azure
---
-->
<!--
## Azure Kubernetes Service (AKS)
-->
## Azure Kubernetes Service (AKS)
<!--
The [Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service/) offers simple
deployments for Kubernetes clusters.
-->
[Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service/) 为 Kubernetes 集群提供简单的部署。
<!--
For an example of deploying a Kubernetes cluster onto Azure via the Azure Kubernetes Service:
-->
通过 Azure Kubernetes Service 将 Kubernetes 集群部署到 Azure 的示例:
<!--
**[Microsoft Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes)**
-->
**[Microsoft Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes)**
<!--
## Custom Deployments: ACS-Engine
-->
## 自定义部署:ACS-Engine
<!--
The core of the Azure Kubernetes Service is **open source** and available on GitHub for the community
to use and contribute to: **[ACS-Engine](https://github.com/Azure/acs-engine)**.
-->
Azure Kubernetes 服务的核心是 **开源的** ,可在 GitHub 上获取,供社区使用和贡献:**[ACS-Engine](https://github.com/Azure/acs-engine)**。
<!--
ACS-Engine is a good choice if you need to make customizations to the deployment beyond what the Azure Kubernetes
Service officially supports. These customizations include deploying into existing virtual networks, utilizing multiple
agent pools, and more. Some community contributions to ACS-Engine may even become features of the Azure Kubernetes Service.
-->
如果您需要对 Azure Kubernetes Service 官方支持的部署进行自定义,ACS-Engine 是一个不错的选择。 这些自定义包括部署到现有网络虚拟,使用多个代理池等。一些社区对 ACS-Engine 的贡献甚至可能成为 Azure Kubernetes Service 的功能。
<!--
The input to ACS-Engine is similar to the ARM template syntax used to deploy a cluster directly with the Azure Kubernetes Service.
The resulting output is an Azure Resource Manager Template that can then be checked into source control and can then be used
to deploy Kubernetes clusters into Azure.
-->
导入 ACS-Engine 类似于用于直接使用 Azure Kubernetes Service 部署集群的 ARM 模板语法。
结果导出是 Azure 资源管理器模板,然后可以将其检入源控件,然后可以用于将 Kubernetes 集群部署到 Azure 中。
<!--
You can get started quickly by following the **[ACS-Engine Kubernetes Walkthrough](https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md)**.
-->
您可以按照 **[ACS-Engine Kubernetes 演练](https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md)** 快速入门。
<!--
## CoreOS Tectonic for Azure
-->
## Azure 上使用 CoreOS Tectonic
<!--
The CoreOS Tectonic Installer for Azure is **open source** and available on GitHub for the community to use and contribute to: **[Tectonic Installer](https://github.com/coreos/tectonic-installer)**.
-->
在 Azure 上安装 CoreOS Tectonic 的程序是 **开源的** ,可在 GitHub 上获取,供社区使用和贡献:**[Tectonic Installer](https://github.com/coreos/tectonic-installer)**。
<!--
Tectonic Installer is a good choice when you need to make cluster customizations as it is built on [Hashicorp's Terraform](https://www.terraform.io/docs/providers/azurerm/) Azure Resource Manager (ARM) provider. This enables users to customize or integrate using familiar Terraform tooling.
-->
当您需要进行集群自定义时,Tectonic Installer 是一个不错的选择,因为它是基于 [Hashicorp's Terraform](https://www.terraform.io/docs/providers/azurerm/) Azure 资源管理器(ARM)提供程序构建的。这使用户能够使用熟悉的 Terraform 工具进行自定义或集成。
<!--
You can get started using the [Tectonic Installer for Azure Guide](https://coreos.com/tectonic/docs/latest/install/azure/azure-terraform.html).
-->
您可以开始使用 [在 Azure 上安装 Tectonic 指南](https://coreos.com/tectonic/docs/latest/install/azure/azure-terraform.html)。