目录
一、节点基础环境
Ⅰ、关闭防火墙
Ⅱ、关闭SElinux
Ⅲ、关闭swap
Ⅳ、 iptables
Ⅴ、域名-ip对应
二、安装所需部件
Ⅰ、docker-ce
Ⅱ、kubelet、kubectl、kubeadm下载安装
Ⅲ、拉取必要镜像
Ⅳ、Master节点安装网络组件
三、构建集群
Ⅰ、在master节点上进行初始化
(1)初始化报错
(2)解决
Ⅱ、node加入集群
(1)加入集群报错
(2)解决
Ⅲ、查看集群信息
(1)查询K8S集群节点状态
(2)查看K8S集群中Pod信息
(3)查看K8S集群组件健康状态
kubelet无法开启报错
kubelet和docker的Cgroup Driver不同导致kubelet开启失败
查看docker的Cgroup Driver
查看kubelet 的Cgroup Driver
修改docker的Cgroup Driver
修改kubelet 的Cgroup Driver
集群环境
IP节点所需部件192.168.116.23masterdocker-ce、kubeadm、kubelet、kubectl192.168.116.24node1docker-ce、kubeadm、kubelet、kubectl192.168.116.25node2docker-ce、kubeadm、kubelet、kubectl
一、节点基础环境
Ⅰ、关闭防火墙
systemctl disable --now firewalld.service
Ⅱ、关闭SElinux
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Ⅲ、关闭swap
free -m
#查看swap情况
sed -ri 's/.*swap.*/#&/' /etc/fstab
重启后生效
Ⅳ、 iptables
cat < br_netfilter EOF cat < net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system Ⅴ、域名-ip对应 添加要作为master节点的服务器IP的域名对应关系 echo "192.168.116.23 cluster-endpoint">> /etc/hosts 二、安装所需部件 Ⅰ、docker-ce 具体请参考Docker概念与基础操作 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum install -y docker-ce systemctl enable --now docker.service docker --version Ⅱ、kubelet、kubectl、kubeadm下载安装 添加yum源 cat < [kubernetes] name=Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF 进行下载,注意版本一致问题 sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 sudo systemctl enable --now kubelet Ⅲ、拉取必要镜像 kube-apiserver:v1.20.9 kube-proxy:v1.20.9 kube-controller-manager:v1.20.9 kube-scheduler:v1.20.9 coredns:1.7.0 etcd:3.4.13-0 pause:3.2 使用脚本完成镜像拉取 sudo tee ./images.sh <<-'EOF' #!/bin/bash images=( kube-apiserver:v1.20.9 kube-proxy:v1.20.9 kube-controller-manager:v1.20.9 kube-scheduler:v1.20.9 coredns:1.7.0 etcd:3.4.13-0 pause:3.2 ) for imageName in ${images[@]} ; do docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName done EOF 执行脚本 chmod +x ./images.sh && ./images.sh Ⅳ、Master节点安装网络组件 curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O kubectl apply -f calico.yaml 三、构建集群 Ⅰ、在master节点上进行初始化 kubeadm init \ --apiserver-advertise-address=192.168.116.23 \ --control-plane-endpoint=cluster-endpoint \ --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \ --kubernetes-version v1.20.9 \ --service-cidr=10.96.0.0/16 \ --pod-network-cidr=192.168.0.0/16 初始化后成功注意以下信息,上面的命令在master执行,下面的在要加入集群的node服务器上执行。 (1)初始化报错 [kubelet-check] Initial timeout of 40s passed. error execution phase upload-config/kubelet: Error writing Crisocket information for the control-plane node: timed out waiting for the condition (2)解决 swapoff -a && kubeadm reset && systemctl daemon-reload && systemctl restart kubelet && iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X 然后重新进行初始化 Ⅱ、node加入集群 在node节点服务器输入master服务器上初始化成功后加入集群的命令 (1)加入集群报错 failure loading certificate for CA: couldn't load the certificate file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory 疑似缺失证书文件 (2)解决 实际上发现,是在复制执行命令时带上了--control-plane,去掉后表示为以node服务器加入集群(摊手) Ⅲ、查看集群信息 在master节点使用kubectl命令行工具进行查看目前集群情况 kubectl命令格式: kubectl [command] [TYPE] [NAME] [flags] (1)查询K8S集群节点状态 kubectl get nodes (2)查看K8S集群中Pod信息 kubectl get pod -A (3)查看K8S集群组件健康状态 kubectl get cs 这里很明显两个大大的“Unhealthy”不健康写在面前,需要我们去修改一下端口号来解决 vim /etc/kubernetes/manifests/kube-controller-manager.yaml vim /etc/kubernetes/manifest/kube-scheduler.yaml 稍微等待一会,再次查看,这回都是healthy了 kubelet无法开启报错 kubelet和docker的Cgroup Driver不同导致kubelet开启失败 查看Cgroup Driver 查看docker的Cgroup Driver docker info | grep Driver 查看kubelet 的Cgroup Driver systemctl show --property=Environment kubelet | cat 修改docker的Cgroup Driver /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"] } 修改kubelet 的Cgroup Driver vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf –-cgroup-driver=systemd #添加或修改 systemctl daemon-reload systemctl restart docker systemctl restart kubelet 参考文章
发表评论