二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

  • ELK笔记

  • Kubernetes笔记

    • 手动部署kubernetes-1-8-6集群

      • 基础环境-kubernetes-1-8-6集群搭建
      • 创建证书-kubernetes-1-8-6集群搭建
      • Etcd集群-kubernetes-1-8-6集群搭建
      • 安装kubectl-kubernetes-1-8-6集群搭建
        • 1,下载安装包
        • 2,创建 / root/.kube/config
          • 1,设置集群参数,–server 指定 Master 节点 ip
          • 2,设置客户端认证参数
          • 3,设置上下文参数
          • 4,设置默认上下文
        • 3,创建 bootstrap.kubeconfig
          • 1,生成 token 变量
          • 2,设置集群参数–server 为 master 节点 ip
          • 3,设置客户端认证参数
          • 4,设置上下文参数
          • 5,设置默认上下文
        • 4,创建 kube-proxy.kubeconfig
          • 1,设置集群参数 –server 参数为 master ip
          • 2,设置客户端认证参数
          • 3,设置上下文参数
          • 4,设置默认上下文
        • 5,同步配置文件。
      • 部署master-kubernetes-1-8-6集群搭建
      • 部署node-kubernetes-1-8-6集群搭建
      • 部署web-ui-kubernetes-1-8-6集群搭建
    • 其他姿势快速部署

    • 手动搭建k8s-1-10-4高可用集群(推荐版).md

    • 基础学习

    • 从新出发

  • LLM专题

  • 系列专题
  • Kubernetes笔记
  • 手动部署kubernetes-1-8-6集群
二丫讲梵
2018-10-05
目录

安装kubectl-kubernetes-1-8-6集群搭建

文章发布较早,内容可能过时,阅读注意甄别。

部署 kubectl 工具,创建 kubeconfig 文件。

kubectl 是 kubernetes 的集群管理工具,任一集群中的节点都可以通过 kubetcl 被管理。

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

# 1,下载安装包

# 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
1
2
3
4
5
6
7
8
9
10
11

# 2,创建 / root/.kube/config

# 1,设置集群参数,–server 指定 Master 节点 ip

kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.106.3:6443
1
2
3
4

# 2,设置客户端认证参数

kubectl config set-credentials admin \
  --client-certificate=/etc/kubernetes/ssl/admin.pem \
  --embed-certs=true \
  --client-key=/etc/kubernetes/ssl/admin-key.pem
1
2
3
4

# 3,设置上下文参数

kubectl config set-context kubernetes \
  --cluster=kubernetes \
  --user=admin
1
2
3

# 4,设置默认上下文

kubectl config use-context kubernetes
1

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

# 3,创建 bootstrap.kubeconfig

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

# 1,生成 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/
1
2
3
4
5
6
7

# 2,设置集群参数–server 为 master 节点 ip

kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.106.3:6443 \
  --kubeconfig=bootstrap.kubeconfig
1
2
3
4
5

# 3,设置客户端认证参数

kubectl config set-credentials kubelet-bootstrap \
  --token=${BOOTSTRAP_TOKEN} \
  --kubeconfig=bootstrap.kubeconfig
1
2
3

# 4,设置上下文参数

# kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig
1
2
3
4

# 5,设置默认上下文

# kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

# mv bootstrap.kubeconfig /etc/kubernetes/
1
2
3

# 4,创建 kube-proxy.kubeconfig

# 1,设置集群参数 –server 参数为 master ip

kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/ssl/ca.pem \
  --embed-certs=true \
  --server=https://192.168.106.3:6443 \
  --kubeconfig=kube-proxy.kubeconfig

1
2
3
4
5
6

# 2,设置客户端认证参数

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
1
2
3
4
5

# 3,设置上下文参数

kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig
1
2
3
4

# 4,设置默认上下文

# kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

# mv kube-proxy.kubeconfig /etc/kubernetes/
1
2
3

设置集群参数和客户端认证参数时 –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 的权限;

# 5,同步配置文件。

生成的 bootstrap.kubeconfig,kube-proxy.kubeconfig 文件拷贝到其它 node 节点的 / etc/kubernetes 目录下。

# 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/
1
2
3
4
5
微信 支付宝
上次更新: 2024/06/13, 22:13:45
Etcd集群-kubernetes-1-8-6集群搭建
部署master-kubernetes-1-8-6集群搭建

← Etcd集群-kubernetes-1-8-6集群搭建 部署master-kubernetes-1-8-6集群搭建→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式