基于kubeadm搭建Kubernetes HA集群

栏目: 编程工具 · 发布时间: 5年前

内容简介:第一部分停止、禁用CentOS防火墙:

基于kubeadm搭建Kubernetes HA集群

本文从最基础的 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: 

基于kubeadm搭建Kubernetes HA集群

VirtualBox 导入 Extension_Pack:

菜单:管理>>全局设定>>扩展>>添加新包>>选择OracleVMVirtualBoxExtensionPack-6.0.8.vbox-extpack。 

基于kubeadm搭建Kubernetes HA集群

创建 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 

基于kubeadm搭建Kubernetes HA集群

创建虚拟机安装 CentOS:

VirtualBox 新建虚机

  • 名称:(自定义)

  • 类型:Linux

  • 版本:Red Hat(64-bit)

  • 内存大小:1024 MB

  • 虚拟磁盘:现在创建虚拟硬盘(默认)

  • 虚拟硬盘文件类型:VDI(VirtualBox 磁盘映像)

  • 存储在物理硬盘上:动态分配

基于kubeadm搭建Kubernetes HA集群

调整CPU设置:

  • 选中虚拟机(新创建的)>> 控制 >> 设置 >> 系统 >> 处理器

  • 处理器数量:2

基于kubeadm搭建Kubernetes HA集群

调整网络设置:

  • 选中虚拟机(新创建的)>> 控制 >> 设置 >> 网络 >> 网卡 1 >>

  • 启用网络连接:勾选

  • 连接方式:NAT 网络

  • 界面名称:nat30

基于kubeadm搭建Kubernetes HA集群

设置安装光盘:

  • 选中虚拟机

  • 控制 >> 设置 >> 存储 >> 控制器:IDE >> 没有盘片

  • 分配光驱:第二 IDE 控制器主通道 >> 圆形图标 >> 选择一个虚拟光盘文件 >> 找到 CentOS-7-x86_64-DVD-1810.iso 文件

基于kubeadm搭建Kubernetes HA集群

安装 CentOS-7-x86_64(跳过部分安装步骤明细):

  • 选中虚拟机(新创建的)>> 启动

  • 中文、简体中文(中国)

  • 最小安装

  • 没有说明的选项均为默认值

基于kubeadm搭建Kubernetes HA集群

用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、实践案例等,点击下方图片或者点击阅读原文了解详情。

基于kubeadm搭建Kubernetes HA集群


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

One Click

One Click

Richard L. Brandt / Portfolio Hardcover / 2011-10-27 / 25.95

An insightful look at how Amazon really works and how its founder and CEO makes it happen. Amazon's business model is deceptively simple: make online shopping so easy and convenient that customers ......一起来看看 《One Click》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具