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
4. HelmCharts
# 一、Charts文件组织结构 > 一个Charts就是按特定格式组织的目录结构,目录名即为Charts名,目录名称本身不包含版本信息。目录结构中除了charts/和templates/是目录之外,其他的都是文件。它们的基本功用如下。 1. Chart.yaml:当前Charts的描述信息,yaml格式的文件。 2. LICENSE:当前Charts的许可证信息,纯文本文件;此为可选文件。 3. README.md:易读格式的README文件;可选。 4. requirements.yaml:当前Charts的依赖关系描述文件;可选。 5. values.yaml:当前Charts用到的默认配置值。 6. charts/:目录,存放当前Charts依赖到的所有Charts文件。 7. templates/:目录,存放当前Charts用到的模板文件,可应用于Charts生成有效的Kuber-netes清单文件。 8. templates/NOTES.txt:纯文本文件,Templates简单使用注解 - 尽管Charts和Templates目录均为可选,但至少应该存在一个Charts依赖文件或一个模板文件。另外,Helm保留使用charts/和templates/目录以及上面列出的文件名称,其他文件都将被忽略。 # 二、Chart.yaml文件组织格式 > Chart.yaml用于提供Charts相关的各种元数据,如名称、版本、关键词、维护者信息、使用的模板引擎等,它是一个Charts必备的核心文件,主要包含以下字段。 1. name:当前Charts的名称,必选字段。 2. version:遵循语义化版本规范第2版的版本号,必选字段。 3. description:当前项目的单语句描述信息,可选字段。 4. keywords:当前项目的关键词列表,可选字段。 5. home:当前项目的主页URL,可选字段。 6. sources:当前项目用到的源码的来源URL列表,可选字段。 7. maintainers:项目维护者信息,主要嵌套name、email和URL几个属性组成;可选字段。 8. engine:模板引擎的名称,默认为gotpl,即go模板。 9. icon:URL,指向当前项目的图标,SVG或PNG格式的图片;可选字段。 10. appVersion:本项目用到的应用程序的版本号,可选字段,且不必为语义化版本。 11. tillerVersion:当前Charts依赖的Tiller版本号,可以是语义化版本号的范围,如“>2.4.0”;可选字段。 # 三、Charts中的依赖关系 > Helm中的一个Charts可能会依赖不止一个其他的Charts,这种依赖关系可经requirements.yaml进行动态链接,也可直接存储于charts/目录中进行手动管理。 1. requirements.yaml文件<br />requirements.yaml文件本质上只是一个简单的依赖关系列表,可用字段具体如下。 2. name:被依赖的Charts的名称。 3. version:被依赖的Charts的版本。 4. repository:被依赖的Charts所属的仓库及其URL;如果是非官方的仓库,则需要先用helm<br />repo add命令将其添加进本地可用仓库。 5. alias:为被依赖的Charts创建一个别名,从而让当前Charts可以将所依赖的Charts对应到新名称,即别名;可选字段。 6. tags:默认情况下所有的Charts都会被装载,若给定了tags,则仅装载那些匹配到的Charts。 7. condition:类似于tags字段,但需要通过自定义的条件来指明要装载的charts。 8. import-values:导入子Charts中的的值;被导入的值需要在子charts中导出。 9. Charts目录 - 若需要对依赖关系进行更多的控制,则所有被依赖到的Charts都能以手工方式直接复制到Charts目录中。一个被依赖到的Charts既可以是归档格式,也可以是展开的目录格式,不过,其名称不能以下划线(_)或点号(.)开头,此类文件会被Charts装载器自动忽略。<br />例如,Wordpress Charts依赖关系在其Charts目录中的反映类似如下所示: ![未命名图片.png](/media/202406/15.4.15287399_image1.png) - Helm<br />Charts模板(template)遵循Go模板语言格式,并支持50种以上的来自Spring库的模板函数附件,以及为数不少的其他专用函数。所有的模板文件都存储于Templates目录中,在当前Charts被Helm引用时,此目录中的所有模板文件都会传递给模板引擎进行处理。模板文件中用到的值(value)有如下两种提供方式。□通过Charts的values.yaml文件提供,通常用于提供默认值。□在运行“helm<br />install”命令时传递包含所需要的自定义值的YAML文件;此处传递的值会覆盖默认值。
Nathan
June 22, 2024, 12:48 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password