kubectl配置单、多集群访问

您可以通过 Kubernetes 命令行工具 kubectl 从本地客户端机器连接到 TKE 集群。

这里是官方文档https://cloud.tencent.com/document/product/457/8438

写这篇的意义主要记录一些小问题,以及单个客户端如何连接多个TKE集群

一. 下载 kubectl 工具

Linux 系统

这个一看就知道是国内下载不了系列,请发挥您的智慧下载吧,这里我是添加了国内源直接yum -y install kubectl-1.10.5 如不加版本默认下载最新版本

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.13/bin/linux/amd64/kubectl

注:v1.8.13可根据需求替换成业务所需的kubectl版本。 关于版本的事情不得不多说一句,尽量跟着自己集群的版本走,我在实验的过程中下了最新的kubectl1.11的,有些指令不识别了。

这里一路跟着教程走就行了

二. 获取集群账号密码以及证书信息

  1. 登录 容器服务控制台 > 集群,单击需要连接的集群 ID/名称,查看集群详情。
  2. 在集群信息页,单击【显示凭证】,查看用户名、密码和证书信息。
  3. 复制或下载证书文件到本地。这里我是直接复制粘贴到linux环境去加粗的,文件的命名看个人喜好,这个文件名在后续的操作中需要使用到,所以敲个好记的名字或好区分的名字吧。
  4. 开启访问入口这里分公网入口已经内网入口,在控制台页面体现为“外网访问地址”、“内网访问地址”,这里开启外网访问地址就行了,内网访问地址会超时

三. 通过证书信息使用 kubectl 操作集群

方法一:单次 kubectl 操作请求,附带证书信息

该方法适用于单次操作集群,不将容器集群的证书信息保存到机器上。

请求方法,kubectl 命令格式:

kubectl get node -s "域名信息/外网访问地址" --username=用户名 --password=密码 --certificate-authority=证书路径

示例:

kubectl get node -s "https://cls-66668888.ccs.tencent-cloud.com" --username=admin --password=6666o9oIB2gHD88882quIfLMy6666 --certificate-authority=/etc/kubernetes/cluster-ca.crt

如果用的是内网访问地址,将会出现Unable to connect to the server: i/o timeout,这里如果有读者了解的可以在评论中指出

[root@VM_0_7_centos ~]# kubectl get node -s "cls-h5dfwr4g.ccs.tencent-cloud.com" --username=xxxx  --password=xxxx --certificate-authority=/etc/kubernetes/cluster-ca.crt
Unable to connect to the server: dial tcp 10.0.0.12:80: i/o timeout
[root@VM_0_7_centos ~]# cat /etc/hosts
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.redhat.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 VM_0_7_centos VM_0_7_centos
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

# The following lines are desirable for IPv6 capable hosts
::1 VM_0_7_centos VM_0_7_centos
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

10.0.0.12 cls-h5dfwr4g.ccs.tencent-cloud.com

到此就可以正确的获取到集群的信息了

[root@VM_0_7_centos ~]# kubectl get node -s "https://cls-h5dfwr4g.ccs.tencent-cloud.com" --username=admin --password=XyUi2kzTM7yhPiynfrDnuhBdX0Uzinvi --certificate-authority=/etc/kubernetes/cluster-ca.crt
NAME       STATUS    ROLES     AGE       VERSION
10.0.0.4   Ready     <none>    5h        v1.10.5-qcloud
10.0.0.5   Ready     <none>    4h        v1.10.5-qcloud

至于操作多个集群,就是把域名信息换了,账户密码换了还有证书换了。

如果想修改 kubectl 配置文件,且多集群的请继续往下看

该方法适用于长期通过 kubectl 操作集群, 一次配置,只要文件不修改就长期有效。

背景:假设我有两个集群,一个是生产集群,一个是测试集群,我想通过kubectl操作多个集群请往下配置:

首先配置生产集群的链接

kubectl config set-credentials produce-admin --username=admin --password=6666o9oIB2gHD88882quIfLMy6666
kubectl config set-cluster produce-cluster --server=https://cls-66668888.ccs.tencent-cloud.com --certificate-authority=/etc/kubernetes/cluster-ca.crt
kubectl config set-context produce-system --cluster=produce-cluster --user=produce-admin

配置的格式以及含义

kubectl config set-credentials NAME [--username=basic_user] [--password=basic_password]
kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certficate/authority] 
kubectl config set-context NAME [--cluster=cluster_nickname] [--user=user_nickname] [--namespace=namespace]
set-credentials 在kubeconfig配置文件中设置一个用户项。
set-cluster 在kubeconfig配置文件中设置一个集群项。
set-context 在kubeconfig配置文件中设置一个环境项。

配置完,切换环境项

kubectl config use-context produce-system

这样直接输入kubectl get node即可查看produce-system集群的信息。

那么第二个集群只需照葫芦画瓢创建第二个环境再用use-context切换即可

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏拂晓风起

Flash:彻底理解crossdomain.xml、跨swf调用。

1793
来自专栏晓晨的专栏

IdentityServer Topics(1)- 启动说明

1733
来自专栏从零开始学自动化测试

python接口自动化10-token登录

前言 有些登录不是用cookie来验证的,是用token参数来判断是否登录。 token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换...

4654
来自专栏中国白客联盟

Phpshell Bypass Safedog

(php的function介绍可以看这里:http://www.php.net/manual/zh/functions.user-defined.php)

1393
来自专栏农夫安全

DenyHosts防御ssh暴力破解

前段时间博客刚上线不久,ssh服务就被暴力破解了十几万次,文章也被各种扫描器,爬虫血洗过了,也是醉了......wordpress又没多少重要的数据,我们大农夫...

2822
来自专栏陈纪庚

如何使用nodejs发邮件

昨天就开始想使用nodemailer来实现一个发送邮件的功能,不过发现了很多个坑,网上给的资料也很杂很乱,所以决定写一篇真正能用的来帮助大家减少弯路

1673
来自专栏我的博客

vsftp +mysql 配置详细过程

本文章由网友:苶然(QQ网名)供稿,在此特别感谢他 需要安装包 db4-* vsftpd- mysql-server mysql-devel pam...

3775
来自专栏企鹅号快讯

内网及外网MSSQL口令扫描渗透

在实际渗透过程中,往往通过SQL注入或者弱口令登录后台,成功获取了Webshell,但对于如何进行内网渗透相当纠结,其实在获取入口权限的情况下,通过lcx端口...

6205
来自专栏运维小白

github+hexo搭建博客,push本地代码到github出错

在git客户端上传的时候一直报错,显示无法上传到github 报错信息如下 $ git push -u origin master To git@github...

3626
来自专栏生信宝典

原来你是这样的软连接

1123

扫码关注云+社区

领取腾讯云代金券