From e25641bf7998325b19e9f9d94908b1414ce1c36b Mon Sep 17 00:00:00 2001 From: Dominic Yin Date: Wed, 30 Sep 2020 17:51:01 +0800 Subject: [PATCH] Remove "Running Kubernetes on CenturyLink Cloud" for zh --- .../production-environment/turnkey/clc.md | 536 ------------------ 1 file changed, 536 deletions(-) delete mode 100644 content/zh/docs/setup/production-environment/turnkey/clc.md diff --git a/content/zh/docs/setup/production-environment/turnkey/clc.md b/content/zh/docs/setup/production-environment/turnkey/clc.md deleted file mode 100644 index cba761aab6..0000000000 --- a/content/zh/docs/setup/production-environment/turnkey/clc.md +++ /dev/null @@ -1,536 +0,0 @@ ---- -title: 在 CenturyLink Cloud 上运行 Kubernetes ---- - - - -这些脚本适用于在 CenturyLink Cloud 上创建、删除和扩展 Kubernetes 集群。 - -你可以使用单个命令完成所有任务。我们提供了用于执行这些任务的 -[Ansible 手册](https://github.com/CenturyLinkCloud/adm-kubernetes-on-clc/blob/master/ansible/README.md) - - -## 寻求帮助 - -如果运行出现问题或者想要寻求帮助,我们非常乐意帮忙。通过以下方式获取帮助: - -- 提交 github issue -- 给 Kubernetes AT ctl DOT io 发送邮件 -- 访问 [https://info.ctl.io/kubernetes](https://info.ctl.io/kubernetes) - - -## 基于 VM 或物理服务器的集群可供选择 - -- 我们在虚拟机或物理服务器上都支持 Kubernetes 集群。如果要将物理服务器用于辅助 Node(minions),则只需使用 --minion_type=bareMetal 标志。 -- 有关物理服务器的更多信息,请访问: [https://www.ctl.io/bare-metal/](https://www.ctl.io/bare-metal/) -- 仅在 VA1 和 GB3 数据中心提供物理服务。 -- 13个公共云位置都可以使用虚拟机。 - - -## 要求 - -运行此脚本的要求有: - -- Linux 管理主机(在 ubuntu 和 macOS 上测试) -- python 2(在 2.7.11 版本上测试) - - pip(从 2.7.9 版开始与 python 一起安装) -- git -- 具有新建主机权限的 CenturyLink Cloud 帐户 -- 从 Linux 主机到 CenturyLink Cloud 的有效 VPN 连接 - - -## 脚本安装 - -满足所有要求后,请按照以下说明安装此脚本。 - -1)克隆此存储库并通过 cd 进入。 - -```shell -git clone https://github.com/CenturyLinkCloud/adm-kubernetes-on-clc -``` - - -2)安装所有要求的部分,包括 - - * Ansible - * CenturyLink Cloud SDK - * Ansible Modules - -```shell -sudo pip install -r ansible/requirements.txt -``` - - -3)从模板创建凭证文件,并使用它来设置你的 ENV 变量 - -```shell -cp ansible/credentials.sh.template ansible/credentials.sh -vi ansible/credentials.sh -source ansible/credentials.sh - -``` - - -4)使用内网的虚拟机或 [ 配置与 CenturyLink Cloud 网络的 VPN 连接.](https://www.ctl.io/knowledge-base/network/how-to-configure-client-vpn/) 授予你的计算机对 CenturyLink Cloud 网络的访问权限。 - - -#### 脚本安装示例:Ubuntu 14 演练 - -如果你使用 Ubuntu 14,为方便起见,我们会提供分步指导帮助安装必备条件和脚本。 - -```shell -# system -apt-get update -apt-get install -y git python python-crypto -curl -O https://bootstrap.pypa.io/get-pip.py -python get-pip.py - -# installing this repository -mkdir -p ~home/k8s-on-clc -cd ~home/k8s-on-clc -git clone https://github.com/CenturyLinkCloud/adm-kubernetes-on-clc.git -cd adm-kubernetes-on-clc/ -pip install -r requirements.txt - -# getting started -cd ansible -cp credentials.sh.template credentials.sh; vi credentials.sh -source credentials.sh -``` - - - - -## 创建集群 - -要创建一个新的 Kubernetes 集群,只需运行 ```kube-up.sh``` 脚本即可。以下是一套完整的脚本选项列表和一些示例。 - -```shell -CLC_CLUSTER_NAME=[name of kubernetes cluster] -cd ./adm-kubernetes-on-clc -bash kube-up.sh -c="$CLC_CLUSTER_NAME" -``` - - -创建集群大约需要15分钟。脚本完成后,它将输出一些命令,这些命令将帮助你在计算机上设置 kubectl 以指向新集群。 - -完成集群创建后,其配置文件会存储在本地管理主机的以下目录中 - -```shell -> CLC_CLUSTER_HOME=$HOME/.clc_kube/$CLC_CLUSTER_NAME/ -``` - - - -#### 创建集群:脚本选项 - -```shell -Usage: kube-up.sh [OPTIONS] -Create servers in the CenturyLinkCloud environment and initialize a Kubernetes cluster -Environment variables CLC_V2_API_USERNAME and CLC_V2_API_PASSWD must be set in -order to access the CenturyLinkCloud API - -All options (both short and long form) require arguments, and must include "=" -between option name and option value. - - -h (--help) display this help and exit - -c= (--clc_cluster_name=) set the name of the cluster, as used in CLC group names - -t= (--minion_type=) standard -> VM (default), bareMetal -> physical] - -d= (--datacenter=) VA1 (default) - -m= (--minion_count=) number of kubernetes minion nodes - -mem= (--vm_memory=) number of GB ram for each minion - -cpu= (--vm_cpu=) number of virtual cps for each minion node - -phyid= (--server_conf_id=) physical server configuration id, one of - physical_server_20_core_conf_id - physical_server_12_core_conf_id - physical_server_4_core_conf_id (default) - -etcd_separate_cluster=yes create a separate cluster of three etcd nodes, - otherwise run etcd on the master node -``` - - -## 扩展集群 - -要扩展现有的Kubernetes集群,请运行```add-kube-node.sh``` 脚本。脚本选项的完整列表和一些示例在 [下面](#cluster-expansion-script-options) 列出。该脚本必须运行在创建集群的同一个主机(或储存集群工件文件的 ```~/.clc_kube/$cluster_name``` 主机)。 - -```shell -cd ./adm-kubernetes-on-clc -bash add-kube-node.sh -c="name_of_kubernetes_cluster" -m=2 -``` - - -#### 扩展集群:脚本选项 - -```shell -Usage: add-kube-node.sh [OPTIONS] -Create servers in the CenturyLinkCloud environment and add to an -existing CLC kubernetes cluster - -Environment variables CLC_V2_API_USERNAME and CLC_V2_API_PASSWD must be set in -order to access the CenturyLinkCloud API - - -h (--help) display this help and exit - -c= (--clc_cluster_name=) set the name of the cluster, as used in CLC group names - -m= (--minion_count=) number of kubernetes minion nodes to add -``` - - -## 删除集群 - -有两种方法可以删除集群: - -1)使用 Python 脚本: - -```shell -python delete_cluster.py --cluster=clc_cluster_name --datacenter=DC1 -``` - - -2)使用 CenturyLink Cloud UI。要删除集群,请登录 CenturyLink Cloud 控制页面并删除包含 Kubernetes 集群的父服务器组。我们希望能够添加脚本选项以尽快完成此操作。 - - -## 示例 - -在 VA1 中创建一个集群,名称为 k8s_1,具备1个主 Node 和3个辅助 Minion(在物理机上) - -```shell -bash kube-up.sh --clc_cluster_name=k8s_1 --minion_type=bareMetal --minion_count=3 --datacenter=VA1 -``` - - -在 VA1 中创建一个 ha etcd 集群,名称为 k8s_2,运行在3个虚拟机和6个辅助 Minion(在虚拟机上) - -```shell -bash kube-up.sh --clc_cluster_name=k8s_2 --minion_type=standard --minion_count=6 --datacenter=VA1 --etcd_separate_cluster=yes -``` - - -在 UC1 中创建一个集群,名称为k8s_3,具备1个主 Node 和10个具有更高 mem/cpu 的辅助 Minion(在虚拟机上): - -```shell -bash kube-up.sh --clc_cluster_name=k8s_3 --minion_type=standard --minion_count=10 --datacenter=VA1 -mem=6 -cpu=4 -``` - - - - -## 集群功能和架构 - -我们使用以下功能配置 Kubernetes 集群: - -* KubeDNS:DNS 解析和服务发现 -* Heapster / InfluxDB:用于指标收集,是 Grafana 和 auto-scaling 需要的。 -* Grafana:Kubernetes/Docker 指标仪表板 -* KubeUI:用于查看 Kubernetes 状态的简单 Web 界面 -* Kube 仪表板:新的 Web 界面可与你的集群进行交互 - - -使用以下工具创建 Kubernetes 集群: - -* Kubernetes 1.1.7 -* Ubuntu 14.04 -* Flannel 0.5.4 -* Docker 1.9.1-0~trusty -* Etcd 2.2.2 - - -## 可选附件 -* 日志记录:我们提供了一个集成的集中式日志记录 ELK 平台,以便将所有 Kubernetes 和 docker 日志发送到 ELK 堆栈。要安装 ELK 堆栈并配置 Kubernetes 向其发送日志,请遵循 [日志聚合文档](https://github.com/CenturyLinkCloud/adm-kubernetes-on-clc/blob/master/log_aggregration.md)。注意:默认情况下我们不安装此程序,因为占用空间并不小。 - - -## 管理集群 - -管理 Kubernetes 集群最常用工具是 command-line 实用程序 ```kubectl```。如果你的管理器上还没有此二进制文件的副本,可以运行脚本 ```install_kubectl.sh```,它将下载该脚本并将其安装在 ```/usr/bin/local``` 中。 - - -该脚本要求定义环境变量 ```CLC_CLUSTER_NAME```。```install_kubectl.sh``` 还将写入一个配置文件,该文件为特定集群嵌入必要的认证证书。配置文件被写入 ```${CLC_CLUSTER_HOME}/kube``` 目录中 - - -```shell -export KUBECONFIG=${CLC_CLUSTER_HOME}/kube/config -kubectl version -kubectl cluster-info -``` - - -### 以编程方式访问集群 - -可以使用本地存储的客户端证书来访问 apiserver。例如,你可以使用 -[Kubernetes API 客户端库](/zh/docs/reference/using-api/client-libraries/) 选择编程语言对 Kubernetes 集群进行编程。 - -为了演示如何使用这些本地存储的证书,我们提供以下示例,使用 ```curl``` 通过 https 与主 apiserver 进行通信: - -```shell -curl \ - --cacert ${CLC_CLUSTER_HOME}/pki/ca.crt \ - --key ${CLC_CLUSTER_HOME}/pki/kubecfg.key \ - --cert ${CLC_CLUSTER_HOME}/pki/kubecfg.crt https://${MASTER_IP}:6443 -``` - - -但是请注意,这 *不能* 与 MacOS 一起发行的 ```curl``` 二进制文件分开使用。 - - -### 使用浏览器访问集群 - -安装 [Kubernetes 仪表板](/zh/docs/tasks/access-application-cluster/web-ui-dashboard/)。 -创建集群时,脚本会为这些接口输出 URL,如下所示: - -kubernetes-dashboard 在以下位置运行 - -``` -https://${MASTER_IP}:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy -``` - - -对 UI 进行身份验证的注意事项: - -集群设置为对用户 _admin_ 使用基本的身份验证。进入 URL ```https://${MASTER_IP}:6443``` 获取从 apiserver 上接收的自签名证书,然后出示管理员密码并写入文件 ```> _${CLC_CLUSTER_HOME}/kube/admin_password.txt_``` - - - -### 配置文件 - -多个配置文件被写入几个子目录,子目录在 ```.clc_kube/${CLC_CLUSTER_NAME}``` 下的主目录 *CLC_CLUSTER_HOME* 中。使用这些文件可以从创建集群的计算机之外的其他计算机访问集群。 - - -* ```config/```:Ansible 变量文件,包含描述主机和从机的参数 -* ```hosts/```: 主机文件,列出了 Ansible 手册的访问信息 -* ```kube/```: ```kubectl``` 配置文件,包含管理员访问 Kubernetes API 所需的基本身份验证密码 -* ```pki/```: 公钥基础结构文件,用于在集群中启用 TLS 通信 -* ```ssh/```: 对主机进行根访问的 SSH 密钥 - - - -## ```kubectl``` 使用示例 - -_kubectl_ 有很多功能,例如 - -列出所有或者一个命名空间中存在的 Node,Pod,服务等。 - -```shell -kubectl get nodes -kubectl get --all-namespaces pods -kubectl get --all-namespaces services -kubectl get --namespace=kube-system replicationcontrollers -``` - - -Kubernetes API 服务器在 Web URL 上公开服务,这些 URL 受客户端证书的保护。如果你在本地运行 kubectl 代理,```kubectl``` 将提供必要的证书,并通过 http 在本地提供服务。 - -```shell -kubectl proxy -p 8001 -``` - - -然后,你可以访问 ```http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/``` 之类的 URL,不再需要浏览器中的客户端证书 。 - - - -## Kubernetes 的哪些功能无法在 CenturyLink Cloud 上使用 - -这些是已知的在 CenturyLink Cloud 上不能使用,但在其他云提供商中可以使用: - -- 目前,没有 [LoadBalancer](/zh/docs/tasks/access-application-cluster/create-external-load-balancer/) - 类型的支持服务。我们正在为此积极努力,并希望在2016年4月左右发布更改。 - -- 目前,不支持 CenturyLink Cloud 提供的永久存储卷。但是,客户可以自带永久性存储产品。我们自己使用 Gluster。 - - -## Ansible 文件 - -如果你想了解有关 Ansible 文件的更多信息,请 [浏览此文件](https://github.com/CenturyLinkCloud/adm-kubernetes-on-clc/blob/master/ansible/README.md) - - -## 更多 - -有关管理和使用 Kubernetes 集群的更多详细信息,请参见 [Kubernetes 文档](/zh/docs/) - - -