[记录一波云原生学习 - 部署篇] kubeadm集群

kubeadm环境

整个过程需要科学上网,自己找教程(前提)

三台ubuntu-22.04.2-live-server-amd64

  • 192.168.60.100 master 2c4g 45g
  • 192.168.60.101 node1 2c4g 45g
  • 192.168.60.102 node2 2c4g 45g

docker v20.10.13 (kube工具v1.23.3版本对应20.10,更高的版本好像不支持)

kubeadm、kubelet、kubectl v1.23.3

连接工具我用的是自己Windows主机的cmd,可以用其他工具,比如xshell finalshell等

虚拟机工具 vmware

安装master节点

修改主机名

sudo vi /etc/hostname

安装docker
# 更新apt
apt update

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirror.nju.edu.cn/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
# 安装最新版
sudo apt-get update
sudo apt-get install docker-ce

# 安装指定版本 
apt-cache madison docker-ce | awk '{ print $3 }' // 查看版本列表
	5:24.0.6-1~ubuntu.22.04~jammy
	5:24.0.5-1~ubuntu.22.04~jammy
	......
	5:20.10.13~3-0~ubuntu-jammy
# v20.10.13
VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

docker配置

vim /etc/docker/daemon.json
{
  "regitry-mirrors": [
                "https://registry.hub.docker.com",
                "http://hub-mirror.c.163.com",
                "https://docker.mirrors.ustc.edu.cn",
                "https://registry.docker-cn.com",
        ],
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
                "max-size": "100m"
        },
        "storage-driver": "overlay2"
}

systemctl enable docker
systemctl start docker

验证docker

docker info # 查看docker信息

请添加图片描述

修改网络配置
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1 # better than modify /etc/sysctl.conf
EOF

sudo sysctl --system
关闭swap分区
sudo swapoff -a
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
重启主机

reboot

安装kubeadm
sudo apt install -y apt-transport-https ca-certificates curl

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sudo apt update

# 安装kubeadm、kubelet和kubectl 1.23.3版本
sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00

验证kubeadm

kubectl version --client

请添加图片描述

锁定kube工具,避免更新冲突

sudo apt-mark hold kubeadm kubelet kubectl

配置worker节点

这时候直接关闭虚拟机,使用VMware克隆master主机即可,简化操作

安装master节点
# pod网段10.10.0.0/16 
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.10.0.0/16 --apiserver-advertise-address=192.168.60.100 --kubernetes-version=v1.23.3

等一段时间,成功后会有提示

按提示操作命令

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
  
Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

然后保存这段命令,后续要这个让worker节点加入集群

kubeadm join 192.168.60.100:6443 --token frzoza.y7p5dqkicwv1s25w \
        --discovery-token-ca-cert-hash sha256:53ff16a6562982161061cced274b7cd430995807e6046e3304872b0dc04c08c0

验证是否成功,如图

kubectl get node

请添加图片描述

安装Flannel网络插件

下载yaml文件 https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

修改里面的配置

  net-conf.json: |
    {
      "Network": "10.10.0.0/16", # 这里,改为pod网段
      "Backend": {
        "Type": "vxlan"
      }
    }

启动flannel网络

kubectl apply -f kube-flannel.yml

等一会儿,验证是否成功,如图

kubectl get node

请添加图片描述

加入worker节点

在另外两台worker机子上,使用命令

sudo kubeadm join 192.168.60.100:6443 --token frzoza.y7p5dqkicwv1s25w
–discovery-token-ca-cert-hash sha256:53ff16a6562982161061cced274b7cd430995807e6046e3304872b0dc04c08c0

验证

kubectl get nodes

请添加图片描述

大功告成!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值