一文学会利用Kubeadm安装Kubernetes1.20

系统 Linux
本篇教大家利用Kubeadm安装Kubernetes1.20,整体下来花费的时长比较长,过程不算曲折,node节点较折腾,但是官方文档还算是给力,另外测试时间比较久,初学不久,希望和大家共同进步。

[[390129]]

写在前面

本文暂无理论,如果按照文章安装应该没有异常,但不排除环境导致,本着先安装在实践中不断地学习的原则,写下这篇文章,文中部分来自于互联网的故障处理办法,基于kubeadm安装,如果错误,请及时指出。

正文

环境

  • 系统环境:CentOS 7.5
  • master:192.168.31.55
  • node:192.168.31.61
  • Kubernetes版本:1.20.5

kubeadm安装

1.添加国内源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo 
[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 
EOF 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

 2.安装kubeadm

yum -y install kubelet kubeadm kubectl docker 
  • 1.

3.查看镜像版本

kubeadm config images list 
  • 1.

 

4.编辑安装脚本

images=(  
    kube-apiserver:v1.20.5 
    kube-controller-manager:v1.20.5 
    kube-scheduler:v1.20.5 
    kube-proxy:v1.20.5 
    pause:3.2 
    etcd:3.4.13-0 
    coredns:1.7.0 

for imageName in ${images[@]} ; do 
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName 
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName 
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName 
done 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

 5.出现下图,开启docker服务。

systemctl start docker && systemctl enable docker 
  • 1.

kubeadm初始化集群

kubeadm init --pod-network-cidr=172.17.0.0/16 
  • 1.

 

关闭swap分区

swapoff -a 
  • 1.

 

出现异常

docker状态异常

docker logs [你的docker id] 
  • 1.

 

查看docker日志

####这里多半为selinux未关闭#### 
vim /etc/selinux/config 
  • 1.
  • 2.

 

reboot 
kubeadm reset 
  • 1.
  • 2.

hosts文件未写

添加hosts文件记录


初始化成功


如果出现该错误请执行下列命令

增加管理配置文件变量

mkdir -p $HOME/.kube 
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
chown $(id -u):$(id -g) $HOME/.kube/config 
  • 1.
  • 2.
  • 3.

 解决NotReady问题


安装flannel

如果出现超时,可以直接访问连接,直接复制粘贴,手工创建yaml文件(实在无法访问,可以私信我)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 
  • 1.

 

增加node节点

1.关闭selinux和swap(略,如上)

2.导入阿里源(略,如上)

3.安装kubeadm

4.加入K8S集群

前提条件为hosts文件已经添加,docker服务启动(systemctl enable docker && systemctl start docker)


####在master获取token及加入命令#### 
kubeadm token create --print-join-command  
####在node执行接口#### 
kubeadm join 192.168.31.55:6443 --token phuth9.n4lajzj9fx4fxvsr     --discovery-token-ca-cert-hash sha256:47860bea93955508dbf06ef8a62a3d97b02fead4f4160e3cfb1c246067c041d9 
  • 1.
  • 2.
  • 3.
  • 4.

 

获取加入命令


此时加入成功


但此时状态一直未Notready

查看kube-system下pod的情况,发现此时状态为异常状态

kubectl get pods -n kube-system 
  • 1.

 

异常pod

####查看详细信息,主要是报错信息#### 
kubectl describe pod kube-flannel-ds-tllzn  --namespace=kube-system 
  • 1.
  • 2.

 

在node节点主动拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 
  • 1.

在master节点查看相关镜像名称及标签,调整node节点标签

####记住是主节点执行该命令#### 
docker image list 
  • 1.
  • 2.

 

修改tag与master节点一致

####记住在node节点操作#### 
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 
  • 1.
  • 2.

 

修改标签

此时正常

再查看相关状态,发现kube-proxy依然有点问题,继续查看


状态异常

 因为超时,同样的方法处理

同样的方法

查看此时的状态,应该都是正常的

node正常

pod正常

总结

整体下来花费的时长比较长,过程不算曲折,node节点较折腾,但是官方文档还算是给力,另外测试时间比较久,初学不久,如果错误请包涵,共勉。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2020-08-03 08:01:50

爬虫技巧

2020-04-20 10:47:57

Redis数据开发

2021-06-28 14:13:34

OOM内存事故

2021-04-30 07:33:35

效率提升技巧

2021-04-28 07:22:13

HiveJson数组

2020-08-31 06:54:37

注解脱敏ELK

2021-06-26 09:26:01

Jupyter主题目录

2021-08-04 07:47:18

IDEJTAGSWD

2021-04-07 08:13:28

LirbeNMS开源SNMP

2025-01-14 00:00:00

场景线程数据

2023-11-01 10:49:50

Python面向对象

2023-09-26 12:22:37

队列Python

2019-03-21 09:45:11

TypeScript编程语言Javascript

2023-07-31 08:18:50

Docker参数容器

2019-11-12 09:15:18

MySQL复制拓扑Orchestrato

2021-07-30 06:51:28

Nginx运维web

2020-04-19 21:41:13

Python数据可视化

2024-09-26 09:10:08

2019-07-26 06:29:22

MySQL数据库SQL

2022-08-09 09:10:43

Kubernetes容器
点赞
收藏

51CTO技术栈公众号