Networking, Load Balancing และความปลอดภัย

Introduction to Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Labels และ Selectors เพิ่มเติม

Labels:

  • คู่ Key/Value ที่แนบกับ Kubernetes objects เช่น Pods หรือ Nodes
  • ใช้จัดกลุ่มย่อยของ objects ได้
  • แก้ไขได้ตลอดเวลา
  • ตัวอย่าง:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

Selectors:

  • ใช้ระบุ objects ผ่าน labels ได้
  • ตัวอย่าง:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Introduction to Kubernetes

Networking และ Services

Kubernetes Services

  • แต่ละ Pod จะได้รับ IP ของตัวเองภายใน cluster
  • ใช้สื่อสารระหว่าง Pods ได้
  • ไม่ค่อยมีประโยชน์นัก เนื่องจาก Pod อาจรีสตาร์ทได้ตลอดเวลา และจะได้รับ IP ใหม่
  • Services ใช้เชื่อมต่อกับ Pods และให้การเชื่อมต่อที่เสถียร
Introduction to Kubernetes

Service Manifests

Kubernetes Servicesl

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Introduction to Kubernetes

Load Balancing

Loadbalancing

  • load balancer ใน Kubernetes กระจายโหลดไปยัง Pods ต่าง ๆ
  • ช่วยป้องกันโหลดที่ไม่สม่ำเสมอ เพิ่มประสิทธิภาพ และลดเวลาตอบสนอง
  • ตัวอย่าง:

    • ให้บริการจาก Pods หลายตัวพร้อมกัน
    • load balancer จะกระจายโหลดให้ Pods อย่างสม่ำเสมอ
Introduction to Kubernetes

Load Balancing ใน Kubernetes

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • โดยทั่วไป load balancer จะถูกกำหนดค่าล่วงหน้าโดย Kubernetes Provider (Cloud Provider)
  • ไม่จำเป็นต้องประกาศ manifest เพิ่มเติมสำหรับ load balancer — ระบบจะสร้างและแนบกับ service ให้อัตโนมัติ
Introduction to Kubernetes

Ingress

Kubernetes Ingress

  • Ingress objects ใช้กำหนดเส้นทาง HTTP และ HTTPS requests (traffic) จากภายนอก cluster ไปยัง services ภายใน cluster
  • Ingress rules กำหนดว่า request ใดจะถูกให้บริการโดย service ใด
  • มักใช้ร่วมกับ load balancing
Introduction to Kubernetes

ความปลอดภัยใน Kubernetes

  • ความปลอดภัยในสถาปัตยกรรม IT สมัยใหม่เป็นเรื่องสำคัญมาก แต่มีความซับซ้อนและครอบคลุมหลายด้าน
  • Kubernetes มีส่วนประกอบที่จำเป็นครบถ้วนเพื่อรักษาความปลอดภัยของแอปพลิเคชัน เช่น:

    • "Secret" API สำหรับ objects ที่เป็นความลับ เช่น รหัสผ่าน, tokens, keys เป็นต้น
    • เครื่องมือและ APIs สำหรับเข้ารหัสการสื่อสารบนเครือข่าย
    • วิธีการยืนยันตัวตนของผู้ใช้
    • การควบคุมการเข้าถึงตามบทบาท และ ตามแอตทริบิวต์ ("RBAC" และ "ABAC")
Introduction to Kubernetes

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

Introduction to Kubernetes

Preparing Video For Download...