Kubernetes学习手札-kubernetes集群环境搭建(kubeadm 方式)
2.1 前置知识点
目前生产部署Kubernetes 集群主要有两种方式:
kubeadm
Kubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。
官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
二进制包
从github 下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。
Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。
2.2 kubeadm 部署方式介绍
kubeadm 是官方社区推出的一个用于快速部署kubernetes 集群的工具,这个工具能通过两条指令完成一个kubernetes 集群的部署:
- 创建一个Master 节点kubeadm init
- 将Node 节点加入到当前集群中$ kubeadm join
2.3 安装要求
在开始之前,部署Kubernetes 集群机器需要满足以下几个条件:
- 一台或多台机器,操作系统CentOS7.x-86_x64
- 硬件配置:2GB 或更多RAM,2 个CPU 或更多CPU,硬盘30GB 或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
- 禁止swap 分区
2.4 最终目标
- 在所有节点上安装Docker 和kubeadm
- 部署Kubernetes Master
- 部署容器网络插件
- 部署Kubernetes Node,将节点加入Kubernetes 集群中
- 部署Dashboard Web 页面,可视化查看Kubernetes 资源
2.5 准备环境
角色 | IP地址 | 组件 |
---|---|---|
k8s-master01 | 192.168.1.88 | docker,kubectl,kubeadm,kubelet |
k8s-node01 | 192.168.1.33 | docker,kubectl,kubeadm,kubelet |
k8s-node02 | 192.168.1.34 | docker,kubectl,kubeadm,kubelet |
2.6 系统初始化
2.6.1 设置系统主机名以及 Host 文件的相互解析
2.6.2 安装依赖文件(所有节点都要操作)
2.6.3 设置防火墙为 Iptables 并设置空规则(所有节点都要操作)
2.6.4 关闭 SELINUX和关闭虚拟空间(所有节点都要操作)
2.6.5 调整内核参数,对于 K8S(所有节点都要操作)
2.6.6 调整系统时区(所有节点都要操作)–可省略
2.6.7 设置 rsyslogd 和 systemd journald(所有节点都要操作)–可省略
2.6.8 kube-proxy开启ipvs的前置条件(所有节点都要操作)
2.6.9 安装 Docker 软件(所有节点都要操作)
也可参考Centos 安装Docker(含在线和离线):https://199604.com/2011 比较全,这里就快速部署
上传文件到
“` /etc/yum.repos.d/ “`目录下,也可以 代替 “` yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo “` 命令
.6.10 安装 Kubeadm (所有节点都要操作)
2.7 部署Kubernetes Master
.7.1 初始化主节点(主节点操作)
下面的操作只需要在master节点上执行即可
出现以下就是成功了:
.7.2 加入主节点以及其余工作节点
2.7.3 部署网络插件
只需要在master节点上执行即可
关于 http://quay.io 可用源很少,目前有如下镜像站
- http://quay-mirror.qiniu.com (七牛云, 推荐, 但没有找到长期支持的声明)
- http://quay.mirrors.ustc.edu.cn (中科大, 经常不可用, 不推荐)
如果你的集群安装过程中遇到了其他问题,我们可以使⽤下⾯的命令来进⾏重置: