CKA笔记整理(一)

前言:

运行时 runtime 分为高级别运行时和低级别运行时,遵循oci标准。

低级别运行时:runc、lxc、gvisor、kata......(单纯的管理容器,无法管理镜像)

高级别运行时:docker、containerd、podman、cri-o、rkt......(不仅可以管理容器也可以管理镜像)

setterm -blank 0 关闭屏保

一、安装和配置Docker

rm -rf /etc/yum.repos.d/* ; wget ftp://ftp.rhce.cc/k8s/* -P /etc/yum.repo

删除原有源,替换源。

安装Dokcer

 yum -y install docker-ce

练习环境下使用如下命令进行安装

#yum -y install /root/soft/docker-rpm/* 

#systemctl enable docker --now

镜像从何处来?

自己构建、拉取。拉取国外镜像很慢,所以需要配置加速器。

配置Docker加速器:

cat > /etc/docker/daemon.json <<EOF
{ "registry-mirrors": ["https://frz7i079.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker
#配置完json文件后重启docker

此文件里只要不是最后一行,都要以逗号结束。 且最后一行,不需要逗号结束。

可使用 docker info 命令查看docker的系统级信息。

其中runtimes显示支持的低级别运行时

docker是命令名,docker是服务名,启动docker时会运行名为dockerd的进程。

二、安装containerd

删除原有源,替换源,安装containerd

rm -rf /etc/yum.repos.d/* ; wget ftp://ftp.rhce.cc/k8s/* -P /etc/yum.repos.d/

yum -y install containerd.io cri-tools

练习环境下使用如下命令进行安装:

#yum -y install /root/soft/containerd-rpm/* 

crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock
#连接到客户端
#安装crictl客户端工具

containerd config default > /etc/containerd/config.toml
#初始化Containerd配置

配置containerd:
第一:搜索mirrors,把
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
改成
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io
"]
endpoint = ["https://frz7i079.mirror.aliyuncs.com
"]

第二:搜索sandbox,把
sandbox_image = "k8s.gcr.io/pause:3.6"
改为
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"

第三:搜索SystemdCgroup,把
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
BinaryName = ""
CriuImagePath = ""
CriuPath = ""
CriuWorkPath = ""
IoGid = 0
IoUid = 0
NoNewKeyring = false
NoPivotRoot = false
Root = ""
ShimCgroup = ""
SystemdCgroup = false
改成
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true

可使用crictl info 查看crictl信息

默认低级别运行时是runc 

(2)安装nerdctl

在/root/soft/nerdctl下进行:

tar zxf nerdctl-0.23.0-linux-amd64.tar.gz  -C /usr/bin/

mkdir -p /opt/cni/bin/

tar zxf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/

创建命名空间:

mkdir /etc/nerdctl

cat > /etc/nerdctl/nerdctl.toml <<EOF
debug = false
debug_full = false
address = "unix:///var/run/containerd/containerd.sock"
namespace = "default"
#snapshotter = "stargz"
cgroup_manager = "systemd"
#hosts_dir = ["/etc/containerd/certs.d","/etc/nerdctl/certs.d"]
insecure_registry = false
EOF

需单独给nerdctl配置加速器:

mkdir  -p  /etc/containerd/certs.d/docker.io

cat > /etc/containerd/certs.d/docker.io/hosts.toml <<EOF
# server = "https://docker.io
"
[host."https://frz7i079.mirror.aliyuncs.com
"]
capabilities = ["
pull"
,
"
resolve
"]
override_path = true
EOF

(3)containerd中的命名空间(namespace)

可在配置文件/etc/nerdctl/nerdctl.toml中更改

默认为default,修改nerdctl使用k8s.io这个命名空间,理解为 nerdctl也看k8s.io里的内容。

猜你喜欢

转载自blog.csdn.net/qq_52676760/article/details/128185157