因为k8s打算在v1.20后弃用docker(指容器运行时,而非docker容器),故打算采纳containerd作为容器运行时。

一、装置containerd和crictl

1.1 名词解释
runc:依据OCI标准来生成和运行容器的命令行工具。
containerd:容器运行时
crictl:k8s的命令行工具

1.2 装置步骤

# 1.  装置 runccurl -OL https://github.com/opencontainers/runc/releases/download/v1.0.0-rc92/runc.amd64mv runc.amd64 /usr/local/bin/runc && chmod +x /usr/local/bin/runc# 2. 装置 containerdcurl -OL https://github.com/containerd/containerd/releases/download/v1.4.3/containerd-1.4.3-linux-amd64.tar.gztar -zxvf containerd-1.4.3-linux-amd64.tar.gz -C /usr/localcurl -o /etc/systemd/system/containerd.service https://raw.githubusercontent.com/containerd/cri/master/contrib/systemd-units/containerd.service# 3. 配置 containerdmkdir -p /etc/containerdcat > /etc/containerd/config.toml << EOF[plugins]  [plugins."io.containerd.grpc.v1.cri"]    sandbox_image = "kubesphere/pause:3.2"    [plugins."io.containerd.grpc.v1.cri".registry]      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]          endpoint = ["https://registry-1.docker.io"]     ## 这里可替换成dockerhub的镜像加速器EOFsystemctl enable containerd && systemctl restart containerd# 4. 装置 crictlVERSION="v1.19.0"curl -OL https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gzsudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/binrm -f crictl-$VERSION-linux-amd64.tar.gz# 5. 配置crictlcat > /etc/crictl.yaml << EOFruntime-endpoint: unix:///run/containerd/containerd.sockimage-endpoint: unix:///run/containerd/containerd.socktimeout: 2debug: falsepull-image-on-create: falseEOF

二、部署k8s和kubesphere

# 1. 下载kubekey## 这里临时应用kubekey v1.1.0-alpha.1部署kubernetes集群,该版本为预览版,反对多container-runtime也会蕴含在后续的正式版本中。curl -OL https://github.com/kubesphere/kubekey/releases/download/v1.1.0-alpha.1/kubekey-v1.1.0-alpha.1-linux-amd64.tar.gztar -zxvf  kubekey-v1.1.0-alpha.1-linux-amd64.tar.gz# 2. 创立配置文件 ./kk create config     # 默认在同级目录下生成 config-sample.yaml    # 3. 依据实在环境信息批改配置文件vi config-sample.yaml  apiVersion: kubekey.kubesphere.io/v1alpha1kind: Clustermetadata:  name: samplespec:  hosts:  - {name: node1, address: 192.168.6.3, internalAddress: 192.168.6.3, password: xxx}  - {name: node2, address: 192.168.6.4, internalAddress: 192.168.6.4, password: xxx}  roleGroups:    etcd:    - node1    master:     - node1    worker:    - node1    - node2  controlPlaneEndpoint:    domain: lb.kubesphere.local    address: ""    port: 6443  kubernetes:    version: v1.17.9    imageRepo: kubesphere    clusterName: cluster.local    containerManager: containerd    ## 这里填入之前部署的container-runtime:containerd / crio / isula  network:    plugin: calico    kubePodsCIDR: 10.233.64.0/18    kubeServiceCIDR: 10.233.0.0/18  registry:    registryMirrors: []    insecureRegistries: []  addons: []# 4. 部署集群./kk create cluster -f config-sample.yaml  --with-kubesphere# 5. 期待集群部署实现

注:kubesphere默认账号密码是admin/P@88w0rd

参考链接:https://kubesphere.com.cn/for...