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


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
41 1
|
2月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
2月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
2月前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
127 17
|
2月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
623 1
|
2月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
76 3
|
2月前
|
Kubernetes 安全 Linux
ansible-install-k8s 之 1 初始化环境
ansible-install-k8s 之 1 初始化环境
|
2月前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
114 1
|
2月前
|
负载均衡 应用服务中间件 nginx
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
58 1
|
2月前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。

热门文章

最新文章

下一篇
无影云桌面