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
1. helm基础
# 一、helm功能 1. Helm就是Kubernetes的应用程序包管理器,类似于Linux系统之上的yum或apt-get等,可用于实现帮助用户查找、分享及使用Kubernetes应用程序。它的核心打包功能组件称为chart,可以帮助用户创建、安装及升级复杂应用。Helm将Kubernetes的资源(如Deployments、Services或ConfigMap等)打包到一个Charts中,制作并测试完成的各个Charts将保存到Charts仓库进行存储和分发。另外,Helm实现了可配置的发布,它支持应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除和更新等操作。 2. Helm是一个基于Kubernetes的程序包(资源包)管理器,它将一个应用的相关资源组织成为Charts,并通过Charts管理程序包,其使用优势可简单总结为如下几个方面: - 管理复杂应用:Charts能够描述哪怕是最复杂的程序结构,其提供了可重复使用的应用安装的定义。 - 易于升级:使用就地升级和自定义钩子来解决更新的难题。 - 简单分享:Charts易于通过公共或私有服务完成版本化、分享及主机构建。 - 回滚:可使用“helm rollback”命令轻松实现快速回滚。 # 二、helm核心术语 1. Helm将Kubernetes应用的相关配置组织为Charts,并通过它完成应用的常规管理操作。使用Charts管理应用的流程包括: - 从0开始创建Charts - 将Charts及其相关的文件打包为归档格式 - 将Charts存储于仓库(repository)中并与之交互 - 在Kubernetes集群中安装或卸载Charts以及管理经Helm安装的应用的版本发行周期 2. 对Helm来说,它具有以下几个关键概念。 - Charts:即一个Helm程序包,它包含了运行一个Kubernetes应用所需要的镜像、依赖关系和资源定义等,必要时还会包含Service的定义;它类似于yum的rpm文件。 - Repository:Charts仓库,用于集中存储和分发Charts,类似于Python的PyPI。 - Config:应用程序实例化安装运行时使用的配置信息。 - Release:应用程序实例化配置后运行于Kubernetes集群中的一个Charts实例;从V3开始,Release<br />不再是全局资源,而是存储在各自命名空间内。 # 三、helm架构 > Helm主要由Helm客户端、Tiller服务器和Charts仓库(repository)组成  1. Helm客户端是命令行客户端工具,采用Go语言编写,基于gRPC协议与Tiller<br />server交互。它主要完成如下任务。 - 本地Charts开发。 - 管理Charts仓库。 - 与Tiller服务器交互:发送Charts以安装、查询Release的相关信息以及升级或卸载已有的Release。 2. Tiller<br />server(V3已将Tiller的删除,通过ApiServer与k8s交互)是托管运行于Kubernetes集群之中的容器化服务应用,它接收来自Helm客户端的请求,并在必要时与Kubernetes API Server进行交互。它主要完成以下任务。 - 监听来自于Helm客户端的请求。 - 合并Charts和配置以构建一个Release。 - 向Kubernetes集群安装Charts并对相应的Release进行跟踪。 - 升级和卸载Charts。 3. 通常,用户于Helm客户端本地遵循其格式编写Charts文件,而后即可部署于Kuber-netes集群之上运行为一个特定的Release。仅在有分发需求时,才应该将同一应用的Charts文件打包成归档压缩格式提交到特定的Charts仓库。 # 四、Helm工作原理  1. Chart Install 过程: - Helm从指定的目录或者tgz文件中解析出Chart结构信息 - Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller - Tiller根据Chart和Values生成一个Release - Tiller将Release发送给Kubernetes用于生成Release 2. Chart Update过程: - Helm从指定的目录或者tgz文件中解析出Chart结构信息 - Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller - Tiller生成Release并更新指定名称的Release的History - Tiller将Release发送给Kubernetes用于更新Release 3. Chart Rollback过程: - Helm将要回滚的Release的名称传递给Tiller - Tiller根据Release的名称查找History - Tiller从History中获取上一个Release - Tiller将上一个Release发送给Kubernetes用于替换当前Release
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