0.准备虚拟机

在阿里云上购买了一台2核8G的虚拟机,启动kubernetes节点时会提示:可用的CPU数量至少为2,当然也可以忽略这个失败。
在这里插入图片描述
在这里插入图片描述

1.安装Docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker

kubernetes节点启动时会去验证docker是否启动。
在这里插入图片描述
参考:
CentOS Docker 安装 菜鸟教程

2.安装kubeadm、kubelet和kubectl

(1)在/etc/yum.repos.d/目录下添加kubernetes.repo,使用阿里云的镜像。

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kube*

(2)禁用 SELINUX

setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
modprobe br_netfilter 

(3)启用ip6tables

cat <<EOF >  /etc/sysctl.d/kube.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

(4)安装kubeadm、kubectl和kubelet

yum install -y  kubelet kubeadm kubectl --disableexcludes=kubernetes

在kubeadm初始化之前,通过systemctl status kubelet查看kubelet的启动状态,会发现有一些网络报错和连接不上apiserver的报错,是正常的。网络的报错是因为还没有安装网络插件,apisrever是要等到kubeadm初始化过程中才会安装启动。

(5)初始化Kubernetes

kubeadm init --pod-network-cidr=10.244.0.0/16 -v=9 --image-repository=registry.aliyuncs.com/google_containers

–apiserver-advertise-address:用于指定kube-apiserver监听的ip地址,就是 master本机IP地址。
–pod-network-cidr:用于指定Pod的网络范围; 10.244.0.0/16
–image-repository: 指定阿里云镜像仓库地址

初始化成功输出:
在这里插入图片描述
在这里插入图片描述
参考:
How to fix timeout at Waiting for the kubelet to boot up the control plane as static Pods from directory “/etc/kubernetes/manifests”

3.安装网络插件
kubectl apply -f kube-flannel.yaml

在这里插入图片描述
在这里插入图片描述

6.查看节点状态

在这里插入图片描述

5.错误排查

(1)journalctl -xefu kubelet 查看kubelet的日志
在这里插入图片描述
(2)提示:Docker的Cgroup Driver值推荐是systemed。可以通过docker info查看
在这里插入图片描述
解决方案:

cat <<EOF > /etc/docker/daemon.json
{
 "exec-opts": ["native.cgroupdriver=systemd"]
 }
 EOF
 
systemctl daemon-reload
systemctl restart docker

参考:

国内源安装kubernetes

kubelet.service启动失败

Kubernetes k8s拉取镜像失败最简单最快最完美解决方法 [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver

Logo

开源、云原生的融合云平台

更多推荐