内容简介:第一部分停止、禁用CentOS防火墙:
本文从最基础的 VirtualBox 虚机主机开始,逐步介绍如何在自己的电脑上虚拟出多台 CentOS 7 操作系统,并使用 kubeadm 部署多 Master、多 Node 节点的 Kubernetes HA 集群。分享在整个部署过程中的重要步骤和可能遇到的问题,帮助初学的朋友更顺利的部署 Kubernetes,从而方便进行后续的 Kubernetes 各项学习与测试。
Kubernetes 常见的高可用集群部署大致分为 3 种:
-
手工部署以“进程”方式运行
-
用 kubeadm 部署以“容器”方式运行
-
手工部署为以“容器”方式运行
以“容器”方式运行有很多的优点,也是推荐的方式。
如果对以“进程”方式运行感兴趣,可以访问以下 URL 了解 etcd cluster 的部署方式:https://github.com/zhangjiongdev/k8s/blob/master/etcdsetupfor_centos7.md。
安装部署的顺序、设置和后面介绍的顺序需保持一致,在实际的测试中不要轻易打乱文档步骤的顺序和修改设置,以避免部署问题。
第一部分
简要介绍部署 Kubernetes HA cluster所需要用到的虚机的准备工作。
部署台式电脑:
-
CPU:Intel i7
-
内存:16 GB
-
操作系统:64 位 Windows 10 专业版
-
网络:可以无限制的访问国内互联网
-
虚机软件:VirtualBox 6.0.8
-
虚机操作系统镜像:CentOS-7-x86_64-DVD-1810.iso
注意:某些网络中的上网行为管理,可能会影响安装部署过程的顺利进行。
下载 VirtualBox and CentOS:
VirtualBox 主页:www.virtualbox.org
VirtualBox-6.0.8-130520-Win.exe:https://download.virtualbox.org/virtualbox/6.0.8/VirtualBox-6.0.8-130520-Win.exe
OracleVMVirtualBoxExtensionPack-6.0.8.vbox-extpack:https://download.virtualbox.org/virtualbox/6.0.8/OracleVMVirtualBoxExtensionPack-6.0.8.vbox-extpack
CentOS 主页:https://www.centos.org
CentOS-7-x8664-DVD-1810.iso:http://isoredirect.centos.org/centos/7/isos/x8664/CentOS-7-x86_64-DVD-1810.iso
安装 VirtualBox-6.0.8-130520-Win.exe:
VirtualBox 导入 Extension_Pack:
菜单:管理>>全局设定>>扩展>>添加新包>>选择OracleVMVirtualBoxExtensionPack-6.0.8.vbox-extpack。
创建 VirtualBox NAT 网络:
管理 >> 全局设定 >> 网络 >> 添加新NAT网络 >> 编辑NAT网络(新添加的)
修改:
-
网络名称:nat30
-
网络CIDR:30.0.2.0/24
-
支持 DHCP:勾选
-
支持 IPv6:勾选
端口转发 >> IPv4
名称 | 协议 | 主机IP | 主机端口 |
master1 | TCP | 0.0.0.0 | 2122 | 30.0.2.11 | 22
master2 | TCP | 0.0.0.0 | 2222 | 30.0.2.12 | 22
master3 | TCP | 0.0.0.0 | 2322 | 30.0.2.13 | 22
node1 | TCP | 0.0.0.0 | 2422 | 30.0.2.14 | 22
c1 | TCP | 0.0.0.0 | 1022 | 30.0.2.5 | 22
创建虚拟机安装 CentOS:
VirtualBox 新建虚机
-
名称:(自定义)
-
类型:Linux
-
版本:Red Hat(64-bit)
-
内存大小:1024 MB
-
虚拟磁盘:现在创建虚拟硬盘(默认)
-
虚拟硬盘文件类型:VDI(VirtualBox 磁盘映像)
-
存储在物理硬盘上:动态分配
调整CPU设置:
-
选中虚拟机(新创建的)>> 控制 >> 设置 >> 系统 >> 处理器
-
处理器数量:2
调整网络设置:
-
选中虚拟机(新创建的)>> 控制 >> 设置 >> 网络 >> 网卡 1 >>
-
启用网络连接:勾选
-
连接方式:NAT 网络
-
界面名称:nat30
设置安装光盘:
-
选中虚拟机
-
控制 >> 设置 >> 存储 >> 控制器:IDE >> 没有盘片
-
分配光驱:第二 IDE 控制器主通道 >> 圆形图标 >> 选择一个虚拟光盘文件 >> 找到 CentOS-7-x86_64-DVD-1810.iso 文件
安装 CentOS-7-x86_64(跳过部分安装步骤明细):
-
选中虚拟机(新创建的)>> 启动
-
中文、简体中文(中国)
-
最小安装
-
没有说明的选项均为默认值
用root账号登录CentOS:
启用网卡:
停止、禁用CentOS防火墙:
禁用 selinux:
禁用UseDNS:
设置静态IP地址:
4台服务器对应修改为(30.0.2.11、30.0.2.12、30.0.2.13、30.0.2.14)
修改主机名:
4台服务器需要对应的修改为(master1、master2、master3、node1):
重启服务器:
第二部分:4 台虚机安装 Docker
容器的安装是 Kubernetes 的基础,我们用的容器是 Docker。
安装一些 Docker 必要的系统工具:
添加 docker yum 源信息:
安装 Docker-ce:
启动 Docker 后台服务:
测试 Docker 版本:
目前我们安装完后的版本是 Docker version 18.09.6, build 481bc77156。
第三部分:Keepalived + HAProxy 安装配置
这是 Kubernetes HA cluster的最后一步准备工作。
三台(Master)控制平面安装 Keepalived + HAProxy。
设置环境 IP:
设置 hosts:
配置 /etc/sysconfig/modules/ipvs.modules:
安装 Keepalived + HAProxy:
在 Master1 配置启动 Keepalived+HAProxy。
配置 Keepalived:
配置 HAProxy:
启动 Keepalived 和 HAProxy:
在 Master2、Master3 配置启动 Keepalived + HAProxy。
配置 Keepalived:
配置 HAProxy:
启动 Keepalived 和 HAProxy:
第四部分:部署 Kubernetes HA cluster 控制平面
第 1 台控制平面(Master1)安装配置 Kubernetes HA 集群。
下载需要的 Kubernetes docker images:
关闭 swap:
生成公钥与私钥对:
配置 /etc/sysctl.d/k8s.conf:
设置 Kubernetes 安装源信息:
安装 kube 组件:
配置 Cgroups:
启动 kubelet:
设置初始化位置文件:
初始化:
部署完后,会显示类似以上的蓝色命令行,第一段 kubeadm join 命令是第 2、3 台 Master 加入 Kubernetes 集群用的,第二段 kubeadm join 是 Node 节点加入 Kubernetes 集群用的,两者的差异在于 Master 多了一个--experimental-control-plane参数。
设置 kube config:
查看容器:
下载 Flannel 配置:
应用 Flannel:
查看容器:
第 2、3 台控制平面(Master2、Master3)安装配置加入 Kubernetes HA 集群。
下载需要的 Kubernetes docker images:
关闭 swap:
复制公钥:
复制 CA:
设置 Kubernetes 安装源信息:
安装 kube 组件:
配置 Cgroups:
加入集群:
注意:以下是范例命令,需要根据 Master1 的实际输出命令运行。
查看容器:
第五部分:部署 Kubernetes HA cluster 数据平面
数据平面(Node1)安装配置加入 Kubernetes HA 集群。
关闭 swap:
设置环境 IP:
设置 hosts:
复制公钥:
设置 k8s.conf:
配置 /etc/sysconfig/modules/ipvs.modules:
下载容器镜像:
设置 Kubernetes repo:
设置 cgroupfs:
设置 kube config 文件:
加入集群:
注意:以下是范例命令,需要根据 Master1 的实际输出命令运行。
查看容器:
第六部分:测试一个 Nginx 无状态 Pod
创建 Nginx 无状态容器(2个副本集):
创建 Nginx 无状态容器的服务,并测试 cluster-ip:
测试 Nginx 集群是否正常运行:
Kubernetes实战培训
Kubernetes实战培训将于2019年6月28日在深圳开课,3天时间带你系统掌握Kubernetes, 学习效果不好可以继续学习。 本次培训包括:云原生介绍、微服务;Docker基础、Docker工作原理、镜像、网络、存储、数据卷、安全;Kubernetes架构、核心组件、常用对象、网络、存储、认证、服务发现、调度和服务质量保证、日志、监控、告警、Helm、实践案例等,点击下方图片或者点击阅读原文了解详情。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Elasticsearch 集群搭建和集群原理
- Zookeeper学习系列【二】Zookeeper 集群章节之集群搭建
- Spark集群环境搭建
- Zookeeper搭建集群
- FastDFS集群搭建
- Zookeeper集群环境搭建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。