コンテナのデプロイ

このページでは、Binary Authorization が有効になっている Google Kubernetes Engine(GKE)クラスタにコンテナ イメージをデプロイする方法について説明します。デプロイに使用するコマンドは、Binary Authorization を使用しないクラスタにイメージをデプロイする場合と同じです。

始める前に

GKE を操作するために kubectl をインストールします。

kubectl を構成する

kubectl のインストール用にローカルの kubeconfig ファイルを更新する必要があります。これにより、GKE でクラスタにアクセスするために必要な認証情報とエンドポイント情報が提供されます。

kubectl を構成するには:

gcloud container clusters get-credentials \
    --zone ZONE \
    CLUSTER_NAME

ここで

  • ZONEは、クラスタが実行されている GKE ゾーンの名前です(例: us-central1-a1)。
  • CLUSTER_NAME はクラスタの名前です。

コンテナ イメージをデプロイする

イメージをデプロイするには、kubectl run コマンドを使用します。

Binary Authorization はイメージパスとダイジェストの両方を使用して証明書を検索するため、1.0latest などのタグではなく、ダイジェストを使用してイメージをデプロイする必要があります。

イメージをデプロイするには:

kubectl run ${DEPLOYMENT_NAME} \
    --image ${IMAGE_PATH}@${IMAGE_DIGEST} --port 8080

ここで

  • DEPLOYMENT_NAME は、GKE ワークロードに使用する名前です。
  • IMAGE_PATH:IMAGE_DIGEST は、Container Registry または別のレジストリのイメージパスとダイジェストです(例: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4)。

ポリシーをオーバーライドする

Binary Authorization は、コンテナ イメージをデプロイするときに認証ポリシーをオーバーライドするブレークグラスという機能をサポートしています。この機能は、Kubernetes アドミッション コントローラー仕様の推奨事項に沿って実装されています。

次の例は、ブレークグラスでポリシーをオーバーライドして、GKE Pod を作成する方法を示しています。

  1. YAML 形式の構成ファイルを作成します。このファイルには、ブレークグラス アノテーションと、Pod の作成に必要な情報が含まれます。

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-name
      annotations:
        alpha.image-policy.k8s.io/break-glass: "true"
    spec:
      containers:
      - name: container-name
        image: gcr.io/google-samples/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4
    

    新しいリソースの構成は JSON 形式で指定することもできます。

  2. kubectl を使用して Pod を作成します。

    kubectl create -f YAML_file
    

イメージが実行されていることを確認する

イメージが実行されていることを確認するには、次のように入力します。

kubectl get pods

このコマンドを実行すると、デプロイが成功したことを示す次のようなメッセージが出力されます。

NAME                            READY     STATUS    RESTARTS   AGE
hello-server-579859fb5b-h2k8s   1/1       Running   0          1m

監査ログを表示する

Cloud Logging で適用ステータスとデプロイ メッセージを確認する方法については、監査ログの表示をご覧ください。