前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >k8s学习四-部署节点加入集群

k8s学习四-部署节点加入集群

作者头像
仙士可
发布2022-09-13 18:26:56
发布2022-09-13 18:26:56
81300
代码可运行
举报
文章被收录于专栏:仙士可博客仙士可博客
运行总次数:0
代码可运行

集群环境配置

从节点加入集群的环境步骤配置跟master类似,但是可以不需要部署网络插件 flannel

参考文章:https://www.php20.cn/article/387

准备工作:

一台ubuntu服务器(虚拟机)

k8s环境配置

host配置

我们先给服务器定义好hosts,便于直接找到该服务器ip

代码语言:javascript
代码运行次数:0
复制
192.168.192.10 node-1

注意,后面如果需要增加集群,也需要配置其他的hosts

主机名修改(非必要)

修改 /etc/hostname 改为 node-1

关闭防火墙

由于k8s的防火墙规则和系统的冲突,所以需要关闭系统的防火墙

代码语言:javascript
代码运行次数:0
复制
sudo ufw disable
systemctl stop ufw

关闭selinux

关闭selinux以允许容器访问宿主机的文件系统  (新装的Ubuntu好像没这个东西,可以自行百度)

禁用swap

swap会在内存不足的时候使用磁盘当做内存,但是效率会非常低,导致服务器直接卡死

代码语言:javascript
代码运行次数:0
复制
sudo swapoff -a
vi /etc/fstab  # 将swap一行前面增加个# 号注释掉

网络参数

代码语言:javascript
代码运行次数:0
复制
vi /etc/sysctl.d/k8s.conf  #将下面的3行(去掉#号写入到此文件)

#net.bridge.bridge-nf-call-ip6tables = 1
#net.bridge.bridge-nf-call-iptables = 1
#net.ipv4.ip_forward = 1

modprobe br_netfilter  
sysctl -p /etc/sysctl.d/k8s.conf

安装docker

代码语言:javascript
代码运行次数:0
复制
apt-get install docker.io -y
# 设置开机启动并启动docker  
sudo systemctl start docker
sudo systemctl enble docker

# 修改docker运行时,并且增加镜像
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "registry-mirrors": [
    "https://reg-mirror.qiniu.com/"
  ]
  "storage-driver": "overlay2"
}
EOF

配置ubuntu k8s 安装源

代码语言:javascript
代码运行次数:0
复制
#使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
#下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
#更新
apt-get update

安装 kubeadm、kubelet、kubectl

注意!这里最好是只安装 1.24之前的版本,新版本可能安装很多问题,导致无心学习,我这里选择的是1.23.10

代码语言:javascript
代码运行次数:0
复制
apt list--all-versions package_name  ##查看版本 

apt-get install -y kubeadm=1.23.10-00 kubelet=1.23.10-00 kubectl=1.23.10-00

# 阻止自动更新(apt upgrade时忽略)。所以更新的时候先unhold,更新完再hold。
apt-mark hold kubelet kubeadm kubectl

加入集群

在第一篇文章中,我们保存了一个  join命令,用于加入集群

代码语言:javascript
代码运行次数:0
复制
kubeadm join 192.168.192.9:6443 --token mdutmg.pbecp9mqcowc4b0u \
--discovery-token-ca-cert-hash sha256:61f8d9b13b94a3c7eff88e25faf1c873cfd559d1ee2f2988009ac85de11ec730

如果没有记住token,可以根据以下命令去master节点获取:

代码语言:javascript
代码运行次数:0
复制
root@master:/home/tioncico# kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
mdutmg.pbecp9mqcowc4b0u   4h          2022-09-08T08:12:00Z   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token
root@master:/home/tioncico#

cert-hash sha256的值可以通过openssl获取:

代码语言:javascript
代码运行次数:0
复制
root@master:/home/tioncico#  openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
61f8d9b13b94a3c7eff88e25faf1c873cfd559d1ee2f2988009ac85de11ec730
root@master:/home/tioncico#

运行join命令之后:

通过 kubectl get nodes 可查看当前集群节点(需要在master节点中执行)

代码语言:javascript
代码运行次数:0
复制
root@master:/home/tioncico# kubectl get nodes
NAME     STATUS   ROLES                  AGE     VERSION
master   Ready    control-plane,master   19h     v1.23.10
node-1   Ready    <none>                 2m27s   v1.23.10
root@master:/home/tioncico#

此时,已经增加了一个集群节点,可以通过此文章继续增加

访问nginx

不管是哪个节点,都可以根据节点ip+端口方式访问:

本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/09/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集群环境配置
  • k8s环境配置
    • host配置
    • 主机名修改(非必要)
    • 关闭防火墙
    • 关闭selinux
    • 禁用swap
    • 网络参数
    • 安装docker
    • 配置ubuntu k8s 安装源
    • 安装 kubeadm、kubelet、kubectl
  • 加入集群
  • 访问nginx
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档