ネットワーク、負荷分散、セキュリティ

Kubernetes入門

Frank Heilmann

Platform Architect and Freelance Instructor

ラベルとセレクタの詳細

ラベル:

  • Pod や Node などのオブジェクトに付与する Key/Value ペア
  • オブジェクトの分類に利用可能
  • いつでも変更可能
  • 例:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

セレクタ:

  • ラベルでオブジェクトを特定
  • 例:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Kubernetes入門

ネットワークと Service

Kubernetes サービス

  • 各 Pod はクラスタ内で固有の IP(インターネットアドレス)を持つ
  • Pod 間通信に利用可能
  • ただし Pod は再起動で IP が変わるため実用的でない
  • Service に Pod を紐づけ、安定した接続性を提供
Kubernetes入門

Service マニフェスト

Kubernetes サービス

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Kubernetes入門

負荷分散

ロードバランシング

  • Kubernetes のロードバランサは負荷を Pod に分散
  • 資源の偏りを防ぎ、効率化し応答時間を短縮
  • 例:

    • 複数の Pod からサービス提供
    • ロードバランサが負荷を均等配分
Kubernetes入門

Kubernetes の負荷分散

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • ロードバランサは通常、Kubernetes プロバイダ(クラウド)で事前設定
  • 追加マニフェストは不要。サービス作成時に自動で作成・関連付け
Kubernetes入門

Ingress

Kubernetes Ingress

  • Ingress は外部からクラスタ内サービスへの HTTP/HTTPS トラフィックをルーティング
  • Ingress ルールでどのリクエストをどのサービスが処理するかを定義
  • 通常は負荷分散と併用
Kubernetes入門

Kubernetes のセキュリティ

  • 近代的 IT のセキュリティは極めて重要だが複雑で多面的
  • Kubernetes は実行中アプリを保護するための要素を備える。例:

    • 機密情報(パスワード、トークン、鍵等)向けの「Secret」API

    • 暗号化通信を有効化するツールと API

    • ユーザー認証の方法
    • ロール/属性ベースのアクセス制御(RBAC/ABAC)
Kubernetes入門

Let's practice!

Kubernetes入門

Preparing Video For Download...