k8s集群环境的搭建(一)

简介: k8s集群环境的搭建

一.安装前的环境规划


1.集群类型


● Kubernetes集群大致分为两类:一主多从和多主多从。

● 一主多从:一个Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。

● 多主多从:多台Master和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。


a6fc75b4fc2044448b44382c3958ddc2.png


为了测试方便,本次搭建的是一主多从类型的集群。


2.安装方式


● kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包。

● ① minikube:一个用于快速搭建单节点的kubernetes工具。

● ② kubeadm:一个用于快速搭建kubernetes集群的工具。

● ③ 二进制包:从官网上下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效。


我们需要安装kubernetes的集群环境,但是又不想过于麻烦,所以选择kubeadm方式。


3.主机规划


本案例做一主两从的k8s集群。我买不起服务器,所以创了3台虚拟机来学习。大家要进行学习的话,创建好3台虚拟机,并且选择NAT连接。


下面的一些配置根据自己电脑vMnet8的网段(NAT模式需要保证虚拟机网段与VMnet 8一致!!!)来配置,不然无法上网,就更别谈安装k8s集群了。


我查看虚拟机的网络配置(你们可能会不一样,请按如下方式查看):


98bbdb24aa7a4468a519d8bcc9e5784f.png

2d10367c1cc74188b5943fbfac68b734.png


我们上面显示网段为192.168.172.0,所以配置网络时要把IP地址设为这个网段下的IP地址,网关也是如此。

(比如IP地址可以设置192.168.172.2 ~ 192.168.172.254之间的IP地址,默认网关为192.168.172.1,子网掩码255.255.255.0)


网关是不能随便配置的!比如你的网关是192.168.0.1,那么局域网内可设的ip就是192.168.0.2~192.168.0.254

如果你的网关是192.168.1.1,那么局域网内可设的ip就是192.168.1.2~192.168.1.254。


为了方便操作,我下面3台机器的IP地址和其他信息如下,供大家参考:


image.png

下面教大家如何安装时配置虚拟机的网络:


(1)点击网络和主机名


eb279fd5660b41dabe0ce5c5b5633fea.png


(2)点击配置按钮


6bac75a2e94d42969d24d63e16321a55.png


(3)选择ipv4设置,进行如下的配置(再次提醒,下面的设置一定要根据自己电脑vMnet8的网段来设置,不要抄我的),然后保存。


68f26e44bd204121a41789647c4f1638.png


223.5.5.5是阿里云的DNS。


(4)保存后如下,然后更改主机名:


e32a680fd9ae48eab94999d41338dd94.png

d2c1c0063e2e42f1995cdc45c395399c.png


然后就可以开始安装了。


其他两台以此类推,自己安装一下吧,有什么问题,我们评论区互动。


4.搭建流程


● ① 准备 3 台机器,要求网络互通(如果是云服务器,要求私网互通;如果是虚拟机,要求网络互通)。

● ② 在 3 台机器上安装 Docker 容器化环境。

● ③ 安装 Kubernetes :

○ 3 台机器安装核心组件:kubeadm(创建集群的引导工具)、kubelet 、kubectl(程序员使用的命令行)。

○ kubelet 可以直接通过容器化的方式创建出 Kubernetes 的核心组件,如:Controller Manager、Scheduler 等。

○ 由 kubeadm 引导创建 Kubernetes 集群。


二.Kubernetes集群的安装


1.Kubernetes 和 Docker 之间的版本对应关系


Kubernetes 和 Docker 之间是有版本对应关系的,这也是一开始我踩的坑之一。下面就教大家如何查看Kubernetes 和 Docker 之间的版本对应关系。


打开官方的文档,我们这次要安装kubernetes的版本是v1.21的版本。


ef4c3ddd81f24479bb7ebd9108df7aac.png


我们找到点进去就能查看到对应安装的docker版本了。


从文档中,我们可以知道 Docker 的版本是 v20.10 ,对应的 Kubernetes 的版本是 v1.21 。


2.准备工作


(1)检查操作系统的版本和内核


cat /etc/redhat-release


用 kubeadm安装k8s集群,centos的版本得是7.5以上,不然可能会出问题。


dee6bf3c8c2f44828501a156c187564a.png


查看当前系统的内核:


uname -sr


默认的内核版本 3.10.0 实在是太低了,建议升级一下。具体操作如下:

①在 CentOS 7.x 上启用 ELRepo 仓库:


rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org


rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm


②查看可用的系统内核相关包,并安装最新主线内核版本::


yum --disablerepo="*" --enablerepo="elrepo-kernel" list available


yum -y --enablerepo=elrepo-kernel install kernel-ml

③设置默认的内核版本:


vim /etc/default/grub


GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0 # 修改此处,原来是 saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"


④重新创建内核配置:


grub2-mkconfig -o /boot/grub2/grub.cfg


⑤重启系统:


reboot


da39d340cf904919884ddd3999abcac5.png


(2)如果是虚拟机则需要让三台机器互通,最简单的做法就是关闭防火墙。


systemctl stop firewalld


systemctl disable firewalld


如果是云厂商提供的云服务器则需要让三台机器的私有 IP 互通,还需要设置安全组策略放行指定的端口。


b591ea49a9bc4976bec8eb1a37328622.png


① Master 节点:


image.png


② Node 节点:


image.png

3)设置主机名


命令:


hostnamectl set-hostname <hostname>



示例如下:


# 192.168.172.101
hostnamectl set-hostname k8s-master


# 192.168.172.102
hostnamectl set-hostname k8s-node1
# 192.168.172.103
hostnamectl set-hostname k8s-node2

e4aff77f4c8442818b02c2512e92c27f.png


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
Kubernetes Linux 应用服务中间件
Kubernetes—集群环境搭建
Kubernetes—集群环境搭建
78 0
|
8月前
|
Dragonfly 缓存 Kubernetes
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
|
3月前
|
存储 Kubernetes Docker
使用sealos快速搭建K8s集群环境
使用sealos快速搭建K8s集群环境
122 2
|
9月前
|
Kubernetes 应用服务中间件 nginx
02-Kubernetes-集群环境搭建(下)
02-Kubernetes-集群环境搭建(下)
|
9月前
|
Kubernetes 网络协议 安全
|
11月前
|
存储 Kubernetes 网络协议
使用sealos快速搭建K8s集群环境
使用sealos快速搭建K8s集群环境
1230 0
|
Kubernetes Ubuntu Shell
shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份
在基于 `k8s` 平台的容器化部署环境中,有时候需要快速的实现部署文件的迁移备份,当 `k8s` 平台部署一个 `app` 时,都会相应的产生一堆 `yaml` 文件,如果 `yaml` 文件数量较少,我们可以人工手动的方式进行拷贝,但是当 `yaml` 文件数量多,并且该 `k8s` 平台部署了多个 `app` 时,如果在采用...
433 0
shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份
|
弹性计算 Kubernetes Docker
|
运维 Kubernetes API
关于K8s集群环境工作组隔离配置多集群切换的一些笔记
+ 分享一些 K8s 中集群管理的笔记 + 博文内容涉及集群环境隔离的相关配置: + 单集群多命名空间隔离及用户认证鉴权配置 Demo + 多集群的统一管理配置,集群切换 Demo + 理解不足小伙伴帮忙指正 + 食用方式: 需要了解 K8s 集群,RBAC 鉴权,CA 认证相关知识
883 0
|
canal Kubernetes 应用服务中间件
k8s集群环境的搭建(三)
k8s集群环境的搭建
449 0
k8s集群环境的搭建(三)

推荐镜像

更多