用cri-o取代docker快速搭建kubernetes集群
kubernetes自1.24起已经移除了Dockershim,不再直接使用Docker作为其容器运行时,但可以使用containerd、cri-o等运行时。相比containerd,cri-o更为轻量化,且同docker/containerd一样实现了OCI规范,docker创建的镜像同样可以用于cri-o。以下就使用cri-o作为kubernetes的容器运行时,来快速创建集群。
1. 环境准备
主要就是对操作系统进行一些设置,本次使用Ubuntu Server 22.04。
# 关闭防火墙、selinux(略)
# 关闭swap,临时关闭,重启失效。验证:free -m
sudo swapoff -a
# 关闭swap,永久生效;将包含有swap的行注释掉,通常是最后一行
sudo vi /etc/fstab
# 加载模块。要开机自启动可以通过rc.local完成
sudo modprobe br_netfilter
#网络参数配置,增加一行:net.ipv4.ip_forward=1
sudo vi /etc/sysctl.conf
sudo sysctl --system
2. 安装cri-o
cri-o的版本号已经和kubernetes保持同步,当前kubernetes版本为1.26.1,取前两段即为1.26。
export OS=xUbuntu_22.04
export VERSION=1.26
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/Release.key | sudo apt-key add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key add -
sudo apt update
sudo apt install cri-o cri-o-runc
sudo vi /etc/crio/crio.conf
# 修改pause镜像的地址,从阿里云下载,找到pause_image=行,去掉注释(行首的#号)
pause_image = "registry.aliyuncs.com/google_containers/pause:3.6"
sudo vi /etc/containers/registries.conf
# 配置容器镜像的国内仓库,加快镜像拉取速度,在末尾添加如下内容
[[registry]]
prefix = "docker.io"
location = "docker.nju.edu.cn"
# 启动crio,否则后面kubeadm拉取镜像、加入集群都会失败
sudo systemctl enable crio&&sudo systemctl start crio
3. 安装kubernetes
sudo apt install -y apt-transport-https ca-certificates curl
# 因无法访问谷歌,从阿里云下载Google Cloud 公开签名秘钥
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
# 添加 Kubernetes apt 仓库:
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://mirror.nju.edu.cn/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
4. 配置集群
# 先导出默认配置,适当修改,尤其是API服务器的IP和镜像仓库地址必须修改
kubeadm config print init-defaults > k8sconfig.yaml
# 编辑镜像仓库等配置,具体修改见下图
vi k8sconfig.yaml。
# 创建集群之前,可以先拉取所需的镜像(可选步骤)
sudo kubeadm config images pull --config k8sconfig.yaml
# 创建集群。其中lb.k8s.local是自定义域名,通过hosts文件实现。
sudo kubeadm init --config k8sconfig.yaml
完成后会有提示如何将别的节点作为master/worker加入集群,记得先修改hosts文件
最后就是安装CNI插件了,例如flannel(略)。
相关文章
- SQL Server导出表结构和数据(sql导出表结构和表数据)
- 告别单证积压!一套系统打破信息孤岛,电子化存证一键溯源!
- 速看!SQL server数据库日志文件过大怎么办?
- 云计算实战:数据备份(如何实现数据云备份)
- SQLServer收缩日志文件(sqlserver收缩日志文件是什么意思)
- RDS sql server使用DTS进行数据库迁移,同阿里云RDS进行数据库迁移
- 如何轻松搞定SAP HANA数据库备份?
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 超详细的SqlServer数据库触发器总结
- Acronis Backup (Advanced)使用示例:备份与恢复(一)