前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 1.8.6 集群部署–kubectl(四)

Kubernetes 1.8.6 集群部署–kubectl(四)

作者头像
老七Linux
发布2018-05-31 12:54:35
7990
发布2018-05-31 12:54:35
举报
文章被收录于专栏:Laoqi's Linux运维专列

部署 kubectl 工具,创建kubeconfig文件

kubectl是kubernetes的集群管理工具,任何节点通过kubetcl都可以管理整个k8s集群。

本文是在 master节点 部署,部署成功后会生成 /root/.kube/config 文件,kubectl就是通过这个获取 kube-apiserver 地址、证书、用户名等信息,所以这个文件需要保管好。

下载安装包
代码语言:javascript
复制
# cd

# wget https://dl.k8s.io/v1.8.6/kubernetes-client-linux-amd64.tar.gz

# tar -xzvf kubernetes-client-linux-amd64.tar.gz

# sudo cp kubernetes/client/bin/kube* /usr/local/bin/

# chmod a+x /usr/local/bin/kube*

# export PATH=/root/local/bin:$PATH
创建/root/.kube/config
代码语言:javascript
复制
# 设置集群参数,--server指定Master节点ip
kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.161.161:6443

# 设置客户端认证参数
kubectl config set-credentials admin \
  --client-certificate=/etc/kubernetes/ssl/admin.pem \
  --embed-certs=true \
  --client-key=/etc/kubernetes/ssl/admin-key.pem

# 设置上下文参数
kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin

# 设置默认上下文
kubectl config use-context kubernetes

注意:如上是注解,标注是后期更清晰些。

admin.pem 证书 O 字段值为 system:masters,kube-apiserver 预定义的 RoleBinding cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该 Role 授予了调用kube-apiserver 相关 API 的权限

创建bootstrap.kubeconfig

kubelet访问kube-apiserver的时候是通过bootstrap.kubeconfig进行用户验证。

代码语言:javascript
复制
//生成token 变量
# export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')

# cat > token.csv <<EOF
${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
EOF

# mv token.csv /etc/kubernetes/

//设置集群参数--server为master节点ip
# kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.161.161:6443 \
  --kubeconfig=bootstrap.kubeconfig

//设置客户端认证参数
# kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=bootstrap.kubeconfig

//设置上下文参数
# kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig

//设置默认上下文
# kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

# mv bootstrap.kubeconfig /etc/kubernetes/
创建kube-proxy.kubeconfig
代码语言:javascript
复制
# 设置集群参数 --server参数为master ip
kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.161.161:6443 \
  --kubeconfig=kube-proxy.kubeconfig

# 设置客户端认证参数
kubectl config set-credentials kube-proxy \
  --client-certificate=/etc/kubernetes/ssl/kube-proxy.pem \
  --client-key=/etc/kubernetes/ssl/kube-proxy-key.pem \
  --embed-certs=true \
  --kubeconfig=kube-proxy.kubeconfig

# 设置上下文参数
kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig

//设置默认上下文
# kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

# mv kube-proxy.kubeconfig /etc/kubernetes/

设置集群参数和客户端认证参数时 –embed-certs 都为 true,这会将 certificate-authority、client-certificate 和 client-key 指向的证书文件内容写入到生成的 kube-proxy.kubeconfig 文件中;

kube-proxy.pem 证书中 CN 为 system:kube-proxy,kube-apiserver 预定义的 RoleBinding cluster-admin 将User system:kube-proxy 与 Role system:node-proxier 绑定,该 Role 授予了调用 kube-apiserver Proxy 相关 API 的权限;

生成的bootstrap.kubeconfig,kube-proxy.kubeconfig文件拷贝到其它node节点的/etc/kubernetes目录下
代码语言:javascript
复制
# scp /etc/kubernetes/kube-proxy.kubeconfig node01:/etc/kubernetes/
# scp /etc/kubernetes/bootstrap.kubeconfig  node01:/etc/kubernetes/

# scp /etc/kubernetes/kube-proxy.kubeconfig node02:/etc/kubernetes/
# scp /etc/kubernetes/bootstrap.kubeconfig  node02:/etc/kubernetes/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/03/20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 部署 kubectl 工具,创建kubeconfig文件
    • 下载安装包
      • 创建/root/.kube/config
        • 创建bootstrap.kubeconfig
          • 创建kube-proxy.kubeconfig
            • 生成的bootstrap.kubeconfig,kube-proxy.kubeconfig文件拷贝到其它node节点的/etc/kubernetes目录下
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档