Kubernetes 集群在线部署mini KubeSphere
作者:@skyflask
转载本文请注明出处:https://www.cnblogs.com/skyflask/p/15237008.html
目录
一、安装前提
二、配置默认storageclass
三、部署 KubeSphere
KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。
除了在 Linux 机器上安装 KubeSphere 之外,您还可以将其直接部署在现有的 Kubernetes 集群上。
一、安装前提
- 如需在 Kubernetes 上安装 KubeSphere v3.1.1,您的 Kubernetes 版本必须为:1.17.x、1.18.x、1.19.x 或 1.20.x。
- 确保您的机器满足最低硬件要求:CPU > 1 核,内存 > 2 GB。
- 在安装之前,需要配置 Kubernetes 集群中的默认存储类型。
二、配置默认storageclass
配置默认storageclass,以下以nfs为默认storageclass为例:
一. 搭建storageclass
1、node节点安装nfs服务
1 | yum -y install nfs-utils rpcbind |
2、启动nfs并设为开机自启:
1 2 | systemctl start nfs && systemctl enable nfs systemctl start rpcbind && systemctl enable rpcbind |
3、node节点创建共享挂载目录
1 | mkdir -pv /data/nfs |
4、编辑/etc/exports文件(网段根据自己的情况写)
[root@master2 ~]# cat /etc/exports
1 | /data/nfs *(rw,no_root_squash,no_all_squash) |
5、查看
[root@master2 ~]# showmount -e
1 2 | Export list for k8s-node1: /data/nfs * |
6、修改deployment.yaml文件
cat deployment.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | --- apiVersion: v1 kind: ServiceAccount metadata: name: nfs-provisioner --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: nfs-provisioner-runner namespace : default rules: - apiGroups: [ "" ] resources: [ "persistentvolumes" ] verbs: [ "get" , "list" , "watch" , "create" , "delete" ] - apiGroups: [ "" ] resources: [ "persistentvolumeclaims" ] verbs: [ "get" , "list" , "watch" , "update" ] - apiGroups: [ "storage.k8s.io" ] resources: [ "storageclasses" ] verbs: [ "get" , "list" , "watch" ] - apiGroups: [ "" ] resources: [ "events" ] verbs: [ "watch" , "create" , "update" , "patch" ] - apiGroups: [ "" ] resources: [ "services" , "endpoints" ] verbs: [ "get" , "create" , "list" , "watch" , "update" ] - apiGroups: [ "extensions" ] resources: [ "podsecuritypolicies" ] resourceNames: [ "nfs-provisioner" ] verbs: [ "use" ] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: run-nfs-provisioner subjects: - kind: ServiceAccount name: nfs-provisioner namespace : default roleRef: kind: ClusterRole name: nfs-provisioner-runner apiGroup: rbac.authorization.k8s.io --- kind: Deployment apiVersion: apps/v1 metadata: name: nfs-client-provisioner spec: selector: matchLabels: app: nfs-client-provisioner replicas: 1 strategy: type: Recreate template: metadata: labels: app: nfs-client-provisioner spec: serviceAccount: nfs-provisioner containers: - name: nfs-client-provisioner image: quay.io/external_storage/nfs-client-provisioner:latest imagePullPolicy: IfNotPresent volumeMounts: - name: nfs-client mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: fuseim.pri/ifs - name: NFS_SERVER value: 10.11.99.141 - name: NFS_PATH value: /data/nfs volumes: - name: nfs-client nfs: server: 10.11.99.141 path: /data/nfs --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: nfs-storage provisioner: fuseim.pri/ifs reclaimPolicy: Retain |
7、部署yaml文件
1 | kubectl apply -f deployment.yaml |
8、查看服务
1 2 3 | kubectl get pods NAME READY STATUS RESTARTS AGE nfs-client-provisioner-6d4469b5b5-bh6t9 1/1 Running 0 73m |
9、列出你的集群中的StorageClass
kubectl get sc
1 2 | NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs-storage ( default ) fuseim.pri/ifs Retain Immediate false 18h |
10、标记一个StorageClass为默认的 (是storageclass的名字也就是你部署的StorageClass名字是啥就写啥)
1 | kubectl patch storageclass nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' |
11、验证你选用为默认的StorageClass
1 2 3 | kubectl get storageclass NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs-storage ( default ) fuseim.pri/ifs Delete Immediate false 77m |
三、部署 KubeSphere
确保您的机器满足安装的前提条件之后,可以按照以下步骤安装 KubeSphere。
-
执行以下命令开始安装:
1 2 3 | kubectl apply -f https: //github.com/kubesphere/ks-installer/releases/download/v3.1.1/kubesphere-installer.yaml kubectl apply -f https: //github.com/kubesphere/ks-installer/releases/download/v3.1.1/cluster-configuration.yaml |
2、安装
经过一段时间的安装后,看到以下界面则表示安装成功:
3、登录验证
登录console:http://10.11.99.141:30880/
账号:admin
密码:P@88w0rd
平台管理:
集群管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2019-09-07 kubernetes监控终极方案-kube-promethues