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

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

使用 kubeadm 安装 Kubernetes 集群

1 系统环境配置 

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

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定

 工作节点 1:

kubernetes pv 绑定 kubernetes搭建_linux_02

 工作节点 2

kubernetes pv 绑定 kubernetes搭建_CentOS_03

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

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

   1.导入公钥 public key

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_04

 2.安装 epel 源

kubernetes pv 绑定 kubernetes搭建_运维_05

3.查看可用版本的内核

 

kubernetes pv 绑定 kubernetes搭建_linux_06

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 最新版本的内核 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_07

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

 

kubernetes pv 绑定 kubernetes搭建_服务器_08

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

6.设置默认启动内核

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_09

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

kubernetes pv 绑定 kubernetes搭建_服务器_10

 工作节点 1:

kubernetes pv 绑定 kubernetes搭建_运维_11

 工作节点 2:

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_12

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

kubernetes pv 绑定 kubernetes搭建_CentOS_13

工作节点1

kubernetes pv 绑定 kubernetes搭建_运维_14

 工作节点2

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_15

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

(4)配置主机映射

kubernetes pv 绑定 kubernetes搭建_运维_16

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

kubernetes pv 绑定 kubernetes搭建_服务器_17

ping各个主机的隐射host

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_18

 说明主机映射配置成功!

 (5)配置时间同步

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

管理节点:

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_19

 工作节点 1

kubernetes pv 绑定 kubernetes搭建_CentOS_20

 工作节点 2:

kubernetes pv 绑定 kubernetes搭建_CentOS_21

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

(6)关闭 swap 分区

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

管理节点: 

kubernetes pv 绑定 kubernetes搭建_服务器_22

 工作节点 1:

kubernetes pv 绑定 kubernetes搭建_CentOS_23

 工作节点 2:

kubernetes pv 绑定 kubernetes搭建_linux_24

 (7)配置免密登录

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

kubernetes pv 绑定 kubernetes搭建_运维_25

 

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

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

kubernetes pv 绑定 kubernetes搭建_CentOS_26

(8)配置内核参数

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

管理节点:

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_27

 工作节点 1:

kubernetes pv 绑定 kubernetes搭建_运维_28

 工作节点 2:

kubernetes pv 绑定 kubernetes搭建_CentOS_29

 接下来就是配置yum源了

 检查并配置yum源

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

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

kubernetes pv 绑定 kubernetes搭建_CentOS_30

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

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_31

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

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

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_32

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

-4.下载 Docker 阿里源

kubernetes pv 绑定 kubernetes搭建_linux_33

 -5.配置 Kubernetes 阿里源

kubernetes pv 绑定 kubernetes搭建_运维_34

 

kubernetes pv 绑定 kubernetes搭建_运维_35

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

kubernetes pv 绑定 kubernetes搭建_服务器_36

 

kubernetes pv 绑定 kubernetes搭建_运维_37

 

kubernetes pv 绑定 kubernetes搭建_运维_38

 

kubernetes pv 绑定 kubernetes搭建_服务器_39

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

kubernetes pv 绑定 kubernetes搭建_CentOS_40

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

各个工作节点

kubernetes pv 绑定 kubernetes搭建_运维_41

 

kubernetes pv 绑定 kubernetes搭建_linux_42

 (10)修改docker文件驱动

管理节点:

kubernetes pv 绑定 kubernetes搭建_CentOS_43

 

kubernetes pv 绑定 kubernetes搭建_CentOS_44

 各工作节点:

kubernetes pv 绑定 kubernetes搭建_CentOS_45

 

kubernetes pv 绑定 kubernetes搭建_服务器_46

 

kubernetes pv 绑定 kubernetes搭建_CentOS_47

 

系统配置结束

 2.安装kubeadm、kubectl、kubelet

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

kubernetes pv 绑定 kubernetes搭建_服务器_48

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

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

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_49

kubernetes pv 绑定 kubernetes搭建_linux_50

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_51

kubernetes pv 绑定 kubernetes搭建_linux_52

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_53

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

kubernetes pv 绑定 kubernetes搭建_服务器_54

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_55

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

kubernetes pv 绑定 kubernetes搭建_运维_56

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

kubernetes pv 绑定 kubernetes搭建_服务器_57

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_58

 3.Kubernetes 集群初始化

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

kubernetes pv 绑定 kubernetes搭建_CentOS_59

 

kubernetes pv 绑定 kubernetes搭建_CentOS_60

 

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

kubernetes pv 绑定 kubernetes搭建_运维_61

kubernetes pv 绑定 kubernetes搭建_CentOS_62

5 配置访问 Kubernetes 集群 

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_63

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

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

kubernetes pv 绑定 kubernetes搭建_CentOS_64

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_65

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_66

 6. 部署 flannel 网络插件

(1)安装 flannel 网络插件

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_67

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_68

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

kubernetes pv 绑定 kubernetes搭建_运维_69

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_70

 

kubernetes pv 绑定 kubernetes搭建_运维_71

(2)查看flannel网络信息

 管理节点: 

kubernetes pv 绑定 kubernetes搭建_服务器_72

 各工作节点:

kubernetes pv 绑定 kubernetes搭建_CentOS_73

 

kubernetes pv 绑定 kubernetes搭建_服务器_74

 

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

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

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

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

(3)查看集群状态

-1查看组件状态

kubernetes pv 绑定 kubernetes搭建_linux_75

 -2.查看资源对象

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_76

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_77

 注意:使用 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 版本。

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_78

 -2.下载 Dashboard YAML 文件

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_79

 -3.编辑 Dashboard YAML 文件

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_80

 -4.拉取 Dashboard 镜像

kubernetes pv 绑定 kubernetes搭建_linux_81

 -5.部署 Dashboard

kubernetes pv 绑定 kubernetes搭建_CentOS_82

 

kubernetes pv 绑定 kubernetes搭建_服务器_83

 

kubernetes pv 绑定 kubernetes搭建_linux_84

 -6.配置外网访问

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

kubernetes pv 绑定 kubernetes搭建_运维_85

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

kubernetes pv 绑定 kubernetes搭建_运维_86

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

kubernetes pv 绑定 kubernetes搭建_CentOS_87

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

kubernetes pv 绑定 kubernetes搭建_运维_88

 -10.获取令牌 token

kubernetes pv 绑定 kubernetes搭建_linux_89

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

kubernetes pv 绑定 kubernetes搭建_服务器_90

                                                 粘贴输入 token 值

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

kubernetes pv 绑定 kubernetes搭建_服务器_91

这是K8S平台搭建成功,

接下来我们部署个nginx看看

 8.部署 nginx 服务验证集群

(1)部署 nginx 服务

kubernetes pv 绑定 kubernetes搭建_服务器_92

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

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_93

 

 

kubernetes pv 绑定 kubernetes搭建_运维_94

 

kubernetes pv 绑定 kubernetes搭建_kubernetes pv 绑定_95

打开浏览器看看

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

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