搭建单master集群

使用kubeadm

3台机 centos7

2核 4G + 40G

角色IP
master39.108.157.20
node139.108.157.13
node239.108.157.31

环境

购买服务器:因为实验需要多台,但时间不用很长,本实验就购买3台按量付费。实验完毕关掉机器就行!否则会扣钱!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBO5FHSw-1661058801308)(D:\Learn\java\K8s\K8s实战.assets\image-20220820110949567.png)]

查看服务器实例状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qNalhCkU-1661058801309)(D:\Learn\java\K8s\K8s实战.assets\image-20220820111112891.png)]

打开xshell,操作比较方便!这是我实验使用的服务器和名字。
本次实验采用低配的一主二从。

k8s -master 39.108.157.20(master)

k8s -node1 39.108.157.13(salve)

k8s -node2 39.108.158.31(salve)


1、在xshell上登陆以上3台服务器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crFftMGs-1661058801310)(D:\Learn\java\K8s\K8s实战.assets\image-20220820111717779.png)]

将3台服务器上的防火墙都关闭

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J2vKVdSa-1661058801310)(D:\Learn\java\K8s\K8s实战.assets\image-20220820111849593.png)]

关闭sel

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b61gz1Tb-1661058801311)(D:\Learn\java\K8s\K8s实战.assets\image-20220820112124348.png)]

关闭swap(为了分区)在这里插入图片描述

设置主机名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVngXRX5-1661058801312)(D:\Learn\java\K8s\K8s实战.assets\image-20220820112525278.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ph0tBKLJ-1661058801312)(D:\Learn\java\K8s\K8s实战.assets\image-20220820112626095.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-217f20Yx-1661058801312)(D:\Learn\java\K8s\K8s实战.assets\image-20220820112631787.png)]

在master添加hosts

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iak9P03F-1661058801313)(D:\Learn\java\K8s\K8s实战.assets\image-20220820112811329.png)]

# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效

# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

安装yum 并同步时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m7NtLMqk-1661058801313)(D:\Learn\java\K8s\K8s实战.assets\image-20220820113034474.png)]

安装docker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tpRpKN1P-1661058801313)(D:\Learn\java\K8s\K8s实战.assets\image-20220820113554858.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDJ203ys-1661058801314)(D:\Learn\java\K8s\K8s实战.assets\image-20220820113649869.png)]

docker --version#查看版本号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSMHbXfE-1661058801314)(D:\Learn\java\K8s\K8s实战.assets\image-20220820113733469.png)]

至此,docker安装完毕

更换阿里云镜像并查看 docker info

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P0gzg2jO-1661058801315)(D:\Learn\java\K8s\K8s实战.assets\image-20220820114047672.png)]

添加阿里云yum 软件源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MEW0waK2-1661058801316)(D:\Learn\java\K8s\K8s实战.assets\image-20220820114325105.png)]

2、安装kubeadm,kubelet和kubectl

由于版本更新频繁,这里指定版本号部署:

$ sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes
$ systemctl enable kubelet #开机启动

在这里插入图片描述

3、部署Kuberneter Master

在master节点上执行

#各个节点都要执行,让大家都知道谁是主节点
#所有机器添加master域名映射,以下需要修改为自己的
echo "172.29.8.95  cluster-endpoint" >> /etc/hosts

如果执行成功了,可以在每个节点ping cluster-endpoint 通

即说明成功将各个给域名添加的映射添加到每个节点的hosts中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NNmYNS5Z-1661058801317)(D:\Learn\java\K8s\K8s实战.assets\image-20220821110654377.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84rqMuvl-1661058801317)(D:\Learn\java\K8s\K8s实战.assets\image-20220821110703822.png)]

$ kubeadm init \
  --apiserver-advertise-address=39.108.157.20 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.18.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-njygxG9P-1661058801317)(D:\Learn\java\K8s\K8s实战.assets\image-20220820115622730.png)]

至此kubeadm 初始化成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k15iCPt2-1661058801318)(D:\Learn\java\K8s\K8s实战.assets\image-20220821102945026.png)]

上图的命令要保存下来,后面将节点设置为主节点或者是子节点都是要用到这些命令

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:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities
and service account keys on each node and then running the following as root:

#主节点
  kubeadm join cluster-endpoint:6443 --token sdttbq.qgiqyltedh8njk3w \
    --discovery-token-ca-cert-hash sha256:e1bff452e492ff887d1b9a32737b8862647e314a186711a72a04a9980e9be0f0 \
    --control-plane 

#工作节点
Then you can join any number of worker nodes by running the following on each as root:

kubeadm join cluster-endpoint:6443 --token sdttbq.qgiqyltedh8njk3w \
    --discovery-token-ca-cert-hash sha256:e1bff452e492ff887d1b9a32737b8862647e314a186711a72a04a9980e9be0f0 

打开另一个窗口查看镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OP9qzJxd-1661058801318)(D:\Learn\java\K8s\K8s实战.assets\image-20220821103143451.png)]

按照提示将该节点设置为主节点,并查看节点情况。我们可以看到本节点k8smaster已经存在了。但是状态是NotReady!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AGHiMcoW-1661058801318)(D:\Learn\java\K8s\K8s实战.assets\image-20220821103415504.png)]

拉取并将配置文件应用,让集群中的节点可以相互通信

curl https://docs.projectcalico.org/manifests/calico.yaml -O

kubectl apply -f calico.yaml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SSPux38p-1661058801318)(D:\Learn\java\K8s\K8s实战.assets\image-20220821111212504.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SbSyCX4D-1661058801319)(D:\Learn\java\K8s\K8s实战.assets\image-20220821111143814.png)]

下载好网络插件后,主节点已经是就绪状态了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apkqAdhV-1661058801319)(D:\Learn\java\K8s\K8s实战.assets\image-20220821111801331.png)]

查看主节点上面pod

kubectl get pod -A

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t1R0SUbN-1661058801319)(D:\Learn\java\K8s\K8s实战.assets\image-20220821111626183.png)]

子节点也需要安装三大工具,配置的命令跟主节点的一样,这里就省略了,相关的参考上文!

在这里插入图片描述kubeadm\kubelet\kubectl[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkNU3QZH-1661058801319)(D:\Learn\java\K8s\K8s实战.assets\image-20220821105125858.png)]

4、将工作节点添加到主节点上

将刚才初始化好主节点保存下来的命令中,选择添加工作节点的命令,在子节点上执行命令,就可以添加到集群中!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-23N8TwBd-1661058801320)(D:\Learn\java\K8s\K8s实战.assets\image-20220821112004341.png)]

在主节点查看已有的节点。至此,k8s集群搭建完成!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDG3tl7D-1661058801320)(D:\Learn\java\K8s\K8s实战.assets\image-20220821112124390.png)]

历时2天,经费7快多!!真是不容易,现在体验到做实验真的也要花钱,在学校的时候没有好好利用学校的资源,真是可惜!!!

不过就是一包薯片的价格,虽然是看文档机械操作,但是中间也躺了很多次坑!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMyzc7SD-1661058801320)(D:\Learn\java\K8s\K8s实战.assets\image-20220821112247306.png)]

Logo

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

更多推荐