使用kubeadm部署Kubernetes v1.13.3

   kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。

这个工具能通过两条指令完成一个kubernetes集群的部署:

使用kubeadm部署Kubernetes v1.13.3

1. 安装要求    

使用kubeadm部署Kubernetes v1.13.3

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

  • 一台或多台机器,操作系统 CentOS7.x-86_x64
  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
  • 集群中所有机器之间网络互通可以访问外网,需要拉取镜像
  • 禁止swap分区

2. 目标    

使用kubeadm部署Kubernetes v1.13.3

  1. 在所有节点上安装Docker和kubeadm
  2. 部署Kubernetes Master
  3. 部署容器网络插件
  4. 部署 Kubernetes Node,将节点加入Kubernetes集群中
  5. 部署Dashboard Web页面,可视化查看Kubernetes资源

 

3. 准备环境

 

使用kubeadm部署Kubernetes v1.13.3

 

Kubernetes 架构图

使用kubeadm部署Kubernetes v1.13.3

4. 所有节点安装Docker/kubeadm/kubelet    

使用kubeadm部署Kubernetes v1.13.3

Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。

4.1 安装Docker    

使用kubeadm部署Kubernetes v1.13.3

4.2 添加阿里云YUM软件源    

使用kubeadm部署Kubernetes v1.13.3

4.3 安装kubeadm,kubelet和kubectl    

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

使用kubeadm部署Kubernetes v1.13.3

5. 部署Kubernetes Master    

使用kubeadm部署Kubernetes v1.13.3

使用kubeadm部署Kubernetes v1.13.3

由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。使用kubectl工具:

使用kubeadm部署Kubernetes v1.13.3

6. 安装Pod网络插件(CNI)    

使用kubeadm部署Kubernetes v1.13.3

使用kubeadm部署Kubernetes v1.13.3

确保能够访问到quay.io这个registery。

7. 加入Kubernetes Node    

使用kubeadm部署Kubernetes v1.13.3

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

$ kubeadm join 192.168.31.64:6443 --token l79g5t.6ov4jkddwqki1dxe discovery-tokenca-cert-hash sha256:4f07f9068c543130461c9db368d62b4aabc22105451057f887defa35f47fa076

8. 测试kubernetes集群    

使用kubeadm部署Kubernetes v1.13.3

在Kubernetes集群中创建一个pod,验证是否正常运行:

使用kubeadm部署Kubernetes v1.13.3

访问地址:http://NodeIP:Port

9. 部署 Dashboard    

使用kubeadm部署Kubernetes v1.13.3

使用kubeadm部署Kubernetes v1.13.3

默认镜像国内无法访问,修改镜像地址为:

registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部:

使用kubeadm部署Kubernetes v1.13.3

使用kubeadm部署Kubernetes v1.13.3

访问地址:http://NodeIP:30001

创建service account并绑定默认cluster-admin管理员集群角色:

$ kubectl create serviceaccount dashboard-admin -n kube-system $ kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin -serviceaccount=kube-system:dashboard-admin

$ kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk

'/dashboard-admin/{print $1}')

 

使用输出的token登录Dashboard。

 

使用kubeadm部署Kubernetes v1.13.3

按照上述步骤,即可成功部署一套k8s用于学习测试,其中很多步骤都是自动完成,想要深入了解,需要通过二进制方式安装部署,这也是目前生产上大多数采用的部署方式

 

上一篇:kubeadm方式搭建k8s集群


下一篇:使用kubeadm快速部署一个K8s集群