安装 Kubernetes 1.28.2,使用 Ubuntu20.04

一、架构设计

1. 主机规划

角色IP主机名
master192.168.0.100k8s-master
worker1192.168.0.101k8s-node1
worker2192.168.0.102k8s-node1

2. k8s 网络规划

类型CIDR
pod-network-cidr10.244.0.0/16
service-cidr10.96.0.0/12

二、基础环境配置

Tips:以下操作,所有主机均要执行

1. 配置主机名

角色指令
masterhostnamectl set-hostname k8s-master && bash
worker1hostnamectl set-hostname k8s-node1 && bash
worker2hostnamectl set-hostname k8s-node2 && bash

2. 修改 /etc/hosts 文件

echo -e "192.168.33.100 k8s-master\n192.168.33.101 k8s-node1\n192.168.33.102 k8s-node2\n" >> /etc/hosts

3.配置时间与时区

timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp no
apt install ntp -y
systemctl enable ntp

4. 关闭 Swap

# 确认 swap 是否启用
sudo swapon --show

# 暂时关闭 swap
sudo swapoff -a

# 永久关闭 swap
sed -i '/swap/d' /etc/fstab

三、Docker安装与配置

Tips:以下操作,所有主机均要执行

1. 安装 Docker

# Add Docker's official GPG key:
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

# Add the repository to Apt sources:
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

# Install docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. 配置cgroupdriver改使用systemd

# Set up cgroupdriver
cat > /etc/docker/daemon.json << EOF 
{
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl enable docker
systemctl restart docker

3. 配置containerd 改使用systemd

containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

systemctl enable containerd
systemctl restart containerd

四、CRI-Dockerd安装与配置

Tips:

  1. 由於 “Dockershim has been removed from the Kubernetes project as of release 1.24. “,故如果要使用k8s 1.23后的版本,则必须通过CRI-Dockered来协助。
  2. 以下操作,所有主机均要执行
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.4/cri-dockerd_0.3.4.3-0.ubuntu-focal_amd64.deb
dpkg -i cri-dockerd_0.3.4.3-0.ubuntu-focal_amd64.deb
systemctl enable cri-docker
systemctl restart cri-docker

五、K8S安装

Tips:以下操作,所有主机均要执行

1. 安装k8s

sudo apt-get update
# apt-transport-https may be a dummy package; if so, you can skip that package
sudo apt-get install -y apt-transport-https ca-certificates curl

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list
echo'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /'| sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubeadm kubectl kubelet 

2. 載入Kernel Modules

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

五、K8S-Master 配置

Tips:以下操作只需在 k8s-master 执行

1. 初始化

kubeadm init --kubernetes-version=1.28.2 --apiserver-advertise-address=192.168.33.100 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap --cri-socket=unix:///var/run/containerd/containerd.sock --image-repository registry.aliyuncs.com/google_containers

# --apiserver-advertise-address : k8s-master ip address
# --pod-network : pod所分配的网络地址范围
# --service-network : service所分配的网络地址范围
# --image-repository : 使用阿里云仓库

2. 初始化成功后,需注意以下4点

在这里插入图片描述

  1. 初始化成功信息
  2. 在k8s-master下执行以下操作
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/confi
  1. 需要给k8s配置 pod-network,以下使用calico
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml

wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml

# 修改 customer的 cidr值 
sed -i 's/cidr: 192.168.0.0\/16/cidr: 10.244.0.0\/16/' custom-resources.yaml

# 监控 calico-system 安装的进度
# 注意:calio安装至少需要15分钟
watch kubectl get pods -n calico-system

在这里插入图片描述
4. 提供给 k8s-worker加入的token指令

#若没记录到指令,可使用此指令产出
kubeadm token create --print-join-command

六、K8S-node 配置

Tips:

  1. 以下操作只需在 k8s-node 执行
  2. 从master复制过来的指令必须加上 --cri-socket=unix:///var/run/containerd/containerd.sock
kubeadm join 192.168.33.100:6443 --token zm0ce7.r05qqvlo89uknett --discovery-token-ca-cert-hash sha256:b9ad8484ae863b3b00dff87e594d890717d9df012a3ec17d17c61a0cc6a3f1a3 --cri-socket=unix:///var/run/containerd/containerd.sock 

七、完成 k8s 安装

  • 通过以上步骤,即完成k8s的安裝,通過以下指令可確認
    • kubectl get nodes # 获取所有nodes的状态
    • kubectl get pod -n kube-system # 获取所有kube-system的状态
      在这里插入图片描述
      在这里插入图片描述

八、參考

[1] https://kubernetes.io/
[2] https://blog.csdn.net/wuds_158/article/details/131568554
[3] https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart
[4] https://www.bilibili.com/video/BV1Lu4y1976F?p=13&spm_id_from=pageDriver&vd_source=6f2485e41422a99c922ee1f0ab8c7ba7

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值