手把手教你搭建K8S集群

搭建前提条件:VMare16pro   CentOS-7-x86_64-DVD-2009.iso镜像文件, 远程连接工具Xshell或者MobaXterm

首先创建三台centos7的虚拟机,装虚拟机的话大家可以参照网上资料,非常容易。

使用 kubeadm 安装 Kubernetes 集群

1 系统环境配置 

在各主机节点上均需要配置。 

(1)查看当前系统的内核版本,以及主机名是否符合配置要求管理节点

手把手教你搭建K8S集群_第1张图片

 工作节点 1:

手把手教你搭建K8S集群_第2张图片

 工作节点 2

手把手教你搭建K8S集群_第3张图片

    各主机当前系统的内核版本均为 Linux 3.10.0-1160.62.1.el7.x86_64,而且主机名也符合配置要求。 

(2)升级当前系统的内核(不升级内核不支持 ipvlan,有些网络会有问题! )

   1.导入公钥 public key

2f27d9636bc94f7f86814803f8b38d02.png

 2.安装 epel 源

手把手教你搭建K8S集群_第4张图片

3.查看可用版本的内核

 手把手教你搭建K8S集群_第5张图片

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 
--disablerepo="*":禁用所有 repo 配置文件 
--enablerepo="elrepo-kernel":仅使用仓库名为 elrepo-kernel 的配置文件 kernel-ml 中的 ml 是 main line stable 的缩写,elrepo-kernel 中罗列出来的是最新的稳定主线版本。 
kernel-lt 中的 lt 是 long term support 的缩写,elrepo-kernel 中罗列出来的长期支持版本。 

4. 选择安装 ml 最新版本的内核 

手把手教你搭建K8S集群_第6张图片

5.查看系统上可以用的内核顺序

 ebeb3164ad6b48e3ade73868841951f1.png

 注意:前面的 0、1、2 等代表编号

6.设置默认启动内核

724820c3e62d419e802c63f01a580fb9.png

7. 重启并查看内核升级情况管理节点:

5b2f1d49ef84435880fa09c94dee6eaa.png

 工作节点 1:

手把手教你搭建K8S集群_第7张图片

 工作节点 2:

手把手教你搭建K8S集群_第8张图片

(3) 检查是否已关闭防火墙及禁用 SELinux

手把手教你搭建K8S集群_第9张图片

工作节点1

手把手教你搭建K8S集群_第10张图片

 工作节点2

手把手教你搭建K8S集群_第11张图片

 各主机系统均已关闭防火墙并禁用 SELinux。

(4)配置主机映射

手把手教你搭建K8S集群_第12张图片

 将/etc/hosts 复制到其他主机节点。

手把手教你搭建K8S集群_第13张图片

ping各个主机的隐射host

手把手教你搭建K8S集群_第14张图片

 说明主机映射配置成功!

 (5)配置时间同步

在各主机上进行时钟同步,时钟同步服务器可自行配置,此处选择阿里云的时钟服务器。

管理节点:

80f227eeed104797acd2b4ec2aac7b1e.png

 工作节点 1

c5478aac3c6b48b6b1fd4570a0ea2349.png

 工作节点 2:

18fe33c38191468695087e630a3e126d.png

 检查系统是否已安装 ntpdate 软件包,若未安装,则可以执行“yum -y install ntpdate”命令进行安装。

(6)关闭 swap 分区

在所有节点上均要关闭 swap。

管理节点: 

手把手教你搭建K8S集群_第15张图片

 工作节点 1:

手把手教你搭建K8S集群_第16张图片

 工作节点 2:

手把手教你搭建K8S集群_第17张图片

 (7)配置免密登录

在本地主机上使用 ssh-keygen 产生公钥私钥对。

手把手教你搭建K8S集群_第18张图片

 

执行 ssh-kengen 命令后会在~/.ssh/目录下生成两个文件:id_rsa 和 id_rsa.pub,第一个是私钥文件,第二个是公钥文件。 

使用 ssh-copy-id 命令将公钥复制到远程主机上。 

手把手教你搭建K8S集群_第19张图片

(8)配置内核参数

开启 IP 转发,并允许 iptables 对 bridge 流量进行处理。 

管理节点:

手把手教你搭建K8S集群_第20张图片

 工作节点 1:

手把手教你搭建K8S集群_第21张图片

 工作节点 2:

手把手教你搭建K8S集群_第22张图片

 接下来就是配置yum源了

 检查并配置yum源

若下面有的源已配置,则可以略过相应的操作!首先,配置管理节点的yum源:

-1.检查 CentOS 7 本地 YUM 源是否已配置

手把手教你搭建K8S集群_第23张图片

 若未配置 CentOS 7 本地 YUM 源,则需要先行配置。

-2.检查 wget 下载工具是否安装

abf33bca36ec4fabac384e98dd3a81d5.png

 若未安装 wget 工具,则使用 yum -y install wget 命令进行安装。

-3.下载 CentOS 7 阿里源并配置

下载 CentOS 7 阿里源 http://mirrors.aliyun.com/repo/Centos-7.repo,注意区分大小写。

手把手教你搭建K8S集群_第24张图片

 将 CentOS 7 源文件 CentOS-Base.repo 中的 mirrors.cloud.aliyuncs.com 全部替换为 mirrors.aliyun.com

-4.下载 Docker 阿里源

手把手教你搭建K8S集群_第25张图片

 -5.配置 Kubernetes 阿里源

手把手教你搭建K8S集群_第26张图片

 b538c97b4ce74795805356d05721347b.png

 其次,配置各工作节点的 YUM 源:将管理节点的 YUM 源配置文件复制到各工作节点的相应位置

手把手教你搭建K8S集群_第27张图片

 手把手教你搭建K8S集群_第28张图片

 手把手教你搭建K8S集群_第29张图片

 手把手教你搭建K8S集群_第30张图片

 (9)检查 Docker 服务是否安装管理节点

手把手教你搭建K8S集群_第31张图片

 当前系统已安装 Docker 服务,且已配置阿里云加速器。若未安装,则使用“yum -y install docker-ce”命令进行安装。

各个工作节点

手把手教你搭建K8S集群_第32张图片

 手把手教你搭建K8S集群_第33张图片

 (10)修改docker文件驱动

管理节点:

手把手教你搭建K8S集群_第34张图片

 手把手教你搭建K8S集群_第35张图片

 各工作节点:

手把手教你搭建K8S集群_第36张图片

 d7bec643de75456989e901be7cf34f72.png

 d7241cb476a94473a2f15ff8c0e4449d.png

 

系统配置结束

 2.安装kubeadm、kubectl、kubelet

(1)查看 kubernetes 版本登录官网(https://v1-23.docs.kubernetes.io/releases/)查看 kubernetes 最近版本。

a47f11e121c04f28b43f3988d91bc64d.png

 这里以 kubernetes 1.23.5 版本为例安装说明。

(2)在所有节点上安装 kubeadm、kubectl、kubelet,并设置开机自动启动 kubelet 服务

-1.在管理节点 master200250229 节点上执行

手把手教你搭建K8S集群_第37张图片

262aceb30d724477a7e42719f12a5443.png

 -2.在工作节点 node200250229-1 节点上执行

手把手教你搭建K8S集群_第38张图片

826a7447a41341f095b48d3dad33c61b.png

4fa24041a12047768af7f5223380b839.png

 -3.在工作节点 node200250229-2 节点上执行

手把手教你搭建K8S集群_第39张图片

2e95c42de06a44fb94acb5e396885d2d.png

 (3)kubectl 和 kebuadm 命令 Tab 键补齐 kubectl 和 kebuadm 命令 Tab 键补齐,默认不补齐。管理节点:

1a50475fc623473bbb973c475eece365.png

 退出当前终端生效。各工作节点:

c2beea5c730e4845858aedca80791558.png

e67e3f57829e4bf98aa7b484ac1f84d5.png

 3.Kubernetes 集群初始化

在 master200250229 节点主机上使用 kubeadm 初始化 Kubernetes 集群

手把手教你搭建K8S集群_第40张图片 手把手教你搭建K8S集群_第41张图片

 

kubeadm init --kubernetes-version=1.23.5 \ 
--apiserver-advertise-address=172.16.0.100 \ 
--image-repository registry.aliyuncs.com/google_containers \ 
--pod-network-cidr=10.244.0.0/16 
参数说明如下: 
--kubernetes-version:用于指定 k8s 版本; 
--apiserver-advertise-address:用于指定 kube-apiserver 监听的 ip 地址,就是 master 节点主机 IP 地址; 
--image-repository:指定阿里云镜像仓库地址; 
--service-cidr:用于指定 SVC 的网络范围; 
--pod-network-cidr:用于指定 Pod 的网络范围。其中,10.244.0.0/16 为 Flannel 网络的默认网段。 
将最后面的 kubeadm join 命令内容保存下来,工作节点加入到集群中时需要用到此命令。 

4.节点加入 Kubernetes 集群

将 node200250229-1、node200250229-2 节点主机加入 Kubernetes 集群

手把手教你搭建K8S集群_第42张图片

手把手教你搭建K8S集群_第43张图片5 配置访问 Kubernetes 集群 

(1)配置管理节点访问集群

手把手教你搭建K8S集群_第44张图片

 集群状态为未就绪(NotReady),说明当前集群尚未安装网络插件。

(2)配置工作节点访问集群

手把手教你搭建K8S集群_第45张图片

d35d3638d8ea4b34a3526e7329da1b3b.png

 348bf7f47dec44ae8824242ab7574160.png

 6. 部署 flannel 网络插件

(1)安装 flannel 网络插件

只需要在 master200250229 管理节点上安装网络插件,。

手把手教你搭建K8S集群_第46张图片

 手把手教你搭建K8S集群_第47张图片

 过了一会儿,在各节点上执行“kubectl get nodes”命令查看节点状态。

手把手教你搭建K8S集群_第48张图片

 手把手教你搭建K8S集群_第49张图片

 手把手教你搭建K8S集群_第50张图片

(2)查看flannel网络信息

 管理节点: 

手把手教你搭建K8S集群_第51张图片

 各工作节点:

手把手教你搭建K8S集群_第52张图片

 手把手教你搭建K8S集群_第53张图片

 

VXLAN 是 Flannel 默认和推荐的模式。当我们使用默认配置安装 Flannel 时,它会为每个节点分配一个

24 位子网,并在每个节点上创建两张虚机网卡:cni0 和 flannel.1。cni0 是一个网桥设备,类似于 docker0,

节点上所有的 Pod 都通过 veth pair 的形式与 cni0 相连。flannel.1 则是一个 VXLAN 类型的设备,充当 VTEP

(VXLAN Tunnel Endpoints,VXLAN 隧道端点)的角色,实现对 VXLAN 报文的封包解包。

(3)查看集群状态

-1查看组件状态

手把手教你搭建K8S集群_第54张图片

 -2.查看资源对象

手把手教你搭建K8S集群_第55张图片

 手把手教你搭建K8S集群_第56张图片

 注意:使用 kubectl get pod -n kube-system 命令查看集群状态,可能会出现 Pending、ContainerCreating、CrashLoopBackOff、Error、Init:ImagePullBackOff 等异常信息,原因可能内核版本较低、镜像拉取失败等。

7.部署 Dashboard 管理工具Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到Kubernetes集群中,也可以对容器应用进行排错,还能管理集群本身及其附属资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment、Job 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。 

(1)安装 Dashboard 监控界面仅需在 200250229-master 管理节点上安装 Dashboard。

-1.从官网查找与 kubernetes 对应的 Dashboard 版本,从 https://github.com/kubernetes/dashboard/releases 查找与 kubernetes v1.23.5 对应的 Dashboard 版本。

 手把手教你搭建K8S集群_第57张图片

 -2.下载 Dashboard YAML 文件

手把手教你搭建K8S集群_第58张图片

 -3.编辑 Dashboard YAML 文件

由于默认的镜像仓库在国外可能无法访问,因此修改 YAML 文件中的镜像地址。

手把手教你搭建K8S集群_第59张图片

 -4.拉取 Dashboard 镜像

手把手教你搭建K8S集群_第60张图片

 -5.部署 Dashboard

手把手教你搭建K8S集群_第61张图片

 手把手教你搭建K8S集群_第62张图片

 手把手教你搭建K8S集群_第63张图片

 -6.配置外网访问

配置对外暴露端口,将 type: ClusterIP 改为 type: NodePort,使外部可以通过 https://NodeIp:NodePort访问 Dashboard。

手把手教你搭建K8S集群_第64张图片

 -7.检查相关服务的运行状态,获取对外暴露端口

手把手教你搭建K8S集群_第65张图片

-8. 使用浏览器访问 Dashboard  使用 Firefox 浏览器访问 https://172.16.0.100:30534,进入 Dashboard 登录界面

手把手教你搭建K8S集群_第66张图片

-9. 创建服务用户、集群角色绑定

手把手教你搭建K8S集群_第67张图片

 -10.获取令牌 token

手把手教你搭建K8S集群_第68张图片

-11. 使用 token 认证进行登录复制 token 值,在 Dashboard 登录界面的“输入 token”文本框中粘贴 token 值后,单击“登录”按钮

手把手教你搭建K8S集群_第69张图片

                                                 粘贴输入 token 值

在 Dashboard 登录界面粘贴 token 值后,单击“登录”按钮,进入 Kubernetes 主界面

手把手教你搭建K8S集群_第70张图片

这是K8S平台搭建成功,

接下来我们部署个nginx看看

 8.部署 nginx 服务验证集群

(1)部署 nginx 服务

手把手教你搭建K8S集群_第71张图片(2)从任一节点访问 nginx 服务

手把手教你搭建K8S集群_第72张图片

 

 手把手教你搭建K8S集群_第73张图片

 手把手教你搭建K8S集群_第74张图片

打开浏览器看看

 或者在在linux主机上输入curl http://172.22.29.100:31755 curl http://172.22.29.101:31755 http://172.22.29.102:31755看看

好了,k8s平台就搭建好了,能看到这,我就很欣慰了搭建过程有点长。恭喜你!!!

 

你可能感兴趣的:(k8s技术学习,学习日记,容器部署常用技术,linux,运维,服务器)