My_Study_Kubernates
latest
k8s
1. 概念
2. 服务
My_Study_Kubernates
Docs
»
k8s学习笔记
Edit on GitHub
k8s学习笔记
¶
k8s
1. 概念
1.1. 概念
1.1.1. 什么是k8s
1.1.1.1. 概念
1.1.1.2. 优点
1.1.1.3. k8s能做什么
1.1.2. Kubernetes组件
1.1.2.1. 主要组件
1.1.2.2. 节点组件
1.1.2.3. 插件
1.1.3. Kubernetes API
1.1.3.1. API版本控制
1.1.3.2. API扩展
1.1.4. 对象
1.1.4.1. 理解对象
1.1.4.2. 对象规约(Spec)与状态(Status)
1.1.4.3. 描述 Kubernetes 对象
1.1.4.4. 关键字段说明
1.1.4.5. 对象管理
1.1.4.5.1. 指令式
1.1.4.5.2. 指令式对象配置
1.1.4.5.3. 声明式对象配置
1.1.4.6. 名称
1.1.4.7. uid
1.1.4.8. 命名空间
1.1.4.9. 标签
1.1.4.10. 标签选择器
1.1.4.11. 注解
1.1.4.12. 字段选择器
1.1.4.13. 集合选择器
1.1.4.14. 推荐使用的标签
1.1.4.15. 注解
1.1.4.16. 哪些信息建议使用注解呢
1.2. 架构
1.2.1. 节点
1.2.1.1. 地址
1.2.1.2. 状态
1.2.1.3. 节点控制器
1.2.1.4. 节点管理
1.2.1.5. 节点可靠性
1.2.1.6. 节点容量
1.2.1.7. 节点拓扑
1.2.2. 主节点通信
1.2.2.1. 集群到master节点
1.2.2.2. apiserver到kubelet
1.2.2.3. apiserver到pod,service,node
1.2.3. 控制器
1.2.3.1. 控制器模式
1.2.3.1.1. 通过api服务器来控制
1.2.3.1.2. 直接控制
1.2.3.2. 设计
1.2.4. 云控制器管理器
1.2.4.1. 功能
1.2.4.2. 鉴权
1.2.5. 垃圾回收
1.2.5.1. 哪些资源需要清理
1.3. 容器
1.3.1. 镜像
1.3.1.1. 更新镜像
1.3.1.2. 使用私有仓库
1.3.2. 容器环境
1.3.2.1. 容器环境内容
1.3.2.2. 容器信息
1.3.2.3. 集群信息
1.3.3. 容器运行时类
1.3.3.1. 设置方法
1.3.4. 生命周期回调
1.3.4.1. 回调方式
1.3.4.2. 具体处理程序实现
1.4. 工作负载
1.4.1. pods
1.4.1.1. 什么是pod
1.4.1.2. 静态pod
1.4.2. pods生命周期
1.4.2.1. pod生命周期
1.4.2.2. Pod 阶段
1.4.2.3. 容器状态
1.4.2.4. 容器重启策略
1.4.2.5. Pod 状况
1.4.2.6. 容器探针
1.4.2.7. pod终止
1.4.2.8. 强制删除pod
1.4.3. init容器
1.4.3.1. 和普通容器区别
1.4.3.2. init容器使用场景
1.4.3.3. 注意点
1.4.4. pod拓扑分布约束
1.4.4.1. 先决条件
1.4.4.2. pod分布约束
1.4.4.3. 设置集群级别的默认约束
1.4.5. 干扰
1.4.6. 临时容器
1.4.6.1. 临时容器和普通容器区别
1.4.6.2. 用途
1.5. 工作负载资源
1.5.1. deployments
1.5.1.1. 创建depolyments
1.5.1.2. 更新
1.5.1.3. 查看变更
1.5.1.4. 获取上线进度
1.5.1.5. 升级失败的可能原因
1.5.2. statefulset
1.5.2.1. 使用场景
1.5.2.2. 创建statefulset
1.5.2.3. 部署和缩容保障
1.5.2.4. 主要属性说明
1.5.3. daemonset
1.5.3.1. 使用场景
1.5.3.2. 创建daemonset
1.5.3.3. daemon pod通信
1.5.4. jobs
1.5.4.1. job样例
1.5.4.2. job的并行执行
1.5.5. 垃圾回收
1.5.5.1. 属主和附属
1.5.5.2. 控制垃圾收集器删除附属
1.5.5.3. 前台级联删除
1.5.5.4. 后台级联删除
1.5.5.5. 删除样例
1.5.6. ttl控制器
1.5.6.1. TTL 控制器
1.5.6.2. 使用ttl注意点
1.5.7. crontab
1.5.7.1. crontab简述
1.5.7.2. cronjob样例
1.5.7.3. CronJob 限制
1.6. 服务、负载均衡和联网
1.6.1. 服务
1.6.1.1. service资源
1.6.1.2. 定义service
1.6.1.3. 定义service样例
1.6.1.4. 没有选择符的service
1.6.1.5. 创建外部服务过程
1.6.1.6. 超出容量的endpoint
1.6.1.7. 虚拟 IP 和 Service 代理
1.6.1.8. 多端口service
1.6.1.9. 服务发现
1.6.1.9.1. 环境变量
1.6.1.9.2. DNS
1.6.1.10. 无头服务
1.6.1.11. 发布服务(服务类型)
1.6.1.12. 支持的协议
1.6.2. pod与service的dns
1.6.2.1. Service 的名字空间
1.6.2.2. DNS记录
1.6.2.3. 服务A记录
1.6.2.4. 服务SRV记录
1.6.2.5. Pod A记录
1.6.2.6. Pod 的 DNS 策略
1.6.2.7. Pod 的 DNS 配置
1.6.2.8. 扩展 DNS 配置
1.6.3. 使用 Service 连接到应用
1.6.3.1. 访问 Service
1.6.3.2. 保护 Service
1.6.4. ingress
1.6.4.1. ingress是什么
1.6.4.2. defaultBackend
1.6.4.3. 路径类型
1.6.4.4. 多重匹配
1.6.4.5. 主机名通配符
1.6.4.6. 默认 Ingress 类
1.6.5. 服务内部流量策略
1.6.5.1. 工作原理
1.6.6. 端点切片
1.6.6.1. 地址类型
1.6.7. 网络策略
1.6.7.1. 前提条件
1.6.7.2. 样例
1.7. 存储
1.7.1. 卷
1.7.1.1. nfs
1.7.1.2. 使用 subPath
1.7.2. 卷快照
1.7.2.1. 卷快照样例
1.7.3. 持久卷
1.7.3.1. 持久卷申请
1.7.3.2. 静态供应
1.7.3.3. 动态供应
1.7.3.4. 回收
1.7.3.5. 卷模式
1.7.3.6. 访问模式
1.7.3.7. 存储类
1.7.3.8. 卷的状态
1.7.3.9. 基于卷快照恢复卷
1.7.4. 卷快照类
1.7.4.1. VolumeSnapshotClass 资源
1.7.5. 存储类
1.7.5.1. 存储类资源样例
1.7.5.2. 回收策略
1.7.5.3. 允许卷扩展
1.7.5.4. 挂载选项
1.7.5.5. 卷绑定模式
1.7.6. 动态卷供应
1.7.7. 临时卷
1.7.7.1. 临时卷的类型
1.8. 配置
1.8.1. configmap
1.8.1.1. ConfigMap
1.8.1.2. configmap创建样例
1.8.1.3. 如何使用configmap的数据
1.8.1.4. pod使用configmap样例
1.8.1.5. 几种方式的不同
1.8.1.6. 不可变更的 ConfigMap
1.8.2. configmap
1.8.2.1. ConfigMap
1.8.2.2. configmap创建样例
1.8.2.3. 如何使用configmap的数据
1.8.2.4. pod使用configmap样例
1.8.2.5. 几种方式的不同
1.8.2.6. 不可变更的 ConfigMap
1.8.3. secret
1.8.3.1. 如何使用configmap的数据
1.8.3.2. secret的类型
1.8.3.3. 服务账号令牌 Secret
1.8.3.4. Docker 配置 Secret
1.8.3.5. 基本身份认证 Secret
1.8.3.6. SSH 身份认证 Secret
1.8.3.7. TLS Secret
1.9. 策略
1.9.1. 限制范围
1.9.1.1. 为命名空间配置默认的内存请求和限制
1.9.2. 资源配额
1.9.2.1. 计算资源配额
1.9.2.2. 存储资源配额
1.9.2.3. 对象数量配额
1.9.2.4. 配额作用域
1.9.2.5. 根据服务的优先级设置不同的配额样例
1.9.3. 进程id约束与预留
1.9.3.1. 节点级别 PID 限制
1.9.3.2. Pod 级别 PID 限制
1.10. 调度、抢占和驱逐
1.10.1. 调度器
1.10.1.1. 概述
1.10.1.2. kube-scheduler
1.10.1.3. 调度流程
1.10.2. 将pod分配给节点
1.10.2.1. nodeselector
1.10.2.2. 亲和性和反亲和性
1.10.2.3. 反亲和性配置
1.10.2.4. nodeName
1.10.3. pod开销
1.10.3.1. 定义开销
1.10.4. 污点和容忍度
1.10.4.1. 打污点
1.10.4.2. 移除污点
1.10.4.3. pod容忍
1.10.4.4. 使用场景
1.10.5. 优先级和抢占
1.10.5.1. 如何使用优先级
1.10.5.2. PriorityClass
1.10.5.3. 样例
1.10.5.4. 抢占策略
1.10.5.5. Pod 优先级对调度顺序的影响
1.10.5.6. 被提名节点
1.10.5.7. 抢占的限制
1.10.6. 节点压力驱逐
1.10.6.1. 驱逐信号
1.10.6.2. 驱逐条件
1.10.6.3. 节点条件
1.10.6.4. kubelet 驱逐时 Pod 的选择
1.10.6.5. 最小驱逐回收
1.10.6.6. 节点内存不足行为
1.10.7. api发起的驱逐
1.10.8. 扩展资源的资源装箱
1.10.8.1. RequestedToCapacityRatioResourceAllocation 优先级函数如何对节点评分
1.10.9. 调度框架
1.10.9.1. 框架工作流程
1.10.9.2. 调度周期和绑定周期
1.10.9.3. 扩展点
1.10.10. 调度器性能调优
1.10.10.1. 设置阈值
1.10.10.2. 节点打分阈值
1.11. 集群管理
1.11.1. 证书
1.11.1.1. openssl
1.11.2. 管理资源
1.11.2.1. 组织资源配置
1.11.2.2. kubectl 中的批量操作
1.11.2.3. 金丝雀部署(Canary Deployments)
1.11.2.4. kubectl edit
1.11.3. 集群网络系统
1.11.3.1. k8s网络模型
1.11.4. 04-k8s系统组件指标
1.11.4.1. k8s中组件的指标
2. 服务
2.1. Service 简介