部署方式:
Kubernetes 集群的部署方式有多种,使用批量部署工具如(ansible/saltstack)等自动化大部分部署任务或者直接手动部署二进制预编译的软件包。还有一种方式是使用kubeadm 结合 apt-get/yum 安装必要软件安装,以守护进程的方式启动在宿主机上,本次就使用 kubeadm 来部署 Kubernetes 集群。
基本环境
OS采用Ubuntu18.04
Docker 19.03.8
Kubernetes: 1.17.3*
kubeadm: v1.17.2
IP地址: | 主机名 |
---|---|
192.168.39.5 | master1 |
192.168.39.15 | master2 |
192.168.39.203 | master3 |
192.168.39.201 | node1 |
192.168.39.202 | node2 |
192.168.39.203 | node3 |
K8s官方参考文档
使用 k8s 官方提供的部署工具 kubeadm 自动安装,需要在 master 和 node 节点上
安装 docker 等组件,然后初始化,把管理端的控制服务和 node 上的服务都以 pod
的方式运行
一、
1、 设置主机名解析:
vim /etc/hosts
192.168.39.15 master1 master1.com
192.168.39.5 master2 master2.com
192.168.39.206 master3 master3.com
192.168.39.201 node1 node1.com
192.168.39.202 node2 node2.com
192.168.39.203 node3 node3.com
2、时间同步:
在集群的 Master 和各 node 同步时间,也可写入计划任务
~# ntpdate ntp.aliyun.com
或者
~# crontab -e
...
*/12 * * * * root /bin/bash ntpdate ntp.aliyun.com
3、关闭系统的防火墙并且金庸swap设备
~# swappoff -a
二、部署Kubernetes集群
2.1、可参考Kubeadm部署参考----步骤过程如下。
- 部署 HAProxy 和 Keepalived 作为 Kubernetes 管理端的访问入口,及实现访问入口高可用。
- 在 Master 及各 Node 安装 Docker、kubelet、kubectl 和 kubeadm,以守护进程方式启动 Docker 及 kubelet。
- 在其中一台 Master 上使用kubeadm init进程集群初始化。
- 在其他的 Master 上使用kubeadm join命令加入集群。
- 在各 Node 上使用kubeadm join命令加入初始化完成的集群。
- 在集群上部署网络组件,如 flannel 或者 calico 等来提供 service 网络和 pod 网络。
2.2 在各 master 节点安装 kubeadm、kubelet、kubectl、Docker
2.2.1 在阿里云配置 K8s 镜像源
~# apt update && apt-get install -y apt-transport-https
~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
~# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
~# apt update
2.2.2所有服务器点安装 kubelet kubeadm kubectl:
# apt-get update
#安装指定版本 kubeadm
查看版本信息
# apt-cache madison kubeadm
安装 kubeadm kubectl kubelet
# apt install kubeadm=1.17.3-00 kubectl=1.17.3-00 kubelet=1.17.3-00
启动并验证 kubelet
# systemctl start kubelet && systemctl enable kubelet && systemctl status kubelet
2.3 master 节点运行 kubeadm init 初始化命令:
在三台 master 中任意一台 master 进行集群初始化,而且集群初始化只需要初始化一次。
kubeadm 命令使用:
kubeadm init 命令简介:
命令使用:https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm/
Available Commands:
alpha #kubeadm 处于测试阶段的命令
completion #bash 命令补全,需要安装 bash-completion
#mkdir /data/scripts -p
#kubeadm completion bash > /data/scripts/kubeadm_comple