Docker และ Kubernetes

Introduction to Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Container Orchestration Tools

เครื่องมือจัดการ container

  • ซอฟต์แวร์สมัยใหม่มักประกอบด้วย container จำนวนมากนับพันรายการ
  • การจัดการ container เหล่านี้เรียกว่า Container Orchestration ซึ่งมี container orchestration tools ให้เลือกใช้หลายตัว
  • Kubernetes มีส่วนแบ่งตลาดประมาณ 95% ขึ้นไป
Introduction to Kubernetes

Kubernetes สำหรับ Orchestration

  • Kubernetes แก้ปัญหาทั่วไปของ container orchestration เช่น
    • การกำหนดเวลาและเครือข่าย (จะ deploy container ที่ไหน และเชื่อมต่ออย่างไร)
    • การเชื่อมต่อ storage เข้ากับ container
  • Kubernetes ทำงานร่วมกับ Container Engines เพื่อดำเนินการดังกล่าว

Kubernetes และ Docker

Introduction to Kubernetes

ความสัมพันธ์ระหว่าง Docker และ Kubernetes

  • Docker มักเป็น container engine ที่เลือกใช้
  • Kubernetes ทำงานร่วมกับ Docker ในฐานะ container engine เพื่อกำหนดเวลาและดูแล container
  • Docker ใช้สำหรับสองงานหลัก:
    • สร้างและอัปเดต Docker image
    • เริ่มต้น container จาก image เหล่านั้น
  • Kubernetes ไม่สร้าง Docker image — งานนี้ทำผ่าน Docker
Introduction to 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 object (เช่น container) อธิบายผ่านไฟล์ที่เรียกว่า Kubernetes Manifests
  • Manifest คือ YAML file ที่ระบุว่าต้องการ object ใด กำหนดค่าอย่างไร deploy ที่ไหน และอื่นๆ อีกมาก
  • Manifest เป็นแบบ declarative คือระบุ สิ่งที่ต้องการ หรือ สถานะที่ต้องการให้เป็น
  • ไม่ใช่แบบ imperative — ไม่ต้องระบุ วิธีการให้ได้มาซึ่งสิ่งนั้น
Introduction to Kubernetes

kubectl

kubectl และ Kubernetes

  • kubectl คือเครื่องมือ command line สำหรับโต้ตอบกับ Kubernetes
  • kubectl มีคำสั่งและตัวเลือกให้ใช้งานมากมาย
  • kubectl อ่าน Manifest แล้วส่งไปยัง Kubernetes ผ่าน API จากนั้น Kubernetes จะคำนวณว่าต้องทำอะไรเพื่อให้ได้สถานะที่ต้องการ
  • ออกเสียงว่า cube cuddle ;-)
Introduction to Kubernetes

มาฝึกกันเถอะ!

Introduction to Kubernetes

Preparing Video For Download...