经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
kubectl客户端工具远程连接k8s集群 - W-D
来源:cnblogs  作者:W-D  时间:2019/1/10 9:26:45  对本文有异议

一、概述

  一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的,当然也可以通过https端口进行通讯前提是要生成证书。所以说kubectl不一定部署在master上,只要能和apiserver进行通讯,那么你可以将kubectl部署在任何一台你想连接到集群的主机上,以下将介绍基于证书的kubectl部署方式,以下基于kubernets1.13部署。

二、生成ca证书

 如果已经有了ca证书那就不需要在生成了,只需要利用该证书生成admin证书即可。

安装生成证书工具

  1. wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
  2. wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
  3. wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
  4. chmod +x cfssl_linux-amd64 cfssljson_linux-amd64 cfssl-certinfo_linux-amd64 mv cfssl_linux-amd64 /usr/local/bin/cfssl
  5. mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
  6. mv cfssl-certinfo_linux-amd64 /usr/bin/cfssl-certinfo

生成ca配置

  1. cat > ca-config.json <<EOF
  2. {
  3. "signing": {
  4. "default": {
  5. "expiry": "87600h"
  6. },
  7. "profiles": {
  8. "kubernetes": {
  9. "expiry": "87600h",
  10. "usages": [
  11. "signing",
  12. "key encipherment",
  13. "server auth",
  14. "client auth"
  15. ]
  16. }
  17. }
  18. }
  19. }
  20. EOF

生成csr配置

  1. cat > ca-csr.json <<EOF
  2. {
  3. "CN": "kubernetes",
  4. "key": {
  5. "algo": "rsa",
  6. "size": 2048
  7. },
  8. "names": [
  9. {
  10. "C": "CN",
  11. "L": "Beijing",
  12. "ST": "Beijing",
  13. "O": "k8s",
  14. "OU": "System"
  15. }
  16. ]
  17. }
  18. EOF

生成ca证书

  1. cfssl gencert -initca ca-csr.json | cfssljson -bare ca -

三、生成admin证书

证书配置

  1. cat > admin-csr.json <<EOF
  2. {
  3. "CN": "admin",
  4. "hosts": [],
  5. "key": {
  6. "algo": "rsa",
  7. "size": 2048
  8. },
  9. "names": [
  10. {
  11. "C": "CN",
  12. "L": "BeiJing",
  13. "ST": "BeiJing",
  14. "O": "system:masters",
  15. "OU": "System"
  16. }
  17. ]
  18. }
  19. EOF

生成证书

  1. [root@master master]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes admin-csr.json | cfssljson -bare admin
  2. 2019/01/09 15:25:20 [INFO] generate received request
  3. 2019/01/09 15:25:20 [INFO] received CSR
  4. 2019/01/09 15:25:20 [INFO] generating key: rsa-2048
  5. 2019/01/09 15:25:20 [INFO] encoded CSR
  6. 2019/01/09 15:25:20 [INFO] signed certificate with serial number 496018729932380195936891977997946670147442472383
  7. 2019/01/09 15:25:20 [WARNING] This certificate lacks a "hosts" field. This makes it unsuitable for
  8. websites. For more information see the Baseline Requirements for the Issuance and Management
  9. of Publicly-Trusted Certificates, v.1.1.6, from the CA/Browser Forum (https://cabforum.org);
  10. specifically, section 10.2.3 ("Information Requirements").

查看证书

  1. [root@master master]# ls admin*
  2. admin.csr admin-csr.json admin-key.pem admin.pem

四、配置kubectl

拷贝证书以及相关kubectl到目标机器

  1. scp /opt/kubernetes/bin/kubectl 10.1.210.32:/usr/bin #拷贝命令
  2. scp admin* ca.pem 10.1.210.32:/opt/kubernetes/kubectl/ssl # 拷贝证书

配置kubectl配置文件

  1. #进入证书目录
  2. cd /opt/kubernetes/kubectl/ssl
  3. #生成kubectl配置文件
  4. kubectl config set-cluster kubernetes --server=https://10.1.210.33:6443 --certificate-authority=ca.pem
  5. #设置用户项中cluster-admin用户证书认证字段
  6. kubectl config set-credentials cluster-admin --certificate-authority=ca.pem --client-key=admin-key.pem --client-certificate=admin.pem
  7. #设置默认上下文
  8. kubectl config set-context default --cluster=kubernetes --user=cluster-admin
  9. #设置当前环境的default
  10. kubectl config use-context default

查看配置文件

  1. [root@node1 ssl]# cat /root/.kube/config
  2. apiVersion: v1
  3. clusters:
  4. - cluster:
  5. certificate-authority: /opt/kubernetes/kubectl/ssl/ca.pem
  6. server: https://10.1.210.33:6443
  7. name: kubernetes
  8. contexts:
  9. - context:
  10. cluster: kubernetes
  11. user: cluster-admin
  12. name: default
  13. current-context: default
  14. kind: Config
  15. preferences: {}
  16. users:
  17. - name: cluster-admin
  18. user:
  19. client-certificate: /opt/kubernetes/kubectl/ssl/admin.pem
  20. client-key: /opt/kubernetes/kubectl/ssl/admin-key.pem

五、管理集群

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号