ubuntu22.04搭建kubernetes集群

一、软件环境

ubuntu22.04
docker5:20.10.14~3-0~ubuntu-jammy
kubernetes1.23.5-00

二、安装docker

2.1 安装阿里云证书,并配置阿里云的docker源

#准备工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
#安装阿里云gpg证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add 
# 在指定目录下新建docker.list文件,添加阿里云镜像源
cd /etc/apt/sources.list.d        
sudo touch docker.list            
sudo chmod 666 docker.list
sudo echo "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" > docker.list

2.2 安装docker

# 更新软件源
sudo apt-get update && sudo apt-get upgrade
#查看版本号
sudo apt-cache madison docker-ce
#安装指定版本
sudo apt-get install docker-ce=5:20.10.14~3-0~ubuntu-jammy docker-ce-cli=5:20.10.14~3-0~ubuntu-jammy containerd.io
#配置docker,kubernetes默认设置cgroup驱动(cgroupdriver)为"systemd",而docker服务的cgroup驱动默认为"cgroupfs",建议将其修改为"systemd",与kubernetes保持一致
#修改daemon.json,在其后添加一行"exec-opts":["native.cgroupdriver=systemd"]
sudo vim /etc/docker/daemon.json
{
    "exec-opts":["native.cgroupdriver=systemd"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

三、kubernetes集群搭建

3.1 关闭swap分区

sudo vim /etc/fstab
#注释掉 /swapfile 所在行,然后重启计算机即可永久关闭swap

3.2 安装kubeadm、kubectl和kubelet

#更新apt源
sudo apt-get update
#使apt支持ssl传输
sudo apt-get install -y apt-transport-https
#下载gpg密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
#添加apt源
sudo apt-add-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
#查看可安装版本
sudo apt-cache madison kubectl
#安装指定版本
sudo apt-get install kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00
#阻止自动更新
sudo apt-mark hold kubelet kubeadm kubectl

3.3 配置master节点

#查看集群使用的容器镜像
kubeadm config images list
#拉取所需镜像
sudo kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers
#初始化
#配置项说明:
#--apiserver-advertise-address k8s 中服务apiserver的部署地址,如果不填写,默认是本机
#--image-repository 拉取的 docker 镜像源,因为初始化的时候kubeadm会去拉 k8s 的很多组件来进行部署,所以需要指定国内镜像源,下不然会拉取不到镜像
#--pod-network-cidr k8s采用的节点网络,该参数指定了为pod节点分配的虚拟ip网段
#--kubernetes-version: 这个是用来指定你要部署的 k8s 版本的,一般不用填,不过如果初始化过程中出现了因为版本不对导致的安装错误的话,可以用这个参数手动指定
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.23.5 --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.209.127
#初始化
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#查看集群节点
kubectl get nodes
#查看集群状态
kubectl get cs
#以上步骤安装完后,机器搭建起来了,但状态还是NotReady状态,master机器需要安装网络插件Calico
#下面是一个网上别人整理好的资源清单,之间运行k8s会在docker中拉起相应的服务
kubectl apply -f https://docs.projectcalico.org/v3.21/manifests/calico.yaml
#再次查看集群节点,状态变为Ready
kubectl get nodes
#查看集群状态
kubectl get cs

3.3.1若master一直处于NotReady状态查看日志出现 failed to find plugin “flannel” in path [/opt/cni/bin]

需要下载CNI插件:CNI plugins v0.8.6

github下载地址:Release CNI plugins v0.8.6 · containernetworking/plugins · GitHub

#下载到/home目录解压
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz
#复制flannel到/opt/cni/bin/
cp flannel /opt/cni/bin/
#查看节点状态
kubectl get node

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值