centos7系统-kubeadm安装k8s集群(v1.26版本)亲测有效,解决各种坑可供参考
创始人
2024-05-26 08:07:50
0

文章目录

  • 硬件要求
  • 可省略的步骤
    • 配置虚拟机ip
    • 设置阿里镜像源
  • 各服务器初始化配置
    • 配置主节点的主机名称
    • 配置从节点的主机名称
    • 配置各节点的Host文件
    • 关闭各节点的防火墙
    • 关闭selinux
    • 永久禁用各节点的交换分区
    • 同步各节点的时间
    • 将桥接的IPv4流量传递到iptables的链(三台都执行)
  • 在所有节点安装docker
  • 在所有节点安装容器运行时cri-dockerd
  • 在所有节点安装 kubenetes相关组件
  • 重启虚拟机(必要)
  • 在master节点安装部署k8s master
    • 查看国内镜像
    • 所有master节点拉取k8s镜像
    • 初始化master节点(仅在master节点执行)
  • 在集群中加入node节点(仅在node节点执行)
  • 查看集群节点信息
  • 安装集群网络(CNI)本文选择Calico
  • 问题排查
  • 使用rancher管理k8s集群
  • 更多内容请参考gitee地址

参考: Debian11之基于kubeadm安装K8S(v1.26.0) 集群

硬件要求

1、Master主机:2核CPU、4G内存、20G硬盘
2、Node主机:4+核CPU、8G+内存、40G+硬盘
2、集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
3、节点之中不可以有重复的主机名、MAC 地址或 product_uuid
4、开启机器上的某些端口
5、为了保证 kubelet 正常工作,必须禁用交换分区

可省略的步骤

配置虚拟机ip

ONBOOT=yes
IPADDR=192.168.72.139
NETMASK=255.255.255.0
GATEWAY=192.168.72.2
DNS1=8.8.8.8
DNS2=114.114.114.114
在这里插入图片描述

systemctl restart netowrk

设置阿里镜像源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除yum缓存
yum clean all
# 缓存阿里云镜像
yum makecache

各服务器初始化配置

配置主节点的主机名称

hostnamectl set-hostname k8smaster && hostname # 设置主节点1的主机名称

配置从节点的主机名称

hostnamectl set-hostname k8snode01 && hostname # 设置从节点1的主机名称

配置各节点的Host文件

#根据自己设备ip配置
vi /etc/hosts # 编辑文件,注意不能有空格
192.168.111.30 k8smaster
192.168.111.33 k8snode01

关闭各节点的防火墙

systemctl disable firewalld && systemctl stop firewalld

关闭selinux

  • 查看selinux信息

    sestatus
    

    在这里插入图片描述

  • 临时禁用
    setenforce 0

  • 永久禁用
    1、打开/etc/sysconfig/selinux文件
    2、将配置SELinux=enforcing改为SELinux=disabled

    vi /etc/sysconfig/selinux
    SELINUX=disabled
    

永久禁用各节点的交换分区

swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab # 注释掉swap那一行
free -h 查看是分区空间

同步各节点的时间

参考: K8S学习笔记之CentOS7集群使用Chrony实现时间同步

yum install chrony -y

修改配置文件

vim /etc/chrony.conf
修改时间服务器为阿里云服务器 ntp1.aliyun.com
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com iburst

启动服务

systemctl enable chronyd.service && systemctl start chronyd.service && systemctl status chronyd.service

每台节点查看时间是否一致

date 

将桥接的IPv4流量传递到iptables的链(三台都执行)

vim /etc/sysctl.d/k8s.conf 
#写入如下两行的参数
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1#使配置生效命令
sysctl --system # 生效

在所有节点安装docker

参考: centos7安装Docker详细步骤(无坑版教程)
本次安装docker版本
在这里插入图片描述
配置docker参数

vim /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://rrnv06ig.mirror.aliyuncs.com","https://reg-mirror.qiniu.com","https://docker.mirrors.ustc.edu.cn"]
}
#重启docker
systemctl daemon-reload && systemctl start docker && systemctl enable docker

查看docker信息

docker info

在所有节点安装容器运行时cri-dockerd

参考:centos7 部署 k8s1.25.3 版本 (使用cri-dockerd方式安装)

  • cri-docker git 地址:
    https://github.com/Mirantis/cri-dockerd/releases
  • 通过rpm安装:
    rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm
  • 配置cri-docker使用国内镜像
    vim /usr/lib/systemd/system/cri-docker.service
  • 修改配置如下:
    ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image registry.aliyuncs.com/google_containers/pause:3.9
  • 启动服务
    systemctl daemon-reload && systemctl start cri-docker && systemctl enable cri-docker
  • 查看服务状态
    systemctl status cri-docker

在所有节点安装 kubenetes相关组件

  • 参考:k8s–使用 kubeadm 搭建 k8s 1.25.2 版本
  • 配置yum 源
    vim /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
    
  • 安装kubeadm、kubelete、kubectl 组件
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet --now

重启虚拟机(必要)

  • 配置完前面的信息之后需要重启虚拟机,否则会造成 api-server等容器启动异常

在master节点安装部署k8s master

查看国内镜像

 kubeadm config images list --image-repository registry.aliyuncs.com/google_containers

在这里插入图片描述

所有master节点拉取k8s镜像

kubeadm config images pull --kubernetes-version=v1.26.1 --image-repository registry.aliyuncs.com/google_containers --cri-socket unix:///var/run/cri-dockerd.sock

docker images 查看镜像
在这里插入图片描述

初始化master节点(仅在master节点执行)

  • 初始化命令
kubeadm init --apiserver-advertise-address=192.168.72.139 --kubernetes-version=v1.26.1 --pod-network-cidr=10.244.0.0/16  --service-cidr=10.96.0.0/12 --token-ttl=0 --cri-socket=unix:///var/run/cri-dockerd.sock --image-repository registry.aliyuncs.com/google_containers --upload-certs --ignore-preflight-errors=all
  • 初始化成功之后的打印
    在这里插入图片描述

  • 按照提示执行如下命令

 mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

在集群中加入node节点(仅在node节点执行)

  • 为了使之前的配置生效(重启节点)
    在这里插入图片描述
    复制上图中的命令 并且设置cri-socket, 命令如下:
kubeadm join 192.168.72.139:6443 --token tbrqt5.e9xje0c0i1vv6b66 --discovery-token-ca-cert-hash sha256:f27da12089c64c1c5611ed5b6e008032e07988cc5fbbf190899314d098cfb0fb --cri-socket=unix:///var/run/cri-dockerd.sock

在这里插入图片描述

查看集群节点信息

在master节点执行如下命令

kubectl get nodes

在这里插入图片描述

安装集群网络(CNI)本文选择Calico

参考官网地址:https://docs.tigera.io/calico/3.25/getting-started/kubernetes/self-managed-onprem/onpremises
在这里插入图片描述
在这里插入图片描述
查看calico支持的kubernetes版本信息
https://docs.tigera.io/calico/3.25/getting-started/kubernetes/requirements
在这里插入图片描述

  • 安装 calico 遇到的问题以及解决方法
    在这里插入图片描述
    遇到上述报错表示calico版本和k8s版本不匹配, 可根据上述步骤下载对应的calico版本
  • 可以先下载如下版本的镜像
calico/node                 v3.25.0  
calico/pod2daemon-flexvol   v3.25.0   
calico/cni                  v3.25.0 
calico/kube-controllers     v3.25.0  
  • 安装calico网络步骤,按照官网的步骤执行如下两条命令
curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml -O
kubectl apply -f calico.yaml

结果如下:
在这里插入图片描述

  • 此时查看集群信息
kubectl get nodes
  • 查看pod信息
kubectl get pods -A 

在这里插入图片描述
此时集群状态变成Ready表示calico已经成功安装

步步踩坑啊-------------------------奖励自己不放弃,哈哈哈

问题排查

1、在安装calico网络之前coredns一直处于pending状态,

  • 查看coredns的配置文件命令
    kubectl edit cm coredns -n kube-system
  • 查看集群中的所有pod命令
    kubectl get pods -A
  • 查看pod pending状态原因,括号中内容是参数
    kubectl describe/delete/logs pod (name) -n (namespace)
  • 查看集群节点信息
    kubectl get nodes
    结论:coredns只有在网络安装成功之后才能够被调度到节点上运行,
    2、calico的pod一直处于拉取镜像失败问题导致网络一直不好
    解决:手动下载calico的docker镜像到所有节点
    calico/kube-controllers v3.25.0 5e785d005ccc 5 weeks ago 71.6MB
    calico/cni v3.25.0 d70a5947d57e 5 weeks ago 198MB
    calico/pod2daemon-flexvol v3.25.0 ed8b7bbb113f 5 weeks ago 14.6MB
    calico/node v3.25.0 08616d26b8e7 5 weeks ago 245MB
例子:docker pull calico/cni:v3.25.0
  • 所有pod都正常运行
    在这里插入图片描述
  • 节点状态变成Ready
    在这里插入图片描述

使用rancher管理k8s集群

docker打包镜像和容器

Rancher中导入新搭建的Kubernetes集群
在这里插入图片描述
在这里插入图片描述
通过kubelet下载镜像失败问题,更换docker镜像源解决

{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://rrnv06ig.mirror.aliyuncs.com","https://reg-mirror.qiniu.com","https://docker.mirrors.ustc.edu.cn"]
}

添加成功之后集群状态是Active
在这里插入图片描述

更多内容请参考gitee地址

创作不易:觉得内容不错的可以点个start,感谢支持!
gitee地址:https://gitee.com/full-stack-learn/fs/

相关内容

热门资讯

Python|位运算|数组|动... 目录 1、只出现一次的数字(位运算,数组) 示例 选项代...
张岱的人物生平 张岱的人物生平张岱(414年-484年),字景山,吴郡吴县(今江苏苏州)人。南朝齐大臣。祖父张敞,东...
西游西后传演员女人物 西游西后传演员女人物西游西后传演员女人物 孙悟空 六小龄童 唐僧 徐少华 ...
名人故事中贾岛作诗内容简介 名人故事中贾岛作诗内容简介有一次,贾岛骑驴闯了官道.他正琢磨着一句诗,名叫《题李凝幽居》全诗如下:闲...
和男朋友一起优秀的文案? 和男朋友一起优秀的文案?1.希望是惟一所有的人都共同享有的好处;一无所有的人,仍拥有希望。2.生活,...
戴玉手镯的好处 戴玉手镯好还是... 戴玉手镯的好处 戴玉手镯好还是碧玺好 女人戴玉?戴玉好还是碧玺好点佩戴手镯,以和田玉手镯为佳!相嫌滑...
依然什么意思? 依然什么意思?依然(汉语词语)依然,汉语词汇。拼音:yī    rán基本解释:副词,指照往常、依旧...
高尔基的散文诗 高尔基的散文诗《海燕》、《大学》、《母亲》、《童年》这些都是比较出名的一些代表作。
心在飞扬作者简介 心在飞扬作者简介心在飞扬作者简介如下。根据相关公开资料查询,心在飞扬是一位优秀的小说作者,他的小说作...
卡什坦卡的故事赏析? 卡什坦卡的故事赏析?讲了一只小狗的故事, 我也是近来才读到这篇小说. 作家对动物的拟人描写真是惟妙...
林绍涛为简艾拿绿豆糕是哪一集 林绍涛为简艾拿绿豆糕是哪一集第三十二集。 贾宽认为是阎帅间接导致刘映霞住了院,第二天上班,他按捺不...
小爱同学是女生吗小安同学什么意... 小爱同学是女生吗小安同学什么意思 小爱同学,小安同学说你是女生。小安是男的。
内分泌失调导致脸上长斑,怎么调... 内分泌失调导致脸上长斑,怎么调理内分泌失调导致脸上长斑,怎么调理先调理内分泌,去看中医吧,另外用好的...
《魔幻仙境》刺客,骑士人物属性... 《魔幻仙境》刺客,骑士人物属性加点魔幻仙境骑士2功1体质
很喜欢她,该怎么办? 很喜欢她,该怎么办?太冷静了!! 太理智了!爱情是需要冲劲的~不要考虑着考虑那~否则缘...
言情小说作家 言情小说作家我比较喜欢匪我思存的,很虐,很悲,还有梅子黄时雨,笙离,叶萱,还有安宁的《温暖的玄》 小...
两个以名人的名字命名的风景名胜... 两个以名人的名字命名的风景名胜?快太白楼,李白。尚志公园,赵尚志。
幼儿教育的代表人物及其著作 幼儿教育的代表人物及其著作卡尔威特的《卡尔威特的教育》,小卡尔威特,他儿子成了天才后写的《小卡尔威特...
海贼王中为什么说路飞打凯多靠霸... 海贼王中为什么说路飞打凯多靠霸气升级?凯多是靠霸气升级吗?因为之前刚到时确实打不过人家因为路飞的实力...
运气不好拜财神有用吗运气不好拜... 运气不好拜财神有用吗运气不好拜财神有没有用1、运气不好拜财神有用。2、拜财神上香前先点蜡烛,照亮人神...