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=disabled5、关闭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。



10、更换国内清华大学Yum源
- 备份系统自带的Yum源配置文件
- 新建清华大学Yum源配置
填入如下内容
- 重新清理和生成Yum源配置文件的缓存
三、安装k8s集群及网络插件(flannel)
1、添加kubernetes仓库(每个节点)
下面命令行中:以自己服务器类型而定,我这里是aarch64;
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/
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都会有一张对应表,如下图:

安装Kubernetes Dashboard 7.X
从7.x版开始,不再支持基于Manifest的安装。现在只支持基于
Helm的安装。由于多容器设置和对Kong网关API代理的严重依赖 要轻松支持基于清单安装是不可行的。1、通过官方脚本安装Helm:
安装成功后:

查看svc是否完成:
2、修改NodePort端口,支持远程调用

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

3、创建token
kubernetes v1.24.0 更新之后进行创建 ServiceAccount 不会自动生成 Secret 需要对其手动创建
创建 Secret 资源并与 ServiceAccount 关联
绑定默认cluster-admin管理员集群角色
4、创建长期Token
登录成功后可正常使用;在集群中找到Nodes可查看集群节点相关信息

五、搭建kuboard[第三方可视化界面][主分支]
1、使用 hostPath 提供持久化
执行下面快捷安装指令
2、访问 Kuboard
- 在浏览器中打开链接
http://your-node-ip-address:30080
- 输入初始用户名和密码,并登录
- 用户名:
admin - 密码:
Kuboard123

3、卸载
清理遗留数据
在 master 节点以及带有
k8s.kuboard.cn/role=etcd 标签的节点上执行六、搭建私有仓库Harbor[主分支]
1、安装docker-compose
下载地址:docker-compose
2、安装Harbor
下面命令行中:以自己服务器类型而定,我这里是aarch64;
- aarch64: harbor-offline-installer-aarch64
- X86-64:harbor-offline-installer

账号admin,密码为
harbor_admin_password 对应的值,登录后可创建新角色用户3、定制Harbor服务启动文件
4、上传Harbor仓库[以nginx为例]

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


- 作者:胜天半子派大星
- 链接:https://blog.madd.cloudns.org/article/buildK8s
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。