Docker 與 Kubernetes

Kubernetes 入門

Frank Heilmann

Platform Architect and Freelance Instructor

容器協調工具

容器協調工具

  • 現代軟體堆疊通常包含上千個容器。
  • 管理這些容器稱為容器協調(Container Orchestration), 有多種容器協調工具可用
  • Kubernetes 的市佔率高於 95%
Kubernetes 入門

用 Kubernetes 來協調

  • Kubernetes 解決容器協調的常見挑戰, 例如:
    • 排程與網路(在哪裡部署容器、如何連線)
    • 如何將儲存體掛載到容器
  • 為此,Kubernetes 會與容器引擎(Container Engines)互動。

Kubernetes 與 Docker

Kubernetes 入門

Docker 與 Kubernetes 的關係

  • Docker 常作為你選用的容器引擎。
  • Kubernetes 以 Docker 為容器引擎進行排程並維護容器。
  • Docker 通常用於兩件事:
    • 建立與更新 Docker 映像檔
    • 由映像檔啟動容器
  • Kubernetes 不會建立 Docker 映像檔;這由 Docker 負責。
Kubernetes 入門

Kubernetes 清單(Manifests)

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 清單(Manifests)描述。
  • 清單是YAML 檔,描述你要哪些物件、如何設定、要排程在哪裡,等等。
  • 清單是宣告式的,也就是你描述你想要的結果/狀態
  • 它們不是指令式;你不需描述如何達成
Kubernetes 入門

kubectl

kubectl 與 Kubernetes

  • kubectl 是與 Kubernetes 互動的命令列工具。
  • kubectl 提供許多指令與選項。
  • kubectl 讀取你的清單,透過 Kubernetes 的 API 傳送, 由 Kubernetes 計算如何達成你要的狀態。
  • 發音為「cube cuddle」。
Kubernetes 入門

一起來練習吧!

Kubernetes 入門

Preparing Video For Download...