クラスタ内の Connect Agent の更新

このページでは、Connect Agent のバージョンを更新する、または Connect Agent サービス アカウント キーをローテーションする方法について説明します。

Connect Agent の更新情報

Connect Agent はプロセスの中断を生じることなく、定期的に自動更新されます。

ただし、クラスタを登録することで、Connect Agent を最新バージョンに手動で更新することもできます。gcloud は、利用可能な最新の Connect Agent を取得して、クラスタに再インストールします。

Connect Agent サービス アカウント キーをローテーションする

サービス アカウント キーなどの、有効期間が長い認証情報を定期的にローテーションすることをおすすめします。Connect Agent が使用するサービス アカウント キーをローテーションする手順は次のとおりです。

  1. 準備を行います。

    PROJECT=[PROJECT_ID]
    NAMESPACE=$(kubectl get ns -o jsonpath={.items..metadata.name} -l hub.gke.io/project)
    SERVICE_ACCOUNT=$(kubectl get secrets -n $NAMESPACE creds-gcp \
    -o jsonpath='{.data.creds-gcp\.json}' |  base64 -d | grep client_email \
    | awk '{print $2}' | tr -d '",')
    OLD_KEY_ID=$(kubectl get secrets -n $NAMESPACE creds-gcp \
    -o jsonpath='{.data.creds-gcp\.json}' |  base64 -d | grep private_key_id \
    | awk '{print $2}' | tr -d '",')
    

    [PROJECT_ID] は、プロジェクトの一意のプロジェクト ID です。これは、Cloud Console で、または gcloud config get-value project を実行することによって確認できます。

  2. 新しいキーを作成します。

    gcloud iam service-accounts keys create --iam-account=$SERVICE_ACCOUNT creds-gcp.json
    

  3. エージェントの既存のキーを上書きします。

    これにより、エージェントは新しいシークレットで再起動し、新しい認証情報でトンネルを再確立します。

    kubectl create secret -n $NAMESPACE generic creds-gcp \
    --from-file=./creds-gcp.json --dry-run -o yaml  | kubectl replace -f  -
    
  4. エージェントの Pod のログを確認し、再接続されていることを確認します。

    kubectl logs -n $NAMESPACE -l app=gke-connect-agent
    

  5. 古いキーを削除します。

    gcloud iam service-accounts keys delete --iam-account=$SERVICE_ACCOUNT $OLD_KEY_ID
    

  6. 新しいキーのローカルコピーを削除します。

    キーを保持しないことをおすすめします。キーを紛失し、エージェントを再インストールする必要がある場合は、代わりにキーをローテーションすることをおすすめします。

    shred creds-gcp.json