Kubernetes核心概念

Kubernetes架构

image.png
image.png
云产商提供各种Plugin。

Pod调度过程

image.png

Kubernetes核心概念

Pod

image.png

Volume

image.png

Deployment

image.png

Service

image.png

NameSpace

image.png

KubernetesAPI

image.png

Label 可被查询

image.png

Pod和容器设计模式

为什么需要Pod

容器的基本概念

image.png
Kubernetes = 操作系统
容器 = 进程
pod = 进程组

进程组(Pod)

image.png

  • PID=1的进程挂了,其它进程无法被回收。
  • 无法知道容器的生命周期。

image.png
Kubernetes 使得在Pod里有4个容器。共享里面的资源。(Pod只是资源分配单位)
image.png

为什么Pod一定要是原子调度单位

image.png

Pod超亲密关系

image.png

Pod的实现机制

Pod中多个容器之间最高效的共享某些资源和数据?

容器之间本来被Linux Namespace 与 Cgroups隔离。

1. 共享网络

image.png

2. 共享存储 挂在一个volumes

image.png

容器设计模式-解耦和重用

Sidecar 设计模式

  • 通过在Pod里定义专门的容器,来执行业务容器需要执行的辅助功能。(需要SSH执行的脚本,日志收集、debug应用,应用监控)
  • 优势:将辅助功能与业务解耦,实现独立发布和能力重用。

    InitContainer 编排方式

    image.png
    image.png

应用与日志收集

image.png

代理容器

image.png

适配器容器

image.png

应用编排和管理:原理

资源元信息

K&S 资源对象

  • Spec 期望的状态
  • Status 观测到的状态
  • Metadata 【1. labels 标签 2. Annotations 描述资源 3.OwnerReference 多个资源的相互关系】

    labels 标签

    image.png

    Annotations 描述资源

    image.png

    OwnerReference 多个资源的相互关系

    image.png

    控制器模式

    image.png
    image.png

    Pod 从2改为3

    image.png

    总结

    声明式API允许了: 自定义控制器
    image.png

应用编排和管理Deployment

可以直接管理pod吗?

image.png

Deployment能做什么

image.png

Deployment语法

image.png

查看Deployment状态

image.png
image.png

所有Pod的owner实际上是ReplicaSet创建出来的

image.png

更新pod镜像

image.png

架构设计

每次修改template都会有一个版本出现,这个版本就是ReplicaSet。
image.png

扩容管理

image.png

发布管理

image.png

回滚管理

image.png

应用编排和管理 Job和DeamonSet

pod能直接运行任务进程吗?

image.png

Job管理任务的控制器

image.png

Job语法

image.png

并行运行Job

image.png

CronJob

image.png

Job管理模式

image.png

DeamonSet守护进程控制器

能帮我们做什么?

image.png

应用场景

image.png

DeamonSet管理模式

image.png

应用配置管理

image.png

ConfigMap

image.png
image.png

Secret

image.png
容器资源配置
image.png

Security Context介绍

image.png

应用存储和持久化数据卷

Pod Volumes

image.png

Presistent Volumes

image.png

PresistentVolumesCliam(PVC) 设计意图

image.png
image.png
image.png

存储快照-snapshot

image.png

存储拓扑调度

image.png

可观测性-你的应用健康吗

应用健康状态

使用方式

image.png

Pod Probe Spec

image.png

Liveness VS Readness

image.png

应用故障排查

image.png

监控

image.png

Prometheus

image.png

日志场景

image.png
image.png
image.png
image.png

K&S 网络策略

image.png

Netns

image.png
image.png
image.png

Service-服务发现、负载均衡

image.png