基于Ubuntu 22.04.2,kubeadm!!!
- 先安排下docker安装
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 这两条命令单独弄个shell文件吧~
VERSION_STRING=5:20.10.24~3-0~ubuntu-jammy # 1.23版本的k8s依赖docker最高的版本是20.10,可以用这个命令查看docker版本:apt-cache madison docker-ce | awk '{ print $3 }'
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
- 安装前准备工作
sudo vi /etc/hostname # Kubernetes 使用主机名来区分集群里的节点,每个节点的 hostname 必须不能重名
# 修改下docker镜像源,如果没有这问题困扰的跳过此步骤,下面的镜像源换成自己喜欢的就好,直接拷贝没用到。。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 让 Kubernetes 能够检查、转发网络流量,你需要修改 iptables 的配置,启用“br_netfilter”模块
让 Kubernetes 能够检查、转发网络流量,你需要修改 iptables 的配置,启用“br_netfilter”模块
- 安装 kubeadm(install-kubeadm.sh)
sudo apt install -y apt-transport-https ca-certificates curl nfs-common
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
sudo apt install -y kubeadm=1.23.3-00 kubelet=1.23.3-00 kubectl=1.23.3-00
sudo apt-mark hold kubeadm kubelet kubectl
# check
kubeadm version
kubectl version --client
- 下载kubenetes组件镜像(download-kubenetes-images.sh)
# use ali registry to speed up
repo=registry.aliyuncs.com/google_containers
for name in `kubeadm config images list --kubernetes-version v1.23.3`;
do
# remove prefix
src_name=${name#k8s.gcr.io/}
src_name=${src_name#coredns/}
docker pull $repo/$src_name
# rename to fit k8s
docker tag $repo/$src_name $name
docker rmi $repo/$src_name
done
# flannel images
for name in `grep image flannel.yml |grep -v '#image' | sed 's/image://g' -`;
do
docker pull $name
done
# check
docker image
- 安装master节点
# pod-network-cidr改成自己想要的
sudo kubeadm init \
--pod-network-cidr=10.10.0.0/16 \
--kubernetes-version=v1.23.3 \
--v=5
# 输出的这些要记录下来,worker节点加入需要用到:
# Then you can join any number of worker nodes by running the following on each as root:
# kubeadm join 192.168.0.90:6443 --token qfkdqk.rocu8fgothniynz6 \
# --discovery-token-ca-cert-hash sha256:249b9759a14b66e27dc060453c44ef2a2dcc70ab33a87da9996075cfa8200d94
# enable kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# check
kubectl version
kubectl get node
# 安装网络插件
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
vim kube-flannel.yml # 修改文件里的“net-conf.json”字段,把 Network 改成刚才 kubeadm 的参数 --pod-network-cidr 设置的地址段
kubectl apply -f kube-flannel.yml
- 安装worker节点
sudo kubeadm join 192.168.0.90:6443 --token qfkdqk.rocu8fgothniynz6 \
--discovery-token-ca-cert-hash sha256:249b9759a14b66e27dc060453c44ef2a2dcc70ab33a87da9996075cfa8200d94
网友评论