下面是我配置k8s集群都步骤,我搭建的是1个主节点,三个子节点
1-11步骤是每台机器上都要执行,12之后在master机器上执行(16在节点机器上执行)
1.配置 /etc/hosts ,将你用来搭建的几台机器以 ip hostname的形式全部配置到没台机器的 /etc/hosts文件中,并保证能PING 通
2.yum update
3. 安装必要的包yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
4. 关防火墙systemctl stop firewalld && systemctl disable firewalld
5. 重置iptables iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
6. 关闭swap , swapoff -a     禁止开机启动:sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
7. 关闭selinux , setenforce 0
8. 关闭dnsmasq,  service dnsmasq stop && systemctl disable dnsmasq

9.安装三个组件 yum install kubelet kubeadm kubectl
如果不成功,需要配置yum源
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

10.配置kubelet,将/etc/sysconfig/kubelet 配置: KUBELET_EXTRA_ARGS="--fail-swap-on=false"
11.设置kubelet为开机启动 systemctl enable kubelet.service


## kubeadm 初始化命令,如果卡主在You can also perform this action in beforehand using ''kubeadm config images pull
## 可在init后面加上 --image-repository registry.aliyuncs.com/google_containers
## apiserver-advertise-address的值一般设为主节点的ip
12. kubeadm init --image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.20.2 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=主节点ip\
--ignore-preflight-errors=Swap

##成功的话会提示 你执行一些命令,包括node节点加入命令,输出结果如下
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
  export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:


##如果执行12步出错,提醒你端口被占用,执行 kubeadm reset ,还是不行的话,可能是之前部署过k8s的环境,lsof -i:port 查看端口占用
##如果是被etcd占用,kill pid ,把进程杀掉,再次执行 kubeadm init,就会成功

13.安装成功,输出结果会提示你执行一些命令,执行那些命令,我的输出结果是执行
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

14.执行 kubectl get cs 查看组件健康情况,如果schedeler和controller-manager显示unhealthy,error为
127.0.0.1:port refused,则需要通过修改 /etc/kubernetes/manifests/kube-schedeler.ymal和kube-controller-manager.yaml
文件,将 port=0的那行注释掉

15.安装网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
##如果失败需要配置/etc/hosts文件   在 https://www.ipaddress.com 查到raw.githubusercontent.com对应的ip
##然后添加进host文件:  你查到的ip raw.githubusercontent.com


16.根据 kubeadm 返回的结果 在节点机器上执行:

kubeadm join 主节点ip:port --ignore-preflight-errors=Swap --token 7iwzyb.6yvtuyzvv2yjrf8r \
    --discovery-token-ca-cert-hash sha256:0c692c505cb692712b75d77a2e1e93e0


17.然后查看集群状况,kubectl get nodes,如果成功,会看到你加入的节点显示ready
18.启动Pod, kubectl run nginx-deploy --image=nginx:1.12 --replicas=2
19.kubectl expose deployment/nginx --name=nginx-svc --port=80
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐