kubernetes安装及基础

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、安装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

# 3、安装containerd

containerd是一个开源的容器运行时,它负责管理容器的生命周期,包括容器的创建、执行、暂停和销毁。
早期版本中通常使用Docker作为容器运行时,但由于Docker Engine自身包含了containerd,Kubernetes实际上是通过Docker的内置containerd来运行容器的。近年来,Kubernetes开始直接支持containerd作为容器运行时,这样做可以减少冗余的层次,提高系统的效率和性能。
1
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

# 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

# 3.4 安装containerd

sudo apt update
sudo apt install containerd.io
1
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

# 3.7 配置生效

sudo systemctl daemon-reload
sudo systemctl restart containerd.service
1
2
Last Updated: 3/15/2024, 8:52:34 PM