Docker 与 Kubernetes

Kubernetes 入门

Frank Heilmann

Platform Architect and Freelance Instructor

容器编排工具

容器编排工具

  • 现代软件栈通常包含成千上万的独立容器
  • 管理这些容器称为容器编排, 市面上有多种容器编排工具
  • Kubernetes 的估算市场份额远超 95%
Kubernetes 入门

用于编排的 Kubernetes

  • Kubernetes 解决容器编排的常见难题, 如:
    • 调度与网络(部署位置及如何连接)
    • 为容器挂载存储
  • 为此,Kubernetes 会与容器引擎交互。

Kubernetes 与 Docker

Kubernetes 入门

Docker 与 Kubernetes 的关系

  • Docker 常作为首选容器引擎
  • Kubernetes 以 Docker 为容器引擎进行调度与维护
  • Docker 通常用于两件事:
    • 创建与更新 Docker 镜像
    • 从镜像启动容器
  • Kubernetes 从不创建 Docker 镜像;这由 Docker 完成
Kubernetes 入门

Kubernetes Manifest

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25.4
        ports:
        - containerPort: 80
  • Kubernetes 对象(如容器)通过Kubernetes Manifest描述
  • Manifest 是YAML 文件,定义所需对象、配置、调度位置等
  • Manifest 是声明式的,即描述你要的目标/状态
  • 它们不是命令式,即不描述如何实现
Kubernetes 入门

kubectl

kubectl 和 Kubernetes

  • kubectl 是与 Kubernetes 交互的命令行工具
  • kubectl 提供大量命令与选项
  • kubectl 读取 Manifest,经 API 发送给 Kubernetes, 由其计算如何达成目标状态
  • 发音为"cube cuddle"
Kubernetes 入门

Passons à la pratique !

Kubernetes 入门

Preparing Video For Download...