您当前的位置: 首页 > 

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

k8s教程(01)-总纲

杨林伟 发布时间:2022-05-23 10:17:26 ,浏览量:3

学习的资料:《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》

Kubernetes(简称k8s)的学习是今年的计划之一,本文来总结一下Kubenetes要学习哪些内容?心里有个底,学习起来才有目标,总纲如下:

········第 1 章 Kubernetes入门······· |____1.1 了解 Kubernetes |____1.2 为什么要用 Kubernetes |____1.3 从一个简单的例子开始 |______1.3.1 环境准备 |______1.3.2 启动 MySQL 服务 |______1.3.3 启动 Tomcat 应用 |______1.3.4 通过浏览器访问网页 |____1.4 Kubernetes 的基本概念和术语 |______1.4.1 资源对象概述 |______1.4.2 集群类 |______1.4.3 应用类 |______1.4.4 存储类 |______1.4.5 安全类

········第 2 章 Kubernetes安装配置指南········ |____2.1 系统要求 |____2.2 使用 kubeadm 工具快速安装 Kubernetes 集群 |______2.2.1 安装 kubeadm |______2.2.2 修改 kubeadm 的默认配置 |______2.2.3 下载 Kubernetes 的相关镜像 |______2.2.4 运行 kubeadm init 命令安装 Master 节点 |______2.2.5 将新的 Node 加入集群 |______2.2.6 安装 CNI 网络插件 |______2.2.7 验证 Kubernetes集群是否工作正常 |____2.3 以二进制文件方式安装 Kubernetes安全高可用集群 |______2.3.1 Master 高可用部署架构 |______2.3.2 创建 CA 根证书 |______2.3.3 部署安全的 etcd 高可用集群 |______2.3.4 部署安全的 Kubernetes Master 高可用集群 |______2.3.5 部署 Node 的服务 |______2.3.6 kube-apiserver 基于 token 的认证机制 |____2.4 使用私有镜像库的相关配置 |____2.5 Kubernetes 的版本升级 |______2.5.1 二进制文件升级 |______2.5.2 使用 kubeadm 进行集群升级 |____2.6CRI(容器运行时接口)详解 |______2.6.1 CRI 概述 |______2.6.2 CRI 的主要组件 |______2.6.3 Pod 和容器的生命周期管理 |______2.6.4 面向容器级别的设计思路 |______2.6.5 尝试使用新的 Docker–CRI 来创建容器 |______2.6.6 CRI 的进展 |____2.7 kubectl 命令行工具用法详解 |______2.7.1 kubectl用法概述 |______2.7.2 kubectl子命令详解 |______2.7.3 kubectl 可操作的资源对象详解 |______2.7.4 kubectl 的公共参数说明 |______2.7.5 kubectl 格式化输出 |______2.7.6 kubectl常用操作示例

········第 3 章深入掌握 Pod········ |____3.1 Pod 定义详解 |____3.2 Pod 的基本用法 |____3.3 静态 Pod |____3.4 Pod 容器共享 Volume |____3.5 Pod 的配置管理 |______3.5.1 ConfigMap 概述 |______3.5.2 创建 ConfigMap 资源对象 |______3.5.3 在 Pod 中使用 ConfigMap |______3.5.4 使用 ConfigMap 的限制条件 |____3.6 在容器内获取 Pod 信息(Downward API) |______3.6.1 环境变量方式 |______3.6.2 Volume 挂载方式 |______3.6.3 Downward API 支持设置的 Pod 和 Container 信息 |____3.7 Pod 生命周期和重启策略 |____3.8 Pod 健康检查和服务可用性检查 |____3.9 玩转 Pod 调度 |______3.9.1 Deployment或 RC全自动调度 |______3.9.2 NodeSelector定向调度 |______3.9.3 NodeAffinity Node 亲和性调度 |______3.9.4 PodAffinity Pod 亲和与互斥调度策略 |______3.9.5 Taintsi 和 Tolerations(污点和容忍) |______3.9.6 Pod Priority Preemption Pod 优先级调度 |______3.9.7 DaemonSet 在每个 Node 上都调度一个 Pod |______3.9.8 Job 批处理调度 |______3.9.9 Cronjob定时任务 |______3.9.10 自定义调度器 |______3.9.11 Pod容灾调度 |____3.10 Init Container(初始化容器) |____3.11 Pod 的升级和回滚 |______3.11.1 Deployment 的升级 |______3.11.2 Deployment 的回滚 |______3.11.3 暂停和恢复 Deployment 的部署操作 |______3.11.4 其他管理对象的更新策略 |____3.12 Pod 的扩缩容 |______3.12.1 手动扩缩容机制 |______3.12.2 自动扩缩容机制 |____3.13 使用 StatefulSet 搭建 MongoDB 集群 |______3.13.1 前提条件 |______3.13.2 部署 StatefulSet |______3.13.3 查看 MongoDB 集群的状态 |______3.13.4 StatefulSet 的常见应用场景

········第 4 章深入掌握 Service········ |____4.1 Service 定义详解 |____4.2 Service 的概念和原理 |______4.2.1 Service 的概念 |______4.2.2 Service 的负载均衡机制 |______4.2.3 Service 的多端口设置 |______4.2.4 将外部服务定义为 Service |______4.2.5 将 Service 暴露到集群外部 |______4.2.6 Service 支持的网络协议 |______4.27 Kubernetes 的服务发现机制 |______4.2.8 Headless Service 的概念和应用 |______4.2.9 端点分片与服务拓扑 |____4.3 DNS 服务搭建和配首指南 |______4.3.1 修改每个 Node 上 kubelet 的 DNS 启动参数 |______4.3.2 部署 CoreDNS 服务 |______4.3.3 服务名的 DNS 解析 |______4.3.4 CoreDNS 的配置说明 |____4.4 Node 本地 DNS 缓存 |____4.5 Pod 的 DNS 域名相关特性 |______4.5.1 Pod 的 DNS 域名 |______4.5.2 为 Pod 自定义 hostname 和 subdomain |______4.5.3 Pod 的 DNS 策略 |______4.5.4 Pod 中的自定义 DNS 配置 |____4.6 Ingress7 层路由机制 |______4.6.1 一个完整的例子(Ingress Controller±ingress 策略+客户端访问) |______4.6.2 Ingress资源对象详解 |______4.6.3 Ingress 策略配置详解 |______4.6.4 Ingress 的 TLS 安全设置

········第 5 章核心组件的运行机制········ |____5.1 Kubernetes API Server 原理解析 |______5.1.1 Kubernetes API Serveri 概述 |______5.1.2 API Server 架构解析 |______5.1.3 独特的 Kubernetes Proxy API 接口 |______5.1.4 集群功能模块之间的通信 |______5.1.5 API Server 网络隔离的设计 |____5.2 Controller Manager 原理解析 |______5.2.1 副本调度控制器 |______5.2.2 Node Controller |______5.2.3 ResourceQuota Controller |______5.2.4 Namespace Controller |______5.2.5 Service Controller5Endpoints Controller |____5.3 Scheduler原理解析 |______5.3.1 Scheduler 的调度流程 |______5.3.2 Scheduler Framework |______5.3.3 多调度器特性 |____5.4 kubelet 运行机制解析 |______5.4.1 节点管理 |______5.4.2Pod 管理 |______5.4.3 容器健康检查 |______5.4.4 cAdvisor资源监控 |______5.4.5 容器运行时 |____5.5kube-proxy 运行机制解析 |______5.5.1 第一代 Proxy |______5.5.2 第二代 Proxy |______5.5.3 第三代 Proxy

········第 6 章深入分析集群安全机制········ |____6.1 API Server 认证管理 |______6.1.1 HTTPS 证书认证 |______6.1.2 HTTP Bearer Token 认证 |______6.1.3 OpenID Connect Token第三方认证 |______6.1.4 Authenticating Proxy(认证代理) |____6.2 API Server 授权管理 |______6.2.1 RBAC 授权模式详解 |______6.2.2 Webhook 授权模式详解 |______6.2.3 RBAC 授权模式详解 |______6.2.4 Node 授权模式详解 |____6.3 Admission Control |____6.4 Service Account |____6.5 Secret 私密凭据 |____6.6 Pod 安全策略 |______6.6.1 PodSecurityPolicy 的工作机制 |______6.6.2 PodSecurityPolicy 配置详解 |______6.6.3 PodSecurityPolicy 策略示例 |______6.6.4 PodSecurityPolicy 的 RBAC 授权 |______6.6.5 Pod 安全设置(Security Context)详解

········第 7 章网络原理········ |____7.1 Kubernetes 网络模型 |____7.2 Docker 网络基础 |______7.2.1 网络命名空间 |______7.2.2 Veth 设备对 |______7.2.3 网桥 |______7.2.4 iptablesNetfilter |______7.2.5 路由 |____7.3 Docker 的网络实现 |______7.3.1 查看 Docker 启动后的系统情况 |______7.3.2 查看容器启动后的网络配置(容器无端口映射) |______7.3.3 查看容器启动后的网络配置(容器有端口映射) |______7.3.4 Docker 的网络局限性 |____7.4 Kubernetes 的网络实现 |______7.4.1 容器到容器的通信 |______7.4.2 Pod 之间的通信 |____7.5 Pod 和 Service 网络实战 |______7.5.1部署一个RC/Pod |______7.5.2 发布一个服务 |____7.6 CNI 网络模型 |______7.6.1 CNM 网络模型简介 |______7.6.2 CNI 网络模型详解 |______7.6.3 在 Kubernetest 中使用网络插件 |____7.7 开源容器网络方案 |______7.7.1 Flannel 插件的原理和部署示例 |______7.7.2 Open vSwitch 插件的原理和部署示例 |______7.7.3 直接路由的原理和部署示例 |______7.7.4 Calico 插件的原理和部署示例 |____7.8 Kubernetes 的网络策略 |______7.8.1 网络策略设置说明 |______7.8.2 Selector功能说明 |______7.8.3 为命名空间配置默认的网络策略 |______7.8.4 网络策略应用示例 |______7.8.5 NetworkPolicy 的发展 |____7.9 Kubernetes对 IPv4 和 IPv6 双栈的支持 |______7.9.1 为 Kubernetes 集群启用 IPv4 和 IPv6 双栈 |______7.9.2 Pod 双栈 IP 地址验证 |______7.9.3 Service 双栈 IP 地址验证

········第 8 章存储原理和应用········ |____8.1 Kubernetes 存储机制概述 |______8.1.1 将资源对象映射为存储卷 |______8.1.2 Node 本地存储卷 |____8.2 持久卷(Persistent Volume) 详解 |______8.2.1 PV 和 PVC 的工作原理 |______8.2.2 PV 详解 |______8.2.3 PVC 详解 |______8.2.4 Pod 使用 PVC |______8.2.5 StorageClass 详解 |____8.3 动态存储管理实战GlusterFS |______8.3.1 准备工作 |______8.3.2 创建 GlusterFS 管理服务容器集群 |______8.3.3 创建 Heketi 服务 |______8.3.4 通过 Ieketi 管理 GlusterFS集群 |______8.3.5 定义 StorageClass |______8.3.6 定义 PVC |______8.3.7 Pod 使用 PVC 的存储资源 |____8.4 CSI 存储机制详解 |______8.4.1 CSI 的设计背景 |______8.4.2 CSI 的核心组件和部署架构 |______8.4.3 CSI 存储插件应用实战 |______8.4.4 CSI 存储快照管理 |______8.4.5 CSI 的发展

········第 9 章 Kubernetes 开发指南········ |___9.1 REST 简述 |___9.2 Kubernetes API详解 |______9.2.1 Kubernetes API 概述 |______9.2.2 Kubernetes API 版本的演进策略 |______9.2.3 API Groups (API) |______9.2.4 API REST 的方法说明 |______9.2.5 API Serverl 响应说明 |___9.3 使用 Fabric8 访问 Kubernetes API |______9.3.1 具体应用示例 |______9.3.2 其他客户端库 |___9.4 Kubernetes API 的扩展 |______9.4.1 使用 CRD 扩展 API 资源 |______9.4.2 使用 API 聚合机制扩展 API 资源

········第 10 章 Kubernetes运维管理········ |___10.1Node 管理 |______10.1.1Node 的隔离与恢复 |______10.1.2Node 的扩容 |___10.2 更新资源对象的 Label |___10.3 Namespace集群环境共享与隔离 |______10.3.1 创建 Namespace |______10.3.2 定义 Context |______10.3.3 设置工作组在特定 Context 中工作 |___10.4 Kubernetes资源管理 |______10.4.1 计算资源管理 |______10.4.2 资源配置范围管理(LimitRange) |______10.4.3 资源服务质量管理(Resource QoS) |______10.4.4 资源配额管理(Resource Quotas) |______10.4.5 ResourceQuota 和 LimitRange3 实践 |______10.4.6 Pod 中多个容器共享进程命名空间 |______10.4.7 PID 资源管理 |______10.4.8 节点的 CPU 管理策略 |______10.4.9 拓扑管理器 |___10.5 资源紧缺时的 Pod 驱逐机制 |______10.5.1 驱逐时机 |______10.5.2 驱逐阈值 |______10.5.3 节点状态 |______10.5.4 节点状态的振荡 |______10.5.5 回收 Node 级别的资源 |______10.5.6 驱逐用户的 Pod |______10.5.7 资源最少回收量 |______10.5.8 节点资源紧缺情况下的系统行为 |______10.5.9 可调度的资源和驱逐策略实践 |______10.5.10 现阶段的问题 |___10.6 Pod Disruption Budget(主动驱逐保护) |___10.7 Kubernetes集群监控 |______10.7.1 使用 Metrics Server监控 Node 和 Pod 的 CPU 和内存使用数据 |______10.7.2 Prometheus+Grafana集群性能监控平台搭建 |___10.8 Kubernetes:集群日志管理 |______10.8.1 容器应用和系统组件输出日志的各种场景 |______10.8.2 Fluentd. +Elasticsearch+Kibana 日志系统部署 |______10.8.3 部署日志采集 sidecar 工具采集容器日志 |___10.9 Kubernetes 的审计机制 |___10.10 使用 Web UI (Dashboard)管理集群 |___10.11 Helm: Kubernetes)应用包管理工具 |______10.11.1 Helm 的整体架构 |______10.11.2 Helm 版本说明 |______10.11.3 Helm 的安装 |______10.11.4 Helm 的使用 |______10.11.5 Chart 说明 |______10.11.6 搭建私有 Chart 仓库

········第 11 章 Trouble Shooting 指南········ |___11.1 查看系统 Event |___11.2 查看容器日志 |___11.3 查看 Kubernetes服务日志 |___11.4 常见问题 |______11.4.1 由于无法下载 pause 镜像导致 Pod 一直处于 Pending 状态 |______11.4.2 Pod 创建成功,但 RESTARTS 数量持续增加 |______11.4.3 通过服务名无法访问服务 |___11.5 寻求帮助

········第 12 章 Kubernetes 开发中的新功能········ |___12.1 对 Windows 容器的支持 |______12.1.1 在 Windows Server上安装 Docker |______12.1.2 在 Windows Server上部署 Kubernetes Node 组件 |______12.1.3 在 Windows Server上部署容器应用和服务 |______12.1.4 Kubernetes支持的 Windows 容器特性、限制和发展趋势 |___12.2 对 GPU 的支持 |______12.2.1 环境准备 |______12.2.2 在容器中使用 GPU 资源 |______12.2.3 发展趋势 |___12.3 Pod 的垂直扩缩容 |______12.3.1 VPA 详解 |______12.3.2 安装 Vertical Pod Autoscaler |______12.3.3 为 Pod 设置垂直扩缩容 |______12.3.4 注意事项 |___12.4 Kubernetes 生态系统与演进路线 |______12.4.1 Kubernetes CNCF |______12.4.2 Kubernetes 的演进路线 |______12.4.3 Kubernetes 的开发模式

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.0585s