热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kubernetes进阶实战

#Kubernetes进阶实战####勘误和支持###1Kubernetes系统基础####1.1容器技术概述#####1.1.1容器技术的功用#####1.1

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


推荐阅读
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 处理docker容器时间和宿主机时间不一致问题的方法
    本文介绍了处理docker容器时间和宿主机时间不一致问题的方法,包括复制主机的localtime到容器、处理报错情况以及重启容器的步骤。通过这些方法,可以解决docker容器时间和宿主机时间不一致的问题。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
author-avatar
faihiwang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有