Skip to main content
Skip table of contents

クーバネティスクラスターを手動で登録する

概要

QueryPie では、アクセス制御が必要なオンプレミス環境にあるクーバネティスクラスターを手動で登録することができます。

クラスターの手動登録

個々のサーバを手動で登録するには、クラスターの基本情報を入力する必要があります。

image-20240721-054859.png
  1. 管理者 > クーバネティス > 接続管理 > クラスター メニューに移動します

  2. 右上にある+ Create Clusterボタンをクリックします。

  3. 手動クラスター登録のために入力する詳細は次のとおりです:

    1. 情報
      手動で登録するクラスターの基本情報を入力します。

      image-20240721-055007.png
      1. Name: クラスターを識別するための名前を入力します。(必須)

        • この情報は作成後変更できません。

      2. Version: クラスターのバージョンを入力します。(オプション)

        • これは後で認証テスト中に自動的に入力されます。

      3. API URL: クーバネティス API リクエストを受け取るクラスターの API URL を入力します。(必須)

    2. Credential
      クラスターのクーバネティス API サーバーへのアクセスを許可するには、クラスター自体からサービスアカウントトークンと CA 証明書を取得する必要があります。以下のクーバネティスクラスター統合スクリプトガイドを参照してください。

      image-20240721-055046.png
      1. Service Account Token: QueryPie Proxy がユーザーのクーバネティス API 呼び出しに使用するクーバネティスクラスターのサービスアカウントトークンを入力します。

      2. Certificate Authority: クーバネティス API サーバの証明書を検証するために QueryPie が使用する CA 証明書を入力します。

      3. Verify Credential: サービスアカウントトークンと CA 証明書の両方を入力すると、このボタンが有効になります。クリックすると、接続が正常に確立されるか確認されます。

        • 実行結果

          1. (tick) Verified: クラスター接続が成功したことを示し、サービスアカウントトークンと CA 証明書の両方が正しく入力されていることを確認します。

          2. (오류) Verification Failed: クラスター接続に失敗したことを示します。これは、サービスアカウントトークンまたは CA 証明書の値にエラーがあるか、ネットワーク接続に問題がある可能性があります。

    3. ログ記録オプション
      このクラスターのログ記録オプションを選択します。

      image-20240721-055129.png
      1. Request Audit: このクラスターのクーバネティス API 呼び出し履歴のロギングを有効にします。デフォルト設定はOnです。この機能をOffにした場合、

        1. このクラスターのクーバネティス API 呼び出し履歴は記録されません。

        2. Request Audit Types と Pod Session Recording のすべてのサブオプションが一括して無効になります。

      2. Request Audit Types: 管理者は、このクラスターで監査する動詞を選択できます。デフォルト設定では、以下の基本動詞がすべて選択されます。

        1. 動詞の種類

          1. get

          2. list

          3. watch

          4. create

          5. update

          6. patch

          7. delete

          8. deletecollection

        2. ✅ Select All: すべての API コールに対して監査を実行します。

      3. Pod Session Recording: このクラスター内でポッドの実行コマンドによって開かれたセッションの記録を有効にします。デフォルト設定はOnです。以下の条件を満たさない限り、この機能はOffになります:

        1. Request Audit が有効 Onになっている。

        2. Request Audit Types で以下の動詞が選択されている:

          1. create

          2. get

    4. Tags
      必要に応じて、個々のクラスターのタグを手動で入力できます。クラウドプロバイダー経由で同期されたクラスターの場合、プラットフォームからインポートされたタグも表示されます (同期によってインポートされたタグは削除または変更できないことに注意してください)。

      image-20240721-055210.png
      1. + Add Tagボタンをクリックして新しい行を追加し、必要なタグの値を入力します。

      2. タグはキーバリュー形式で入力します。

        1. Key: タグを区別するキー値を512文字以内で入力します。

          1. キーは必須で、重複して入力することはできません。

          2. 重複は大文字と小文字を区別してチェックされます。

        2. Value: フィルタリングに使用する値を256文字以内で入力します。

  4. 以上の手順が完了したら、Saveボタンをクリックしてクラスターの登録に成功します。

クーバネティスクラスター統合スクリプトガイド

image-20240511-033842.png
  • 管理者は、対象のクーバネティスクラスターに事前にアクセスできる必要があります。

  • 管理者は、管理者 > クーバネティス > 接続管理 > クラスター > + Create Cluster > Credential に移動し、ガイダンスボックス内の “download and run this script” リンクをクリックしてスクリプトをダウンロードできます。

generate_kubepie_sa.sh script contents
CODE
#!/bin/bash

set -o nounset -o errexit -o pipefail

RESOURCE_PREFIX=querypie
NAMESPACE=querypie

SERVICE_ACCOUNT_NAME=${RESOURCE_PREFIX}-sa
CLUSTER_ROLE_NAME=${RESOURCE_PREFIX}-role
CLUSTER_ROLE_BINDING_NAME=${RESOURCE_PREFIX}-crb
SERVICE_ACCOUNT_SECRET_NAME=${SERVICE_ACCOUNT_NAME}-secret

echo "Creating the Queypie Service Account and grant permission"
kubectl apply -f - <<EOF
apiVersion: v1
kind: Namespace
metadata:
  name: ${NAMESPACE}
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: ${SERVICE_ACCOUNT_NAME}
  namespace: ${NAMESPACE}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ${CLUSTER_ROLE_NAME}
rules:
- apiGroups:
  - ""
  resources:
  - users
  - groups
  - serviceaccounts
  verbs:
  - impersonate
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ${CLUSTER_ROLE_BINDING_NAME}
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: ${CLUSTER_ROLE_NAME}
subjects:
- kind: ServiceAccount
  name: ${SERVICE_ACCOUNT_NAME}
  namespace: ${NAMESPACE}
EOF


SA_SECRET_NAME=$(kubectl get -n ${NAMESPACE} sa/${SERVICE_ACCOUNT_NAME} -o "jsonpath={.secrets[0]..name}")
if [ -z $SA_SECRET_NAME ]
then
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
type: クーバネティス.io/service-account-token
metadata:
  name: ${SERVICE_ACCOUNT_SECRET_NAME}
  namespace: ${NAMESPACE}
  annotations:
    クーバネティス.io/service-account.name: "${SERVICE_ACCOUNT_NAME}"
EOF
SA_SECRET_NAME=${SERVICE_ACCOUNT_SECRET_NAME}
fi

if [[ "$OSTYPE" == "linux-gnu" ]]; then
    BASE64_DECODE_FLAG="-d"
elif [[ "$OSTYPE" == "darwin"* ]]; then
    BASE64_DECODE_FLAG="-D"
elif [[ "$OSTYPE" == "linux-musl" ]]; then
    BASE64_DECODE_FLAG="-d"
else
    echo "Unknown OS ${OSTYPE}"
    exit 1
fi

SA_TOKEN=$(kubectl get -n ${NAMESPACE} secrets/${SA_SECRET_NAME} -o "jsonpath={.data['token']}" | base64 ${BASE64_DECODE_FLAG})
CA_CERT=$(kubectl get -n ${NAMESPACE} secrets/${SA_SECRET_NAME} -o "jsonpath={.data['ca\.crt']}" | base64 ${BASE64_DECODE_FLAG})

echo "
Finished successfully.
Please copy the token and ca cert below and paste them into the credential input box on the querypie clusters page.

>>> Service Account token
${SA_TOKEN}

--------------

>>> CA Cert
${CA_CERT}"
  • スクリプトをダウンロードしたら、ダウンロードしたディレクトリに移動し、以下のコマンドを実行して実行権限を付与し、スクリプトを実行します:

CODE
chmod +x generate_kubepie_sa.sh
./generate_kubepie_sa.sh

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.