ubuntu18搭建单机版k8s

环境配置 1、 添加kubernetes的源

  
  echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list  
  或者直接vim /etc/apt/sources.list 在后面添加deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

2、 为源申请key

执行 apt-get update 这一步一般执行都会报错 因为不同版本的keys不同,执行之后会报如下错误

查看到这个错误之后 执行sudo gpg –keyserver keyserver.ubuntu.com –recv-keys 后面是错误提示的keys 再执行 sudo gpg –export –armor 上面相同的keys | sudo apt-key add -

   注意 --在markdown 编译后会变成一条横杠,其实这里是两条横杠 

3、更新源
sudo apt-get update

4、关闭虚拟内存
sudo swapoff -a #暂时关闭 nano /etc/fstab #永久关闭,注释掉swap那一行,推荐永久关闭

5、执行安装 (sudo视操作者情况决定是否加)apt-get install kubelet kubeadm kubectl kubernetes-cni

   其中kubeadm用于初始化环境,kubectl用于操作kubelet。  

6、 启动
sudo systemctl enable kubelet && systemctl start kubelet

7、 查看版本验证是否启动
kubectl version

8、初始化

kubeadm init –image-repository registry.aliyuncs.com/google_containers0.0.0/16

执行以上命令在kubernetes v1.21.2中会报如下错误


解决方法

  1. 通过分析bug的原因

图中主要报pull image registry.aliyuncs.com/google_containers/coredns:v1.8.0没有找到

  1. 解决方案

① 通过docker将coredns镜像拉取下来
docker pull coredns/coredns:1.8.0
通过docker images查看镜像拉取情况

然后通过 docker tag 296a6d5035e2 registry.aliyuncs.com/google_containers/coredns:v1.8.0 将coredns/coredns:1.8.0镜像构建成符合条件的镜像

  1. 再次执行初始化

    kubeadm init --apiserver-advertise-address=172.25.12.89 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

至此单机版k8s搭建成功