Kubernetes
一、基础知识
1. 概念和术语
2. Kubernetes特性
3. 集群组件
4. 抽象对象
5. 镜像加速下载
二、安装部署kubeadm
1. 基础环境准备
2. 安装runtime容器(Docker)
3. 安装runtime容器(Contained)
4. Containerd进阶使用
5. 部署kubernets集群
6. 部署calico网络组件
7. 部署NFS文件存储
8. 部署ingress-nginx代理
9. 部署helm包管理工具
10. 部署traefik代理
11. 部署dashboard管理面板(官方)
12. 部署kubesphere管理面板(推荐)
12. 部署metrics监控组件
13. 部署Prometheus监控
14. 部署elk日志收集
15. 部署Harbor私有镜像仓库
16. 部署minIO对象存储
17. 部署jenkins持续集成工具
三、kubectl命令
1. 命令格式
2.node操作常用命令
3. pod常用命令
4.控制器常用命令
5.service常用命令
6.存储常用命令
7.日常命令总结
8. kubectl常用命令
四、资源对象
1. K8S中的资源对象
2. yuml文件
3. Kuberbetes YAML 字段大全
4. 管理Namespace资源
5. 标签与标签选择器
6. Pod资源对象
7. Pod生命周期与探针
8. 资源需求与限制
9. Pod服务质量(优先级)
五、资源控制器
1. Pod控制器
2. ReplicaSet控制器
3. Deployment控制器
4. DaemonSet控制器
5. Job控制器
6. CronJob控制器
7. StatefulSet控制器
8. PDB中断预算
六、Service和Ingress
1. Service资源介绍
2. 服务发现
3. Service(ClusterIP)
4. Service(NodePort)
5. Service(LoadBalancer)
6. Service(ExternalName)
7. 自定义Endpoints
8. HeadlessService
9. Ingress资源
10. nginx-Ingress案例
七、Traefik
1. 知识点梳理
2. 简介
3. 部署与配置
4. 路由(IngressRoute)
5. 中间件(Middleware)
6. 服务(TraefikService)
7. 插件
8. traefikhub
9. 配置发现(Consul)
10. 配置发现(Etcd)
八、存储
1. 配置集合ConfigMap
6. downwardAPI存储卷
3. 临时存储emptyDir
2. 敏感信息Secret
5. 持久存储卷
4. 节点存储hostPath
7. 本地持久化存储localpv
九、rook
1. rook简介
2. ceph
3. rook部署
4. rbd块存储服务
5. cephfs共享文件存储
6. RGW对象存储服务
7. 维护rook存储
十、网络
1. 网络概述
2. 网络类型
3. flannel网络插件
4. 网络策略
5. 网络与策略实例
十一、安全
1. 安全上下文
2. 访问控制
3. 认证
4. 鉴权
5. 准入控制
6. 示例
十二、pod调度
1. 调度器概述
2. label标签调度
3. node亲和调度
4. pod亲和调度
5. 污点和容忍度
6. 固定节点调度
十三、系统扩展
1. 自定义资源类型(CRD)
2. 自定义控制器
十四、资源指标与HPA
1. 资源监控及资源指标
2. 监控组件安装
3. 资源指标及其应用
4. 自动弹性缩放
十五、helm
1. helm基础
2. helm安装
3. helm常用命令
4. HelmCharts
5. 自定义Charts
6. helm导出yaml文件
十六、k8s高可用部署
1. kubeadm高可用部署
2. 离线二进制部署k8s
3. 其他高可用部署方式
十七、日常维护
1. 修改节点pod个数上限
2. 集群证书过期更换
3. 更改证书有效期
4. k8s版本升级
5. 添加work节点
6. master节点启用pod调度
7. 集群以外节点控制k8s集群
8. 删除本地集群
9. 日常错误排查
10. 节点维护状态
11. kustomize多环境管理
12. ETCD节点故障修复
13. 集群hosts记录
14. 利用Velero对K8S集群备份还原与迁移
15. 解决K8s Namespace无法正常删除的问题
16. 删除含指定名称的所有资源
十八、k8s考题
1. 准备工作
2. 故障排除
3. 工作负载和调度
4. 服务和网络
5. 存储
6. 集群架构、安装和配置
本文档使用 MrDoc 发布
-
+
home page
12. 部署kubesphere管理面板(推荐)
# 一、kubesphere介绍 KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等 kubesphere官方中文文档: https://www.kubesphere.io/zh/docs # 二、配置预置条件 在已有的k8s集群中安装kubesphere时,需在安装前满足两个前置条件 详见:https://www.kubesphere.io/zh/docs/v3.4/installing-on-kubernetes/introduction/prerequisites/ ## 条件一 **要求安装的kubesphere需与kubernetes版本对应** >如需在 Kubernetes 上安装 KubeSphere 3.4,您的 Kubernetes 版本必须为: **v1.20.x、v1.21.x、v1.22.x、v1.23.x、\*v1.24.x、\*v1.25.x 和 \*v1.26.x** ⚠️说明:带星号的版本可能出现边缘节点部分功能不可用的情况。因此,如需使用边缘节点,推荐安装 v1.23.x。 示例安装版本为kubesphere的v3.4,要求k8s的版本v1.20.x~v1.26.x之间 **1查看当前k8s版本** ``` kubectl version --output yaml # 或使用如下命令查询 kubectl version --output yaml ``` ![](/media/202407/2024-07-11_124408_3238200.4881794320688624.png) ## 条件二 >Kubernetes 集群已配置默认 StorageClass(请使用 `kubectl get sc` 进行确认) 查看集群中以有的StorageClass ``` kubectl get sc ``` ![](/media/202407/2024-07-11_124741_0781040.7855615353400326.png) 如没有 StorageClass的默认资源,可通过如下过程创建StorageClass,并将其设为默认的StorageClass ``` tee >local-storage-class.yaml<<EOF # 创建存储类 apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage annotations: storageclass.kubernetes.io/is-default-class: "true" # 设置为默认存储类 provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer # 等到有第一个使用者再绑定到pv EOF ``` 创建StorageClass资源 ``` kubectl apply -f local-storage-class.yaml ``` 再次查看StorageClass ``` kubectl get sc ``` ![](/media/202407/2024-07-11_125401_9511750.5935331369534413.png) 验证StorageClass已完成创建,并已设置为默认存储类 >说明: 当前创建的storageclass可以成功安装kubesphere,但是local-storage配合pvc无法动态创建pv。因此,创建storageclass建议使用nfs-storageclass ,详见 [<创建nfs存储类>](/doc/478/ "创建nfs存储类") ---- >⚠️注意: 如已安装并卸载过或者循环安装卸载过,则需要使用官方删除脚本实现彻底卸载后才能再次安装 否则将出现如下安装的情况 ![](/media/202407/2024-07-31_152254_8095220.6912836240182763.png) 脚本下载: ``` https://raw.githubusercontent.com/kubesphere/\ ks-installer/master/scripts/kubesphere-delete.sh ``` # 三、安装kubesphere 至此,kubesphere的安装前置条件已经满足,可以进行kubesphere安装 安装概述: https://www.kubesphere.io/zh/docs/v3.4/installing-on-kubernetes/introduction/overview/ 执行以下命令以开始安装 ``` kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/cluster-configuration.yaml ``` 检查安装日志: ``` kubectl logs -f -n kubesphere-system $(kubectl get pod -n kubesphere-system -l \ 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') ``` ![](/media/202407/2024-07-11_130922_7451860.462060114245021.png) 使用 `kubectl get pod -n kubesphere-system` 查看所有与 KubeSphere 相关的 Pod 是否正常运行。如果在正常运行 请通过以下命令来检查控制台的端口(默认为 30880): ``` kubectl get svc/ks-console -n kubesphere-system ``` 确保在安全组中打开了 30880 端口,并通过如下方式访问 Web 控制台。 >NodePort地址: http://{YOUR_IP}:30880 默认帐户: admin 默认密码: P@88w0rd >⚠️注意:如需在主节点安装kubesphere,还需添加相应容忍以允许pod在主节点调度 # 四、配置Ingress访问(可选) 新增ingress资源配置,实现通过指定域名访问kubesphere 编写ingress配置文件,指定使用kubesphere.local.com域名访问平台 ``` tee > kubesphere-ingress.yaml <<EOF apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: kubesphere-ingress namespace: kubesphere-system # 指定ingress的工作所属命名空间 annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx rules: - host: kubesphere.local.com # 指定访问域名 http: paths: - path: / pathType: Prefix backend: service: name: ks-console # 指定后端服务 port: number: 80 # 指定后端service端口,Ingress 控制器会尝试通过服务的 # ClusterIP 端口来路由流量,而不是通过 NodePort EOF ``` 通过配置文件创建ingress资源 ``` kubectl apply -f kubesphere-ingress.yaml ``` 查看ingress详情 ![](/media/202407/2024-07-11_140252_3269670.36349746550352335.png) 访问验证 >**注意⚠️:** 需要在客户端机器配置好对应域名映射关系 > 例如: > 11.1.1.133 kubesphere.local.com 客户端浏览器访问 http://kubesphere.local.com 即可访问 ![](/media/202407/2024-07-11_140626_8248640.525583930882847.png) 至此kubesphere已完成安装
Nathan
July 31, 2024, 3:38 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password