k8s 1.28.3 使用containerd

文章目录

环境说明

主机名称 操作系统(mac宿主机) ip地址 cpu 内存 k8s containerd runc cilium kubectl kubelet kubeadm
k8s-master01 Ubuntu 22.04.3 LTS 192.168.195.20/24 2 2 1.28 1.7.3 1.1.8 1.14.3 v1.28.2 1.28.2 1.28.2
k8s-worker01 Ubuntu 22.04.3 LTS 192.168.195.29/24 2 4 1.28 1.7.3 1.1.8 1.14.3 v1.28.2 1.28.2 1.28.2
k8s-worker02 Ubuntu 22.04.3 LTS 192.168.195.30/24 2 4 1.28 1.7.3 1.1.8 1.14.3 v1.28.2 1.28.2 1.28.2

最终结果

环境配置

时钟同步

Plain 复制代码
apt install chrony -y
systemctl enable --now chrony.service
Plain 复制代码
timedatectl set-timezone Asia/Shanghai
date

主机名称配置

Plain 复制代码
#master
hostnamectl set-hostname k8s-master01

#work1
hostnamectl set-hostname k8s-worker01

#work2
hostnamectl set-hostname k8s-worker02

主机名解析

Plain 复制代码
# vim /etc/hosts
192.168.195.20 k8s-master01
192.168.195.29 k8s-worker01
192.168.195.30 k8s-worker02

关闭swap

Plain 复制代码
swapoff -a
sed -i '/\sswap\s/s/^/#/' /etc/fstab

安装ipvs

Plain 复制代码
apt install ipset ipvsadm

cat > /etc/modules-load.d/ipvs.conf << EOF
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
br_netfilter
EOF

modprobe --all ip_vs ip_vs_rr ip_vs_wrr  ip_vs_sh  nf_conntrack br_netfilter

lsmod|grep -e ip_vs -e nf_conntrack
Plain 复制代码
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

sysctl -p

安装containerd

https://github.com/containerd/containerd/releases/tag/v1.7.3

安装containerd

Plain 复制代码
wget https://github.com/containerd/containerd/releases/download/v1.7.3/cri-containerd-1.7.3-linux-arm64.tar.gz

tar xf cri-containerd-1.7.3-linux-arm64.tar.gz -C /

生成配置

Plain 复制代码
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml

修改配置

Plain 复制代码
# vim /etc/containerd/config.toml 
            SystemdCgroup = true  #配置systemdcgroup驱动程序
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9" #因为k8s需要pause:3.9镜像,共用

开启containerd服务

Plain 复制代码
ctr image pull registry.aliyuncs.com/google_containers/pause:3.9

systemctl enable --now containerd
containerd --version

安装runc

(可忽略,因为containerd自带)

https://github.com/opencontainers/runc/releases/tag/v1.1.5

安装k8s

安装kubelet kubeadm kubectl

https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.73281b11ZWDJ2s

Plain 复制代码
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
获取kubernetes 1.28组件容器镜像
Plain 复制代码
root@k8s-master01:/etc# kubeadm config images list --image-repository=registry.aliyuncs.com/google_containers
ctr image pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.3
ctr image pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.3
ctr image pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.3
ctr image pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.3
ctr image pull registry.aliyuncs.com/google_containers/pause:3.9
ctr image pull registry.aliyuncs.com/google_containers/etcd:3.5.9-0
ctr image pull registry.aliyuncs.com/google_containers/coredns:v1.10.1

拉取镜像

Plain 复制代码
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers

初始化集群

方法一(不太会 ipvs模式)

Plain 复制代码
#打印初始化配置
kubeadm config print init-defaults --component-configs KubeletConfiguration
Plain 复制代码
advertiseAddress: 192.168.195.20
criSocket: unix:///var/run/containerd/containerd.sock
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: 1.28.3
serviceSubnet: 192.168.10.0/24

方法二(iptables模式)

Plain 复制代码
kubeadm init \
--apiserver-advertise-address=192.168.195.20  \
--kubernetes-version=v1.28.3 \
--pod-network-cidr=192.168.20.0/24 \
--service-cidr=192.168.10.0/24 \
--token-ttl=0 \
--cri-socket unix:///var/run/containerd/containerd.sock \
--upload-certs \
--image-repository=registry.aliyuncs.com/google_containers

安装cilium

官网链接:https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/

Plain 复制代码
# 下载cilium-cli
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}

#安装,等待一会
cilium install --version 1.14.3

cilium install \
  --agent-image=registry.cn-hangzhou.aliyuncs.com/cilium/cilium:v1.14.3 \
  --operator-image=registry.cn-hangzhou.aliyuncs.com/cilium/operator-generic:v1.14.3

iptable改ipvs

https://www.yuque.com/yuqueyonghudwdyw7/vhna62/fh4rdicy5ilfnsu1#《Kubernetes理论知识》

相关推荐
bukeyiwanshui1 天前
20260626 k8sControllers介绍
云原生·容器·kubernetes
能有时光1 天前
] K8s 核心组件使用指南
云原生·容器·kubernetes
云烟成雨TD1 天前
Kubernetes 系列【13】控制器:可视化操作 Deployment
云原生·容器·kubernetes
运维老郭2 天前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
gs801402 天前
记一次多 Agent 架构在单节点 K8s 触发的 PID 耗尽与 Pod 驱逐(Evicted)大摸排
容器·架构·kubernetes
bukeyiwanshui2 天前
20260701 k8s Metric Server
容器·贪心算法·kubernetes
Zhu7582 天前
在k8s集群部署ApacheHadoop单节点单数据副本
云原生·容器·kubernetes
摇滚侠2 天前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 51-60
java·云原生·kubernetes
bukeyiwanshui2 天前
20260703 K8s ECShop商城项目
云原生·容器·kubernetes