一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2

网友投稿 705 2022-10-24

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

一起学kubernetes系列(1)‌明明白白安装Kubernetes1.16.2

前言

首次安装Kubernetes我们采用kubeadm来安装单Master节点的方式,安装最新版的Kubernetes和Calico,一步一步循序渐进。

介绍

Master:集群控制管理节点,所有的命令都经由master处理。

Worker:是kubernetes集群的工作负载节点。Master为其分配工作,当某个Node宕机时,Master会将其工作负载自动转移到其他节点。

服务器配置说明

192.168.190.10 master1 4核CPU、8G内存、100G磁盘192.168.190.11 node1 8核CPU、48G内存、400G磁盘192.168.190.12 node2 8核CPU、48G内存、400G磁盘192.168.190.13 node3 8核CPU、48G内存、400G磁盘

安装的软件

系统:CentOS Linux release 7.7.1908内核:Linux master1 5.3.0-1.el7.elrepo.x86_64软件:Kubernetes 1.16.2网络:Calico 3.10.0容器:docker 18.09.9

初始化系统(需要在所有机器执行)

#修改系统内核参数cat < /etc/sysctl.d/k8s.confnet.ipv4.ip_forward = 1net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system#关闭selinuxsetenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config#禁止firewalldsystemctl stop firewalldsystemctl disable firewalld#注意不要创建交换分区swapoff -a

安装docker(需要在所有机器执行)

#安装依赖的组件yum install -y yum-utils nfs-utils device-mapper-persistent-data lvm2#添加docker 阿里云的仓库,加速下载yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#查看docker的所有版本yum list docker-ce --showduplicates | sort -r#官方文档建议支持最高的docker版本为18.09.x,所以安装该版本yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io#官方文档建议的docker配置:cgroupdriver=systemd,可提高稳定性。修改使用国内docker源mkdir /etc/dockercat > /etc/docker/daemon.json <

安装kubelet kubeadm kubectl(需要在所有机器执行)

#使用阿里云kubernetes源cat < /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF按最新版的组件yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2systemctl start kubeletsystemctl enable kubelet#注意:kubelet会启动失败,需要在 kubeadm init 的操作后,kubelet 才能正常启动。

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

#设置变量#APISERVER_NAME 不能是 master 的 hostnameexport APISERVER_NAME=apiserverexport MASTER_IP=192.168.190.10#POD_SUBNET为容器组所在的网段,不能与master节点worker节点所在的网段重叠export POD_SUBNET=10.66.0.1/16echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts#创建kubeadm的配置文件,使用阿里云的镜像源cat <kubeadm-config.yamlapiVersion: kubeadm.k8s.io/v1beta2kind: ClusterConfigurationkubernetesVersion: v1.16.2imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containerscontrolPlaneEndpoint: "${APISERVER_NAME}:6443"networking: serviceSubnet: "10.96.0.0/16" podSubnet: "${POD_SUBNET}" dnsDomain: "cluster.local"EOF#安装master节点,根据您服务器网速的情况,您需要等候 3 - 10 分钟kubeadm init --config=kubeadm-config.yaml --upload-certs#配置 kubectlrm -rf /root/.kube/mkdir /root/.kube/cp -i /etc/kubernetes/admin.conf /root/.kube/config# 安装 calico 网络插件wget https://docs.projectcalico.org/v3.10/manifests/calico.yaml --no-check-certificatesed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yamlkubectl apply -f calico.yaml

检查master节点安装状况(仅在master节点执行)

#注意:在没安装worker节点前,calico-kube-controllers,calico-node,2个coredns 这4个pod不是Running状态是正常的,其它pod需要是Running状态。watch kubectl get pod -n kube-system -o wide#查看 master 节点初始化结果kubectl get nodes -o wide#获取worker节点执行kubeadm join的命令及参数kubeadm token create --print-join-command

初始化所有的worker节点(仅在worker节点执行)

export MASTER_IP=192.168.190.10export APISERVER_NAME=apiserverecho "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts#把在master节点获取的命令复制到worker节点执行kubeadm join apiserver:6443 --token ewlmyi.wu8u8f2a0ffypuur --discovery-token-ca-cert-hash sha256:42c1c2d45f9b21d918ee7fd40acf6f7eaf595ca925d54271dbe0fd31ae75ce8d

检查是否全部安装完成(仅在master节点执行)

#必须所有pod都是Running状态才安装成功。watch kubectl get pod -n kube-system -o widekubectl get nodes -o wide

删除worker节点

#只在 worker 节点执行kubeadm reset#只在 master 节点执行kubectl delete node node1#如果需要重新初始化 master 节点,请在master节点执行 kubeadm reset 操作。

上一篇:每年三次动力电池免费维保服务,威马汽车用心关爱用户
下一篇:维远股份去年净利大增200%,切入锂电池电解液领域能分到一杯羹吗?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~