kubernetes安装及基础
qinsz 3/13/2024 k8subuntu22.04
# 1、关闭swap
可通过查看内存状态确认是否开启了swap
sudo free -h
1
# 1.1、临时关闭
只在当前对话有效
sudo swapoff -a
1
# 1.2、永久关闭
注释掉/etc/fstab文件中的内容
...
# /swap.img none swap sw 0 0
...
1
2
3
2
3
需要重启计算机才能生效
# 2、安装kubernetes核心组件
# 2.1、安装相关依赖
sudo apt install -y apt-transport-https ca-certificates curl
1
# 2.2、下载用于kubernetes软件包仓库的公共签名密钥
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
1
# 2.3、添加kubernetes apt仓库
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
1
# 2.4、安装组件并锁定版本
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
1
2
3
2
3
# 3、安装containerd
containerd是一个开源的容器运行时,它负责管理容器的生命周期,包括容器的创建、执行、暂停和销毁。
早期版本中通常使用Docker作为容器运行时,但由于Docker Engine自身包含了containerd,Kubernetes实际上是通过Docker的内置containerd来运行容器的。近年来,Kubernetes开始直接支持containerd作为容器运行时,这样做可以减少冗余的层次,提高系统的效率和性能。
1
2
2
# 3.1 先安装必要工具及依赖
sudo apt install ca-certificates curl gnupg
1
# 3.2 下载用于 docker 软件包仓库的公共签名密钥
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
1
2
3
2
3
# 3.3 添加docker apt仓库
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
1
2
3
4
2
3
4
# 3.4 安装containerd
sudo apt update
sudo apt install containerd.io
1
2
2
# 3.5 生成containerd配置文件
创建 containerd的默认配置文件并保存到 /etc/containerd/config.toml
- 先切换到root用户,因为接下来使用重定向符号“>”时,sudo不会作用到“>”上,会提示没有权限
sudo -s
1
- 切换到root用户下使用下面的指令生成默认配置并覆盖原有的config.toml
containerd config default > /etc/containerd/config.toml
1
# 3.6 修改containerd配置文件
编辑/etc/containerd/config.toml文件,做如下两个修改
...
# sandbox_image修改为aliyun源
sandbox_image = "registry.aliyuncs.com/k8sxio/pause:3.8"
...
# 启动 systemd cgroup 驱动
SystemdCgroup = true
...
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 3.7 配置生效
sudo systemctl daemon-reload
sudo systemctl restart containerd.service
1
2
2