天天看点

手把手教你搭建K8S集群

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

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

使用 kubeadm 安装 Kubernetes 集群

1. 系统环境配置 

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

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

手把手教你搭建K8S集群

 工作节点 1:

手把手教你搭建K8S集群

 工作节点 2

手把手教你搭建K8S集群

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

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

   1.导入公钥 public key

手把手教你搭建K8S集群

 2.安装 epel 源

手把手教你搭建K8S集群

3.查看可用版本的内核

手把手教你搭建K8S集群
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集群

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

手把手教你搭建K8S集群

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

6.设置默认启动内核

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

 工作节点 1:

手把手教你搭建K8S集群

 工作节点 2:

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

工作节点1

手把手教你搭建K8S集群

 工作节点2

手把手教你搭建K8S集群

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

(4)配置主机映射

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

ping各个主机的隐射host

手把手教你搭建K8S集群

 说明主机映射配置成功!

 (5)配置时间同步

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

管理节点:

手把手教你搭建K8S集群

 工作节点 1

手把手教你搭建K8S集群

 工作节点 2:

手把手教你搭建K8S集群

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

(6)关闭 swap 分区

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

管理节点: 

手把手教你搭建K8S集群

 工作节点 1:

手把手教你搭建K8S集群

 工作节点 2:

手把手教你搭建K8S集群

 (7)配置免密登录

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

手把手教你搭建K8S集群

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

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

手把手教你搭建K8S集群

(8)配置内核参数

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

管理节点:

手把手教你搭建K8S集群

 工作节点 1:

手把手教你搭建K8S集群

 工作节点 2:

手把手教你搭建K8S集群

 接下来就是配置yum源了

 检查并配置yum源

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

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

手把手教你搭建K8S集群

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

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

手把手教你搭建K8S集群

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

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

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

手把手教你搭建K8S集群

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

-4.下载 Docker 阿里源

手把手教你搭建K8S集群

 -5.配置 Kubernetes 阿里源

手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

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

各个工作节点

手把手教你搭建K8S集群
手把手教你搭建K8S集群

 (10)修改docker文件驱动

管理节点:

手把手教你搭建K8S集群
手把手教你搭建K8S集群

 各工作节点:

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

系统配置结束

 2.安装kubeadm、kubectl、kubelet

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

手把手教你搭建K8S集群

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

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

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群

 3.Kubernetes 集群初始化

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群
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集群
手把手教你搭建K8S集群

5. 配置访问 Kubernetes 集群 

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

手把手教你搭建K8S集群

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

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

 6. 部署 flannel 网络插件

(1)安装 flannel 网络插件

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群

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

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

(2)查看flannel网络信息

 管理节点: 

手把手教你搭建K8S集群

 各工作节点:

手把手教你搭建K8S集群
手把手教你搭建K8S集群

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集群

 -2.查看资源对象

手把手教你搭建K8S集群
手把手教你搭建K8S集群

 注意:使用 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集群

 -2.下载 Dashboard YAML 文件

手把手教你搭建K8S集群

 -3.编辑 Dashboard YAML 文件

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

手把手教你搭建K8S集群

 -4.拉取 Dashboard 镜像

手把手教你搭建K8S集群

 -5.部署 Dashboard

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

 -6.配置外网访问

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

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

 -10.获取令牌 token

手把手教你搭建K8S集群

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

手把手教你搭建K8S集群

                                                 粘贴输入 token 值

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

手把手教你搭建K8S集群

这是K8S平台搭建成功,

接下来我们部署个nginx看看

 8.部署 nginx 服务验证集群

(1)部署 nginx 服务

手把手教你搭建K8S集群

(2)从任一节点访问 nginx 服务

手把手教你搭建K8S集群
手把手教你搭建K8S集群
手把手教你搭建K8S集群

打开浏览器看看

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

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