关于docker和k8s及组件的安装及安装源设置可以参考阿里云
docker安装:docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站
k8s源及组件:kubernetes镜像_kubernetes下载地址_kubernetes安装教程-阿里巴巴开源镜像站
注意:命令未说明哪台主机即所有节点
1. 安装docker
卸载旧版本
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
1.1. 使用apt存储安装
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 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
1.2. 安装docker包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.3. 安装后设置
1.3.1. 设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
1.3.2. 以非root用户管理docker
- 创建docker组
sudo groupadd docker
- 将当前用户添加到docker组
sudo usermod -aG docker $USER
- 注销并重新登录
2. 安装kubeadm前配置
2.1. 关闭swap
sudo swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
2.2. 修改系统内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 应用 sysctl 参数而不重新启动
sudo sysctl --system
# sysctl -p /etc/sysctl.d/k8s.conf 加载配置
2.3. 配置时间同步
apt install -y chrony
systemctl status chronyd
systemctl start chronyd
systemctl enable chronyd
date
2.4. 加载网桥过滤模块
sudo modprobe overlay
sudo modprobe br_netfilter
lsmod | grep overlay
lsmod | grep br_netfilter
2.5. 优化ulimit
cat > sudo /etc/security/limits.conf <<EOF
soft nofile 65535
hard nofile 65536
EOF
# 或者用此方法
vim /etc/security/limits.conf
soft nofile 65535
hard nofile 65536
执行 ulimit -n 65535
立即生效。
2.6. 配置ipvs模块
apt install ipset ipvsadm -y
# Ubuntu
# 检查
lsmod | grep ip_vs
sudo modprobe ip_vs
# 轮询调度算法
sudo modprobe ip_vs_rr
# 加权轮询调度算法
sudo modprobe ip_vs_wrr
# 最小连接数调度算法
sudo modprobe ip_vs_lc
# 查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
2.7. 安装及仓库配置
2.7.1. 更新索引并下载密钥
更新 apt
包索引并安装使用 Kubernetes apt
仓库所需要的包:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
# 下载签名密钥
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
在低于 Debian 12 和 Ubuntu 22.04 的发行版本中,/etc/apt/keyrings
默认不存在。 应在 curl 命令之前创建它。
2.7.2. 添加仓库
此仓库仅包含适用于 Kubernetes 1.31 的软件包
# 此操作会覆盖 /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.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
2.7.2.1. 安装k8s组件
(1)安装kubelet kubeadm kubectl
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
(2)配置kubelet的cgroup - - 可选
systemctl stop kubelet
vi /etc/sysconfig/kubelet
# 修改为
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"
2.7.3. 修改配置
vi /etc/containerd/config.toml
注释掉其中的:disabled_plugins = ["cri"]
systemctl daemon-reload
sudo systemctl restart containerd
2.8. 部署Kubernetes集群
2.8.1. 镜像下载(所有节点)
如果可以VPN上网,直接:
kubeadm config images pull
2.8.2. 集群初始化(master)
sudo kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=192.168.226.70
# 创建必要文件,使非 root 用户可以运行 kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 加入节点
kubeadm join 192.168.226.80:6443 --token jtkmbb.k47my5fsg12kymn2 --discovery-token-ca-cert-hash sha256:266f68e2e53c96b1cbcb774a779b3c1e975a1fb17c7b8e00f63b97db8f740e37 --node-role=worker
2.8.3. 安装网络插件
# 获取flannel配置文件
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
# 使用配置文件启动flannel
kubectl apply -f kube-flannel.yml
2.8.4. 查看节点信息
kubectl get nodes
3. 问题处理
3.1. 节点无法使用kubectl命令
将master节点下/etc/kubernetes/admin.conf文件下传到其他节点
mkdir -p $HOME/.kube
sudo cp -i admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3.2. 查看镜像
当前k8s使用的容器进行时为containerd,所以使用docker命令无法查看
使用命令:crictl images
可查看
告警信息处理
编辑文件 vi /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
标签:get,--,sudo,apt,etc,Ubuntu22,docker,K8s,安装
From: https://blog.csdn.net/weixin_64103654/article/details/143312113