IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> K8S系列(二)二进制部署(三)之Node节点 -> 正文阅读

[系统运维]K8S系列(二)二进制部署(三)之Node节点

K8S系列(二)二进制部署(三)之Node节点

上一篇: K8S系列(二)二进制部署(二)之Master节点

一、 介绍

1.1 简介

1. Node节点是k8s集群中负责容器运行的节点,也叫Woder Node
2. Node节点通过Kubelet来完成对Docker容器的操作
3. Kube-proxy是Node节点上的一个网络代理组件,负责流量到Pod的访问及负载

1.2 安装Docker准备工作

请参照博主原来的文章,将node节点的Docker安装好

K8S系列(一)-kubeadm部署

二、 部署kubelet

2.1 创建Bootstrap用户

kubectl create clusterrolebinding kubelet-bootstrap \
  --clusterrole=system:node-bootstrapper \
  --user=kubelet-bootstrap

2.2 生成bootstrap.kubeconfig并拷贝到node节点

1. cd /opt/kubernetes/ssl ##进入master节点的证书目录
2. kubectl config set-cluster kubernetes \
  --certificate-authority=ca.pem \
  --embed-certs=true \
  --server=https://192.168.3.10:6443 \ ##master节点apiserver的地址
  --kubeconfig=bootstrap.kubeconfig
3. kubectl config set-credentials kubelet-bootstrap \
  --token=87a3a9036b87e70fddc84099de8324bd \ ##这个是 token.cvs的那个字符串
  --kubeconfig=bootstrap.kubeconfig
4. kubectl config set-context default \
  --cluster=kubernetes \
  --user=kubelet-bootstrap \
  --kubeconfig=bootstrap.kubeconfig
5. kubectl config use-context default --kubeconfig=bootstrap.kubeconfig ## 设置默认上下文
6. 目录下生成了bootstrap.kubeconfig文件
7. scp bootstrap.kubeconfig root@192.168.3.11:/opt/kubernetes/cfg/ &&scp bootstrap.kubeconfig root@192.168.3.12:/opt/kubernetes/cfg/将文件拷贝到其他node节点

2.3 创建工作目录并处理执行文件

1. mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs} ##每个node节点创建
2. scp /sw/kubernetes/server/bin/{kubelet,kube-proxy} root@192.168.3.11:/opt/kubernetes/bin/ &&scp /sw/kubernetes/server/bin/{kubelet,kube-proxy} root@192.168.3.12:/opt/kubernetes/bin/ ##拷贝执行文件
3. scp ~/certs/kubeapiserver/{ca*pem,server*pem} root@192.168.3.11:/opt/kubernetes/ssl/ && scp ~/certs/kubeapiserver/{ca*pem,server*pem} root@192.168.3.12:/opt/kubernetes/ssl/ ##拷贝证书

2.4 创建配置文件

1. cd /opt/kubernetes/cfg/ ##在node1节点
2. cp ../bin/kubelet /usr/bin ##执行文件
3. cat > /opt/kubernetes/cfg/kubelet.config << EOF
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: 192.168.3.11 ##节点ip
port: 10250
readOnlyPort: 10255
cgroupDriver: cgroupfs
clusterDNS: ["10.0.0.2"]
clusterDomain: cluster.local.
failSwapOn: false
authentication:
  anonymous:
    enabled: true
EOF 
4. cat > /opt/kubernetes/cfg/kubelet.conf << EOF
KUBELET_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=192.168.3.11 \
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \
--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \
--config=/opt/kubernetes/cfg/kubelet.config \
--cert-dir=/opt/kubernetes/ssl \
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"
EOF

2.5 创建服务启动文件

cat > /usr/lib/systemd/system/kubelet.service  << EOF
[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=/opt/kubernetes/cfg/kubelet.conf
ExecStart=/opt/kubernetes/bin/kubelet $KUBELET_OPTS
Restart=on-failure
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

2.6 启动并设置开机启动

systemctl daemon-reload 
systemctl start kubelet 
systemctl enable kubelet
systemctl status kubelet #来查看是否启动成功

2.7 审批Node节点加入

  1. 此时我们在Master节点 kubectl get node ,是没有任何节点的,因为node节点需要tsl的自签申请证书,然后apiserver通过申请之后,controller-manager才会下发证书,才能加入集群
    在这里插入图片描述
  2. kubectl get csr,获取提交的证书验证申请,需要注意此时pendding状态就是我们node1节点刚刚提交的,并且需要记住前面那一长串的字符串
    在这里插入图片描述
  3. kubectl certificate approve xxxx 后面输入上面的那串Name下的字符串
  4. kubelet get csr 此时我们发现刚刚的申请已经变成Approved,Issued
  5. 并且在node节点的ssl目录下会生成 kubelet-client-2021-08-23-10-48-15.pem kubelet-client-current.pem,这样就表示自签证书已经成功
  6. kubectl get node 此时重新执行就会发现已经有了node节点的信息
    在这里插入图片描述
  7. 将上述步骤重复在node2节点进行即可.

三、 部署kube-proxy

3.1 生成bootstrap.kubeconfig并拷贝到node节点

1. cd /opt/kubernetes/ssl ##进入master节点的证书目录
2. kubectl config set-cluster kubernetes \
  --certificate-authority=ca.pem \
  --embed-certs=true \
  --server=https://192.168.3.10:6443 \ ##master节点apiserver的地址
  --kubeconfig=kube-proxy.kubeconfig
3. kubectl config set-credentials kube-proxy \
  --token=87a3a9036b87e70fddc84099de8324bd \ ##这个是 token.cvs的那个字符串
  --kubeconfig=kube-proxy.kubeconfig
4. kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig
5. kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig ## 设置默认上下文
6. 目录下生成了kube-proxy.kubeconfig文件
7. scp kube-proxy.kubeconfig root@192.168.3.11:/opt/kubernetes/cfg/ &&scp kube-proxy.kubeconfig root@192.168.3.12:/opt/kubernetes/cfg/将文件拷贝到其他node节点

3.2 创建配置文件

cat > /opt/kubernetes/cfg/kube-proxy.conf << EOF
KUBE_PROXY_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=192.168.3.11 \
--cluster-cidr=10.0.0.0/24 \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"
EOF 

3.3 创建服务启动文件

cat > /usr/lib/systemd/system/kube-proxy.service << EOF
[Unit]
Description=Kubernetes Proxy
After=network.target

[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy.conf
ExecStart=/opt/kubernetes/bin/kube-proxy $KUBE_PROXY_OPTS
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF 

3.4 启动并设置开机启动

systemctl daemon-reload 
systemctl start kube-proxy
systemctl enable kube-proxy
systemctl status kube-proxy#来查看是否启动成功
#上面步骤同样在node2节点处理一下即可

四、 总结

1. 按照上面步骤,我们就完成了Node节点的安装部署.
2. 但是还没完,我们还需要部署网络插件Flannal
3. 如有不对的地方欢迎指正,希望能帮到大家
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:57:18  更:2021-08-24 16:01:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 10:07:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计