CentOS 7.9 环境下搭建k8s集群(一主两从)

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

目录

一、硬件准备(假造主机)

角色主机名ip地点masterk8s-master192.168.112.10nodek8s-node1192.168.112.20nodek8s-node2192.168.112.30
CentOS Linux release 7.9.2009 (Core)
至少2核CPU、3GB以上内存
使用命令hostnamectl set-hostname临时修改主机名
二、环境准备

1、所有机器关闭防火墙


    1. systemctl stop firewalld        #关闭
    2. systemctl disable firewalld                #开机不自启
    3. systemctl status firewalld                #查看状态
    复制代码

2、所有机器关闭selinux


    1. sed -i 's/enforcing/disabled/' /etc/selinux/config
    2. setenforce 0
    复制代码

3、所有机器关闭swap


    1. swapoff -a # 临时关闭
    2. sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭
    复制代码

4、所有机器上添加主机名与ip的对应关系


    1. vim /etc/hosts
    2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    4. 192.168.112.10 k8s-master
    5. 192.168.112.20 k8s-node1
    6. 192.168.112.30 k8s-node2
    复制代码

5、在所有主机上将桥接的ipv4流量传递到iptables的链

<ul>
  1. cat > /etc/sysctl.d/k8s.conf << EOF
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. EOF
复制代码
这里从节点的kubelet.service状态报code=exited, status=1/FAILURE是正常的
3、部署master节点(主节点k8s-master)
  1. yum install wget.x86_64 -y
  2. rm -rf /etc/yum.repos.d/*
  3. wget -O /etc/yum.repos.d/centos7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  4. wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
  5. wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  6. yum install docker-ce-20.10.11 -y
  7. systemctl start docker
  8. systemctl enable docker
复制代码
记得保存好这段命令是用于将一个工作节点(worker node)加入到已存在的 Kubernetes 集群中的过程。

(1)、遇到报错:
  1. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  5. enabled=1
  6. gpgcheck=1
  7. repo_gpgcheck=1
  8. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  9. EOF
  10. yum install kubelet-1.22.2 kubeadm-1.22.2 kubectl-1.22.2 -y
  11. systemctl enable kubelet && systemctl start kubelet
复制代码
(2)、解决办法:
  1. [root@k8s-master ~]# cat > /etc/docker/daemon.json <<EOF
  2. > {
  3. >   "exec-opts": ["native.cgroupdriver=systemd"]
  4. > }
  5. > EOF
  6. [root@k8s-master ~]# systemctl daemon-reload
  7. [root@k8s-master ~]# systemctl restart docker.service
  8. [root@k8s-master ~]# systemctl restart kubelet.service
  9. [root@k8s-master ~]# Here is one example how you may list all Kubernetes containers running in docker:
  10.                 - 'docker ps -a | grep kube | grep -v pause'
  11.                 Once you have found the failing container, you can inspect its logs with:
  12.                 - 'docker logs CONTAINERID'
  13. error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
  14. To see the stack trace of this error execute with --v=5 or higher
复制代码
4、按照指示实行:
  1. kubeadm init \
  2. --apiserver-advertise-address=192.168.112.10 \
  3. --image-repository registry.aliyuncs.com/google_containers \
  4. --kubernetes-version v1.22.2 \
  5. --control-plane-endpoint k8s-master \
  6. --service-cidr=172.16.0.0/16 \
  7. --pod-network-cidr=10.244.0.0/16
复制代码
5、查看kubelet.service状态
  1. Here is one example how you may list all Kubernetes containers running in docker:
  2.                 - 'docker ps -a | grep kube | grep -v pause'
  3.                 Once you have found the failing container, you can inspect its logs with:
  4.                 - 'docker logs CONTAINERID'
  5. error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
  6. To see the stack trace of this error execute with --v=5 or higher
复制代码

6、查看节点状态为notready
  1. rm -rf /etc/containerd/config.toml
  2. systemctl restart containerd
复制代码

7、安装网络插件,官方文档:https://github.com/flannel-io/flannel
  1. [root@k8s-master ~]# mkdir -p $HOME/.kube
  2. [root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  3. [root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
  4. [root@k8s-master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
复制代码
8、添加node节点
  1. systemctl status kubelet.service
复制代码

至此一个简单的k8s集群安装完成

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表