搭建kubeneters集群
00 分钟
2024-3-22
2024-5-31
type
status
date
slug
summary
tags
category
icon
password
data

概述

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。

开始搭建K8S集群

先决条件

这里将通过虚拟机安装3台centos stream 9服务器,并组成kubeneters集群(1个master,2个worker节点),以下是本次实践的基本环境信息:
  • VMware Fusion 专业版 13.5.1 (23298085)
  • 操作系统:centos stream 9
  • k8s版本:v1.28.2
  • k8s网络插件:flannel
  • k8s存储插件:nfs
  • 以下命令皆在root用户下操作,非root权限用户,如果遇到命令操作没权限可以sudo 开始

一、在虚拟机(VMware Fusion)上安装操作系统

在虚拟机中按安装3台服务器(内存2G,处理器数量1,处理器内核数量2,网络NAT模式):
  • 172.16.55.144 k8s-master
  • 172.16.55.145 k8s-node1
  • 172.16.55.146 k8s-node2
  • 虚拟机安装过程省略。。。
  • docker安装过程省略。。。

二、安装k8s前的系统配置准备

在安装k8s前,通过官方文档了解到有一些服务器的配置工作,来保证k8s能顺利创建和工作。

1、修改主机名称(每个节点)

或者
修改主机名称,使用以下命令
将master主节点命名为k8s-master、工作节点worker1命名为k8s-node1、工作节点worker2命名为k8s-node2
以master节点为例;其他两个节点执行同样操作!
或者使用vim进行修改文件内容
针对服务器可以使用shutdown -r来安全重启机器,对于本地虚拟机则手动关机重启即可

2、主机名与ip绑定(每个节点)

以master节点为例;其他两个节点执行同样操作!
添加参数,将主机与ip绑定
或者使用vim命令修改文件,将ip与名称参数填入
或者使用echo
添加后查看如下

3、关闭防火墙(每个节点)

4、关闭selinux(每个节点)

如果关闭失败,可直接修改/etc/selinux/config SELINUX=disabled

5、关闭swap(每个节点)

6、将桥接的 IPv4 流量传递到 iptables 的链(每个节点)

7、时间同步设置(每个节点)

先查看同步状态
  • 时区参数Time zone: Asia/Shanghai(CST, +0800)Asia/Shanghai表示上海时区
  • 时钟是否同步参数System clock synchronized: yesyes为同步
  • 时钟同步服务是否开启NTP service: activeactive为已开启
如未同步,则执行以下命令设置
设置时区(上海时区)
设置时间同步
然后输入date命令查看时间验证
如果是本地创建的虚拟机则还需执行以下命令,如果是云服务器则可忽略
当前UTC时间写入硬件时钟
重启系统时间服务

8、容器配置加速器文件(每个节点)

9、安装containerd

k8s依赖容器运行时(v1.24 弃用 dockershim)(如果需要使用docker,需要安装cri-dockerd组件),我们这里直接使用containerd。
notion image
notion image
notion image

10、更换国内清华大学Yum源

  • 备份系统自带的Yum源配置文件
  • 新建清华大学Yum源配置
填入如下内容
  • 重新清理和生成Yum源配置文件的缓存

三、安装k8s集群及网络插件(flannel)

1、添加kubernetes仓库(每个节点)

下面命令行中:以自己服务器类型而定,我这里是aarch64; baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/
notion image

2、安装Kubernetes modules(每个节点)

3、部署kubernetes集群

在k8s-master节点上初始化集群

kubeadm join从输出的末尾复制命令并将其保存在安全的地方。稍后我们将使用此命令来允许工作节点加入集群。如果您忘记复制该命令,或者找不到它,您可以使用以下命令重新生成它:
接下来按照输出提示创建和声明目录
将pod网络部署到集群
验证主节点现在是否准备就绪:
建议检查所有 Pod 是否正常运行:

在子节点(k8s-node1、k8s-node2)按照上面的提示添加工作节点

运行第(1)步kubeadm join的命令,将节点加入集群:
时间同步防火墙SELinux、以及/etc/hosts映射关系会影响节点的加入
两个节点加入完成后,在k8s-master节点上验证:
将子节点设置为worker角色:
完成后,再次查看节点,可以看到ROLES变为了worker,至此,我们的集群就准备就绪了。
如果需要在子节点访问kubernetes集群
在子节点创建文件夹
在主节点执行如下命令
在子节点进行验证

四、安装Dashboard[主分支]

Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。它提供了集群的详细信息和管理功能。以下是安装和使用 Kubernetes Dashboard 的步骤:
安装前需要先选择与你安装的Kubernetes对应版本的Dashboard,不然会出现各种问题。每个releases都会有一张对应表,如下图:
notion image
安装Kubernetes Dashboard 7.X
从7.x版开始,不再支持基于Manifest的安装。现在只支持基于Helm的安装。由于多容器设置和对Kong网关API代理的严重依赖 要轻松支持基于清单安装是不可行的。

1、通过官方脚本安装Helm:

安装成功后:
notion image
查看svc是否完成:

2、修改NodePort端口,支持远程调用

 
notion image
此时通过 https 访问 31946 端口即可打开 dashboard 控制台,需要 使用token登录
notion image

3、创建token

kubernetes v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建
创建 Secret 资源并与 ServiceAccount 关联
绑定默认cluster-admin管理员集群角色

4、创建长期Token

登录成功后可正常使用;在集群中找到Nodes可查看集群节点相关信息
notion image

五、搭建kuboard[第三方可视化界面][主分支]

1、使用 hostPath 提供持久化

执行下面快捷安装指令

2、访问 Kuboard

  • 在浏览器中打开链接 http://your-node-ip-address:30080
  • 输入初始用户名和密码,并登录
    • 用户名: admin
    • 密码: Kuboard123
notion image

3、卸载

清理遗留数据

在 master 节点以及带有 k8s.kuboard.cn/role=etcd 标签的节点上执行

六、搭建私有仓库Harbor[主分支]

1、安装docker-compose

下载地址:docker-compose

2、安装Harbor

下面命令行中:以自己服务器类型而定,我这里是aarch64;
notion image
账号admin,密码为harbor_admin_password 对应的值,登录后可创建新角色用户

3、定制Harbor服务启动文件

4、上传Harbor仓库[以nginx为例]

notion image

5、K8S拉取私有仓库镜像部署[集群中分支均可]

notion image
notion image
 
 
 
 

评论