zoukankan      html  css  js  c++  java
  • Kubernetes进阶实战

    Kubernetes进阶实战

    勘误和支持

    1 Kubernetes系统基础

    1.1 容器技术概述

    1.1.1 容器技术的功用
    1.1.2 容器简史
    1.1.3 Docker的功能限制

    1.2 Kubernetes概述

    1.2.1 Kubernetes简史
    1.2.2 Kubernetes特性
    1.2.3 Kubernetes概念和术语

    1.3 Kubernetes集群组件

    1.3.1 Master组件
    1.3.2 Node组件
    1.3.3 核心附件

    1.4 Kubernetes网络模型基础

    1.4.1 网络模型概述
    1.4.2 集群上的网络通信

    1.5 本章小结

    2 Kubernetes快速入门

    2.1 Kubernetes的核心对象

    2.1.1 Pod资源对象
    2.1.2 Controller
    2.1.3 Service
    2.1.4 部署应用程序的主体过程

    2.2 部署Kubernetes集群

    2.2.1 kubeadm部署工具
    2.2.2 集群运行模式
    2.2.3 准备用于实践操作的集群环境
    2.2.4 获取集群环境相关的信息

    2.3 kubectl使用基础与示例

    2.4 命令式容器应用编排

    2.4.1 部署应用(Pod)
    2.4.2 探查Pod及应用详情
    2.4.3 部署Service对象
    2.4.4 扩容和缩容
    2.4.5 修改及删除对象

    2.5 本章小结

    3 资源管理基础

    3.1 资源对象及API群组

    3.1.1 Kubernetes的资源对象
    3.1.2 资源及其在API中的组织形式
    3.1.3 访问Kubernetes REST API

    3.2 对象类资源格式

    3.2.1 资源配置清单
    3.2.2 metadata嵌套字段
    3.2.3 spec和status字段
    3.2.4 资源配置清单格式文档
    3.2.5 资源对象管理方式

    3.3 kubectl命令与资源管理

    3.3.1 资源管理操作概述
    3.3.2 kubectl的基本用法

    3.4 管理名称空间资源

    3.4.1 查看名称空间及其资源对象
    3.4.2 管理Namespace资源

    3.5 Pod资源的基础管理操作

    3.5.1 陈述式对象配置管理方式
    3.5.2 声明式对象配置管理方式

    3.6 本章小结

    4 管理Pod资源对象

    4.1 容器与Pod资源对象

    4.2 管理Pod对象的容器

    4.2.1 镜像及其获取策略
    4.2.2 暴露端口
    4.2.3 自定义运行的容器化应用
    4.2.4 环境变量
    4.2.5 共享节点的网络名称空间
    4.2.6 设置Pod对象的安全上下文

    4.3 标签与标签选择器

    4.3.1 标签概述
    4.3.2 管理资源标签
    4.3.3 标签选择器
    4.3.4 Pod节点选择器nodeSelector

    4.4 资源注解

    4.4.1 查看资源注解
    4.4.2 管理资源注解

    4.5 Pod对象的生命周期

    4.5.1 Pod的相位
    4.5.2 Pod的创建过程
    4.5.3 Pod生命周期中的重要行为
    4.5.4 容器的重启策略
    4.5.5 Pod的终止过程

    4.6 Pod存活性探测

    4.6.1 设置exec探针
    4.6.2 设置HTTP探针
    4.6.3 设置TCP探针
    4.6.4 存活性探测行为属性

    4.7 Pod就绪性探测

    4.8 资源需求及资源限制

    4.8.1 资源需求
    4.8.2 资源限制
    4.8.3 容器的可见资源
    4.8.4 Pod的服务质量类别

    4.9 本章小结

    5 Pod控制器

    5.1 关于Pod控制器

    5.1.1 Pod控制器概述
    5.1.2 控制器与Pod对象
    5.1.3 Pod模板资源

    5.2 ReplicaSet控制器

    5.2.1 ReplicaSet概述
    5.2.2 创建ReplicaSet
    5.2.3 ReplicaSet管控下的Pod对象
    5.2.4 更新ReplicaSet控制器
    5.2.5 删除ReplicaSet控制器资源

    5.3 Deployment控制器

    5.3.1 创建Deployment
    5.3.2 更新策略
    5.3.3 升级Deployment
    5.3.4 金丝雀发布
    5.3.5 回滚Deployment控制器下的应用发布
    5.3.6 扩容和缩容

    5.4 DaemonSet控制器

    5.4.1 创建DaemonSet资源对象
    5.4.2 更新DaemonSet对象

    5.5 Job控制器

    5.5.1 创建Job对象
    5.5.2 并行式Job
    5.5.3 Job扩容
    5.5.4 删除Job

    5.6 CronJob控制器

    5.6.1 创建CronJob对象
    5.6.2 CronJob的控制机制

    5.7 ReplicationController

    5.8 Pod中断预算

    5.9 本章小结

    6 Service和Ingress

    6.1 Service资源及其实现模型

    6.1.1 Service资源概述
    6.1.2 虚拟IP和服务代理

    6.2 Service资源的基础应用

    6.2.1 创建Service资源
    6.2.2 向Service对象请求服务
    6.2.3 Service会话粘性

    6.3 服务发现

    6.3.1 服务发现概述
    6.3.2 服务发现方式:环境变量
    6.3.3 ClusterDNS和服务发现
    6.3.4 服务发现方式:DNS

    6.4 服务暴露

    6.4.1 Service类型
    6.4.2 NodePort类型的Service资源
    6.4.3 LoadBalancer类型的Service资源
    6.4.4 ExternalName Service

    6.5 Headless类型的Service资源

    6.5.1 创建Headless Service资源
    6.5.2 Pod资源发现

    6.6 Ingress资源

    6.6.1 Ingress和Ingress Controller
    6.6.2 创建Ingress资源
    6.6.3 Ingress资源类型
    6.6.4 部署Ingress控制器(Nginx)

    6.7 案例:使用Ingress发布tomcat

    6.7.1 准备名称空间
    6.7.2 部署tomcat实例
    6.7.3 创建Service资源
    6.7.4 创建Ingress资源
    6.7.5 配置TLS Ingress资源

    6.8 本章小结

    7 存储卷与数据持久化

    7.1 存储卷概述

    7.1.1 Kubernetes支持的存储卷类型
    7.1.2 存储卷的使用方式

    7.2 临时存储卷

    7.2.1 emptyDir存储卷
    7.2.2 gitRepo存储卷

    7.3 节点存储卷hostPath

    7.4 网络存储卷

    7.4.1 NFS存储卷
    7.4.2 RBD存储卷
    7.4.3 GlusterFS存储卷
    7.4.4 Cinder存储卷

    7.5 持久存储卷

    7.5.1 创建PV
    7.5.2 创建PVC
    7.5.3 在Pod中使用PVC
    7.5.4 存储类
    7.5.5 PV和PVC的生命周期

    7.6 downwardAPI存储卷

    7.6.1 环境变量式元数据注入
    7.6.2 存储卷式元数据注入

    7.7 本章小结

    8 配置容器应用:ConfigMap和Secret

    8.1 容器化应用配置方式

    8.2 通过命令行参数配置容器应用

    8.3 利用环境变量配置容器应用

    8.4 应用程序配置管理及ConfigMap资源

    8.4.1 创建ConfigMap对象
    8.4.2 向Pod环境变量传递ConfigMap对象键值数据
    8.4.3 ConfigMap存储卷
    8.4.4 容器应用重载新配置
    8.4.5 使用ConfigMap资源的注意事项

    8.5 Secret资源

    8.5.1 Secret概述
    8.5.2 创建Secret资源
    8.5.3 Secret存储卷
    8.5.4 imagePullSecret资源对象

    8.6 本章小结

    9 StatefulSet控制器

    9.1 StatefulSet概述

    9.1.1 Stateful应用和Stateless应用
    9.1.2 StatefulSet控制器概述
    9.1.3 StatefulSet的特性

    9.2 StatefulSet基础应用

    9.2.1 创建StatefulSet对象
    9.2.2 Pod资源标识符及存储卷

    9.3 StatefulSet资源扩缩容

    9.4 StatefulSet资源升级

    9.4.1 滚动更新
    9.4.2 暂存更新操作
    9.4.3 金丝雀部署
    9.4.4 分段更新
    9.4.5 其他话题

    9.5 案例:etcd集群

    9.5.1 创建Service资源
    9.5.2 etcd StatefulSet

    9.6 本章小结

    10 认证、授权与准入控制

    10.1 访问控制概述

    10.1.1 用户账户与用户组
    10.1.2 认证、授权与准入控制基础

    10.2 服务账户管理与应用

    10.2.1 Service Account自动化
    10.2.2 创建服务账户
    10.2.3 调用imagePullSecret资源对象

    10.3 X.509数字证书认证

    10.3.1 Kubernetes中的SSL/TLS认证
    10.3.2 客户端配置文件kubeconfig
    10.3.3 TLS bootstrapping机制

    10.4 基于角色的访问控制:RBAC

    10.4.1 RBAC授权插件
    10.4.2 Role和RoleBinding
    10.4.3 ClusterRole和ClusterRoleBinding
    10.4.4 聚合型ClusterRole
    10.4.5 面向用户的内建ClusterRole
    10.4.6 其他的内建ClusterRole和ClusterRoleBinding

    10.5 Kubernetes Dashboard

    10.5.1 部署HTTPS通信的Dashboard
    10.5.2 配置token认证
    10.5.3 配置kubeconfig认证

    10.6 准入控制器与应用示例

    10.6.1 LimitRange资源与LimitRanger准入控制器
    10.6.2 ResourceQuota资源与准入控制器
    10.6.3 PodSecurityPolicy

    10.7 本章小结

    11 网络模型与网络策略

    11.1 Kubernetes网络模型及CNI插件

    11.1.1 Docker容器的网络模型
    11.1.2 Kubernetes网络模型
    11.1.3 Pod网络的实现方式
    11.1.4 CNI插件及其常见的实现

    11.2 flannel网络插件

    11.2.1 flannel的配置参数
    11.2.2 VxLAN后端和direct routing
    11.2.3 host-gw后端

    11.3 网络策略

    11.3.1 网络策略概述
    11.3.2 部署Canal提供网络策略功能
    11.3.3 配置网络策略
    11.3.4 管控入站流量
    11.3.5 管控出站流量
    11.3.6 隔离名称空间
    11.3.7 网络策略应用案例

    11.4 Calico网络插件

    11.4.1 Calico工作特性
    11.4.2 Calico系统架构
    11.4.3 Calico部署要点
    11.4.4 部署Calico提供网络服务和网络策略
    11.4.5 客户端工具calicoctl

    11.5 本章小结

    12 Pod资源调度

    12.1 Kubernetes调度器概述

    12.1.1 常用的预选策略
    12.1.2 常用的优选函数

    12.2 节点亲和调度

    12.2.1 节点硬亲和性
    12.2.2 节点软亲和性

    12.3 Pod资源亲和调度

    12.3.1 位置拓扑
    12.3.2 Pod硬亲和调度
    12.3.3 Pod软亲和调度
    12.3.4 Pod反亲和调度

    12.4 污点和容忍度

    12.4.1 定义污点和容忍度
    12.4.2 管理节点的污点
    12.4.3 Pod对象的容忍度
    12.4.4 问题节点标识

    12.5 Pod优选级和抢占式调度

    12.6 本章小结

    13 Kubernetes系统扩展

    13.1 自定义资源类型(CRD)

    13.1.1 创建CRD对象
    13.1.2 自定义资源格式验证
    13.1.3 子资源
    13.1.4 使用资源类别
    13.1.5 多版本支持
    13.1.6 自定义控制器基础

    13.2 自定义API Server

    13.2.1 自定义API Server概述
    13.2.2 APIService对象

    13.3 Kubernetes集群高可用

    13.3.1 etcd高可用
    13.3.2 Controller Manager和Scheduler高可用

    13.4 Kubernetes的部署模式

    13.4.1 关键组件
    13.4.2 常见的部署模式

    13.5 容器时代的DevOps概述

    13.5.1 容器:DevOps协作的基础
    13.5.2 泛型端到端容器应用程序生命周期工作流
    13.5.3 基于Kubernetes的DevOps

    13.6 本章小结

    14 资源指标及HPA控制器

    14.1 资源监控及资源指标

    14.1.1 资源监控及Heapster
    14.1.2 新一代监控架构

    14.2 资源指标及其应用

    14.2.1 部署metrics-server
    14.2.2 kubectl top命令

    14.3 自定义指标与Prometheus

    14.3.1 Prometheus概述
    14.3.2 部署Prometheus监控系统
    14.3.3 自定义指标适配器k8s-prometheus-adapter

    14.4 自动弹性缩放

    14.4.1 HPA概述
    14.4.2 HPA(v1)控制器
    14.4.3 HPA(v2)控制器

    14.5 本章小结

    15 Helm程序包管理器

    15.1 Helm基础

    15.1.1 Helm的核心术语
    15.1.2 Helm架构
    15.1.3 安装Helm Client
    15.1.4 安装Tiller server
    15.1.5 Helm快速入门

    15.2 Helm Charts

    15.2.1 Charts文件组织结构
    15.2.2 Chart.yaml文件组织格式
    15.2.3 Charts中的依赖关系
    15.2.4 模板和值
    15.2.5 其他需要说明的话题
    15.2.6 自定义Charts

    15.3 Helm实践:部署EFK日志管理系统

    15.3.1 ElasticSearch集群
    15.3.2 日志采集代理fluentd
    15.3.3 可视化组件Kibana

    15.4 本章小结

    附录A 部署Kubernetes集群

    A.1 准备部署Kubernetes集群

    A.2 部署Kubernetes集群

    A.3 从集群中移除节点

    A.4 重新生成用于节点加入集群的认证命令

    附录B 部署GlusterFS及Heketi

    B.1 部署GlusterFS集群

    B.2 部署Heketi

    思维导图

    Kubernetes进阶实战

    防止博客图床图片失效,防止图片源站外链:

    http://www.processon.com/chart_image/5e5b3a9be4b0c037b6081dfa.png)

    思维导图在线编辑链接:

    https://www.processon.com/view/5e5b3a9be4b0c037b6081df7

  • 相关阅读:
    3. 动态代理Mapper实现类(官方推荐方式)
    2. MyBatis快速入门
    1.Mybaits底层执行过程
    RabbitMQ安装(windows环境)
    消息中间件(一)MQ详解及四大MQ比较
    Nginx location正则表达式
    SpringBoot
    网络协议--HTTPS
    spring--根据执行jar包的参数使用不同的环境配置
    python读取配置文件模块ConfigParser
  • 原文地址:https://www.cnblogs.com/jingle1267/p/12991957.html
Copyright © 2011-2022 走看看