容器服务 连接集群

可以以通过 Kubernetes 命令行工具 Kubectl 从本地客户端机器连接到 TKE 集群。这篇档指导你如何连接集群。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、方案一:通过 Cloud Shell 连接集群

TKE 集成了腾讯云 Cloud Shell,你可以在腾讯云控制台上实现一键连接集群的能力,通过 kubectl 实现对集群的灵活操作。

二、步骤1:开启集群公网访问

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群页面,选择集群所在地域,单击目标集群 ID,进入集群详情页。

3. 在 API Server 信息页面,查看集群访问开启状态。

4. 单击开启公网访问。开启公网访问时,需配置相关参数,如:

·安全组:开启公网访问后,会自动分配一个外网 CLB 作为访问端口。你可以通过安全组来配置来源授权,我们会将安全组绑定到外网 CLB 上,以达到访问控制的效果。集群访问代理的流量默认走443端口,请确认你选择的安全组内针对来源 IP 已放通443端口,以确保开启功能后集群可以正常访问。

·运营商类型、网络计费模式、带宽上限:CLB 相关参数,详情请参见 CLB 创建指南,根据实际需求进行设置。

·访问方式:选择公网域名后,你需要传入自定义域名,我们会为你传入的域名进行安全签名,你需要自行配置公网解析。选择 CLB 默认域名后,你无需再手动配置域名解析等操作。

5. 单击保存。确认公网访问已开启。

三、步骤2:使用 Cloud Shell 连接集群

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群页面,选择集群所在地域,单击目标集群的更多 > 连接集群。

3. 在控制台下方出现 Cloud Shell 入口,你可以直接在命令框里面输入 kubectl 指令:

四、前提条件

请安装 curl。

五、步骤1:安装 Kubectl 工具

1. 参考 Installing and Setting up kubectl,安装 Kubectl 工具。你可根据操作系统的类型,选择获取 Kubectl 工具的方式:

Mac OS X 系统Linux 系统Windows 系统执行以下命令,获取 Kubectl 工具:curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.4/bin/darwin/amd64/kubectl执行以下命令,获取 Kubectl 工具:curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.4/bin/linux/amd64/kubectl执行以下命令,获取 Kubectl 工具:curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.4/bin/windows/amd64/kubectl.exe

2. 此步骤以 Linux 系统为例。执行以下命令,添加执行权限。

chmod +x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectl

3. 执行以下命令,测试安装结果。

kubectl version

如若输出类似以下版本信息,即表示安装成功。

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57:25Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}

六、步骤2:开启集群访问

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群页,选择集群所在地域,单击目标集群 ID,进入集群详情页。

3. 在 API Server 信息页,查看集群访问开启状态。

开启公网访问开启内网访问

开启公网访问时,需配置相关参数:

·安全组:开启公网访问后,会自动分配一个外网 CLB 作为访问端口。你可以通过安全组来配置来源授权,我们会将安全组绑定到外网 CLB 上,以达到访问控制的效果。集群访问代理的流量默认走443端口,请确认你选择的安全组内针对来源 IP 已放通443端口,以确保开启功能后集群可以正常访问。

·运营商类型、网络计费模式、带宽上限:CLB 相关参数,详情请参见 CLB 创建指南,根据实际需求进行设置。

·访问方式:选择公网域名后,你需要传入自定义域名,我们会为你传入的域名进行安全签名,你需要自行配置公网解析。选择 CLB 默认域名后,你无需再手动配置域名解析等操作。

开启内网访问时,需配置相关参数:

·负载均衡器:

·自动创建:自动创建CLB用于公网/内网访问Service,CLB 的生命周期由 TKE 管理。

·使用已有:使用当前未被TKE使用的应用型CLB用于公网/内网访问Service,请勿手动修改由TKE创建的CLB监听器。

·LB所在子网:默认不开启。开启内网访问时,需配置一个子网,开启成功后将在已配置的子网中分配 IP 地址。

·访问方式:选择内网域名后,你需要传入自定义域名,我们会为你传入的域名进行安全签名,你需要自行配置内网解析。选择内网 IP 后,我们会为你分配内网 IP 并安全签名。

七、步骤3:获取 KubeConfig

TKE 提供了两种 KubeConfig,分别用于公网访问和内网访问。开启集群访问后,即可按如下步骤获取对应的 KubeConfig:

1. 在集群详情 > 基本信息中,查看 API Server 信息。

2. 在对应集群访问的开关下方,复制或下载 KubeConfig,或查看外网访问安全组、访问域名(开启访问时配置)、访问 IP。如下:

八、步骤4:配置 KubeConfig 并访问 Kubernetes 集群

1. 根据实际情况进行集群凭据配置。
配置前,请判断当前访问客户端是否已经配置过任何集群的访问凭证:

·否,即 ~/.kube/config 文件内容为空,可直接复制已获取的 KubeConfig 访问凭证内容并粘贴入 ~/.kube/config 中。若客户端无 ~/.kube/config 文件,你先创建 .kube 目录下的空 config 文件,再创建文件。

·是,你可下载已获取的 KubeConfig 至指定位置,并依次执行以下命令以合并多个集群的 config。

KUBECONFIG=~/.kube/config:~/Downloads/cls-3jju4zdc-config kubectl config view –merge –flatten > ~/.kube/config

注意:说明:

注意:此处需要将文件下载到需要连接集群的客户端内,并且注意文件名。

export KUBECONFIG=~/.kube/config

其中,~/Downloads/cls-3jju4zdc-config 为本集群的 KubeConfig 的文件路径,请替换为下载至本地后的实际路径。

注意:你需要修改集群的 kubeconfig 文件中的 user 和 name,以确保每个集群都有唯一的配置,这样才能保证切换集群后的正常访问。

2. 完成 KubeConfig 配置后,依次执行以下命令查看并切换 context 以访问本集群。

kubectl config get-contexts

注意:说明:

注意:下面例子中的 “cls-3jju4zdc-context-default” 为上一步 kubectl config get-contexts 中查到的集群名称 NAME。

kubectl config use-context cls-3jju4zdc-context-default

3. 执行以下命令, 测试是否可正常访问集群。

kubectl get node

成功响应示例:

如果无法连接请查看是否已经开启公网访问或内网访问入口,并确保访问客户端在指定的网络环境内。

九、步骤1:获取 Kubernetes 的 service IP

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 在集群页面,选择集群所在地域,单击目标集群 ID,进入集群详情页。

3. 在集群详情页中,选择左侧的服务与路由,在 Service 页面获取 default 命名空间下 Kubernetes 的 service IP:

注意:说明:

注意:Kubernetes service 是 ClusterIP 模式,仅适用于集群内访问。

十、步骤2:配置 KubeConfig 并访问 Kubernetes 集群

1. 调用云 API 接口 DescribeClusterKubeconfig 获取当前使用账号的凭证信息 Kubeconfig 文件。

2. 使用步骤1中获取的 kubernetes service ip,替换通过 API 获取的 Kubeconfig 中的 clusters.cluster.server 字段为 https://<IP>:443,并整理格式如下:

3. 登录任意一台集群内节点,使用上步生成的 Kubeconfig 内容替换节点上 ~/.kube/config文件内容。

4. 执行以下命令, 测试是否可正常访问集群。

kubectl get node

成功响应示例:

十一、Kubectl 命令行介绍

Kubectl 是一个用于 Kubernetes 集群操作的命令行工具。这篇涵盖 kubectl 语法、常见命令操作并提供常见示例。有关每个命令(包括所有主命令和子命令)的详细信息,请参见 kubectl 参考文档 或使用 kubectl help 命令查看详细帮助。

赞 (0)
上一篇 4天前
下一篇 4天前