【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群

【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群

    • 前言
    • 前提要求
    • 利用kubeadm搭建多节点kubernetes集群
      • 配置Master节点
      • 配置Node节点
      • 检查集群搭建成功
    • 关于作者

前言

Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.

实验环境

VirtualBox
在这里插入图片描述

Windows10

Centos7 64-bit镜像

最终目标
Kubernetes v1.18.2
一Maser 两Node的多节点集群
Weave Net
在这里插入图片描述
参考资料
《kubernetes in action》


前提要求

我们再第三篇里配置好了三台机器(Master+2*Node)
请在实现第三篇之后,再开始以下操作。

利用kubeadm搭建多节点kubernetes集群

配置Master节点

打开Virtual Box检查master机器的CPU数量(它需要>2)

【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群_第1张图片

1. 先pull镜像再kubeadm init

kubeadm config images list

W0425 17:16:05.170326 102958 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
k8s.gcr.io/kube-apiserver:v1.18.2
k8s.gcr.io/kube-controller-manager:v1.18.2
k8s.gcr.io/kube-scheduler:v1.18.2
k8s.gcr.io/kube-proxy:v1.18.2
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7

此时kube init容易失败,我们需要先从阿里的库里把镜像pull下来

编写pull脚本

$ vi pullimages.sh

#!/bin/bash
images=(
kube-apiserver:v1.18.2
kube-controller-manager:v1.18.2
kube-scheduler:v1.18.2
kube-proxy:v1.18.2
pause:3.2
etcd:3.4.3-0
coredns:1.6.7
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

$ chmod +x pullimages.sh
$ ./pullimages.sh

kkubeadm初始化

kubeadm init

2. 在kubeadm init时指定镜像仓库

kubeadm init   \
--apiserver-advertise-address=192.168.1.31 \
 --image-repository registry.aliyuncs.com/google_containers \
 --service-cidr=10.1.0.0/16 

其中 --apiserver-advertise-address 为master机器的ip地址,并指定了init 时 pull image的镜像库–image-repository registry.aliyuncs.com/google_containers


kubeadm init 成功
【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群_第2张图片

tips:
注意留意此处,此处是用来添加node机器节点的

初始化kubectl

export KUBECONFIG=/etc/kubernetes/admin.conf

利用kubectl列出所有的pod

kubectl get po

【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群_第3张图片
查看node信息
可是此时node的信息是NotReady,那是因为我们还没有设置网络插件(flannel,weave)
配置容器网络(选用Weave Net容器网络插件)

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

查看node信息
在这里插入图片描述

(*)消除Master机器上的污点

默认情况下,kubernetes不会在master机器上自动部署服务(DaemonSet),如有需求可以选择清除污点

kubectl taint nodes --all node-role.kubernetes.io/master-

tips:
这种设计是合理的,master是用来作为管理集群的机器,不能让容器搭建影响到master机器的性能。

配置Node节点

对每个节点执行kubeadm join xxx即可(请根据Master kubeadm init结束后的提示来复现
我们需要添加node1和node2机器

kubeadm join 192.168.66.10:6443 --token iyv8bk.znbd90xom2owfyt2     --discovery-token-ca-cert-hash sha256:75ac4813fea57ab03145985eb8316359eab7b71c8218639d935e4d5ac9f5242f 

检查集群搭建成功

在master上列出node信息
【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群_第4张图片
node1和node2添加成功,每个node都处于Ready状态很成功!
测试集群
创建一个NodePort服务

kubectl create deployment kubia --image=luksa/kubia

kubectl expose deployment kubia --port=8080 --type=NodePort

成功运行Pod和Service
在这里插入图片描述
在这里插入图片描述

# 在Master机器上检查是否搭建成功
curl 192.168.1.31:31700
curl 192.168.1.32:31700
curl 192.168.1.33:31700

【国内教程】跟着我从零开始搭建kubernetes多节点集群(四)—— 利用kubeadm搭建多节点Kubernetes v1.18.2集群_第5张图片
成功搭建

关于作者

联系方式 MTI5MDAxNzU1NkBxcS5jb20=

你也可以通过 github | csdn | @新浪微博 关注我的动态

欢迎评论关注+点赞啊!

你可能感兴趣的:(Kubernetes,Docker)