ubuntu安装kubernetes

607 阅读2分钟

环境说明

ubuntu:22.04

containerd:1.6.8

kubernetes:1.25.2

安装前提

由于kubernetes1.24以后,默认容器从docker换成了containerd,因此需要预先安装好containerd,如果还没有相关环境的,可以参考我之前的文章,点击ubuntu安装containerd,在安装containerd的文章中,环境配置和当前文章一致,请大家放心使用

安装步骤

master和node节点皆需执行

#切换root用户
sudo su -

#检查更新
apt update

#更新安装
apt upgrade -y

#设置hostname
hostnamectl set-hostname <hostname>

#设置hosts
vim /etc/hosts
# 增加下面内容
192.168.47.129 master
192.168.47.128 node01

#关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

#添加加载的内核模块
tee /etc/modules-load.d/containerd.conf<<EOF
overlay
br_netfilter
EOF

#加载内核模块
modprobe overlay
modprobe br_netfilter

#设置内核参数
tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

#应用内核参数
sysctl --system

#安装curl gnupg2 software-properties-common apt-transport-https ca-certificates
apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

#安装GPG证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

#写入软件源信息
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

#检查更新
apt update

#安装containerd,如果已安装,则忽略
# apt install -y containerd.io
#生成containetd的配置文件
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
#修改cgroup Driver为systemd
sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
#将镜像源设置为阿里云 google_containers 镜像源
sed -i 's/k8s.gcr.io/registry.aliyuncs.com\/google_containers/g' /etc/containerd/config.toml
#重新启动containerd
systemctl restart containerd
#启动containerd服务
systemctl enable containerd

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

#添加Kubernetes的apt源为阿里云的源
apt-add-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

#检查更新
apt update

#kubelet kubeadm kubectl
apt install -y kubelet kubeadm kubectl

#查看版本
kubeadm version

#开启路由功能
sysctl -w net.ipv4.ip_forward=1

单独master节点执行

# 执行init
kubeadm init \
--kubernetes-version=v1.25.2  \
--image-repository registry.aliyuncs.com/google_containers --v=5 \
--upload-certs \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

#执行成功之后,执行下面操作
#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

# 安装calico网络插件
kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"

单独node节点执行

# 在master节点执行kubeadm init成功之后,会出现对应的kubeadm join语句,直接复制之后,拿到node节点中执行即可
kubeadm join 192.168.47.129:6443 --token xxcbh2.xdulqkbvvrup3b90 \
        --discovery-token-ca-cert-hash sha256:0e10422cacb321985e26077bbaf608cc04e773ff25df3ca9bea85b6fe3146ef1 \
        --control-plane --certificate-key 130aea3340faf2ee2c4d4fe73f10d4523c3e9c87fb3a761b080ffae75559fd06
# 默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:
kubeadm token create --print-join-command