名前空間メンバーと秘密管理

印刷

Cloud Z CPの基盤となる Kubernetesは、同じ物理クラスタでサポートされている複数の仮想クラスタをサポートします。これらの仮想クラスターは名前空間と呼ばれます。

もう少し詳しくは Namespacesを参照してください。

名前空間を見る

既存のネームスペースは、カード形式またはリスト形式で表示できます。

ネームスペースごとに CPUリクエスト、メモリリクエスト、CPUリミット、メモリリミット などのリソース使用率を確認できます。

また、ネームスペースの現在の状態や、詳細な情報を確認できる ダッシュボード に移動できます。


カードタイプで見る

ネームスペースを直感的に確認したい場合は、カード形式で表示できます。

カード形式で表示するには:

  1. サイドメニューから 「ネームスペース」 を選択します。

  2. ボタンをクリックします。

カード形式では、以下の情報を確認できます。

  • ネームスペース名: ネームスペースを識別するための一意の値です。リンクをクリックすると詳細情報を変更できます。

  • 作成日時: ネームスペースが作成された日時です。

  • ユーザー数: ネームスペースに権限を持つユーザーの数です。

  • 状態

    • (Active): ネームスペースが使用中です。

    • 灰色(Terminating): ネームスペースが削除中で、新しいオブジェクトには使用できません。

  • リソース使用率

    • (実際の使用量 / Resource Quotas に設定された値) で表示されます。

    • 50%以下 → 緑色, 50%以上 → 青色, 80%以上 → 赤色

    • 表示されるリソースは次の4種類です。

      • CPU Request: Resource Quotasに設定されたNamespaceの割合のうち、

      • CPU Limit

      • Memory Request

      • Memory Limit

  • ネームスペースの管理
    • ダッシュボード画面へ移動: ネームスペースの詳細情報を確認できる画面へ移動します。

    • ネームスペースの削除: ネームスペースを削除します。


リスト形式で表示

ネームスペースの詳細情報を一度に確認したい場合は、リスト形式で表示できます。

リスト形式で表示するには:

  1. サイドメニューから 「ネームスペース」 を選択します。

  2. ボタンをクリックします。



リスト形式では、以下の情報を確認できます。

  • ネームスペース名: リンクをクリックすると詳細情報を表示できます。

  • リソース使用率

    • (実際の使用量 / Resource Quotas に設定された値) で表示されます。

    • 50%以下 → 緑色, 50%以上 → 青色, 80%以上 → 赤色

    • 表示されるリソースは次の4種類です。

      • CPU Request:Resource Quotasに設定されたCPU Request値に基づいています。

      • CPU Limit:Resource Quotasに設定されたCPU Limit値に基づいています。
      • Memory Request:Resource Quotasに設定されたMemory Request値に基づいています。
      • Memory Limit:Resource Quotasに設定されたMemory Limit値に基づいています。
  • ユーザー数: ネームスペースに権限を持つユーザーの数です。

  • 状態

    • Active: ネームスペースが使用中です。

    • Terminating: ネームスペースが削除中で、新しいオブジェクトには使用できません。

  • 作成日時: ネームスペースが作成された日時です。

管理

  • 削除: ネームスペースを削除します。


名前空間の作成

新しいネームスペースを作成するには:

  1. サイドメニューから 「ネームスペース」 を選択します。

  2. 右上の 「ネームスペース追加」 をクリックします。また、カード形式の場合は最後のカードの次にあるボタンをクリックします。

  3. ネームスペース追加画面で以下の情報を入力します。



  • ネームスペース名: ネームスペースを識別する一意の値です。アルファベットで始まり、アルファベットと数字を組み合わせた 3~30文字 で入力してください。
  • ZDBネームスペース: ZDBネームスペースの有無を設定します。「ON」にすると、ZDB Console で確認できます。(ZCP v1.1 アップデート機能)

  • Resource Quotas: 各項目の詳細は Resource Quotas を参照してください。

  • Pod Default Limit Range: 各項目の詳細は Pod Default Limit Range を参照してください

4. すべての情報を入力後、「確認」をクリックします。
ネームスペースを作成すると、同じ名前のフォルダーが Jenkins で自動生成され、ビルドやデプロイが可能になります。


名前空間検索

ネームスペース名で検索できます。

  1. ネームスペース一覧の上部にある検索フィールドに、ネームスペース名を入力します。

  2. 検索ボタンをクリックするか、Enterキーを押します。


名前空間リソースの構成

ネームスペースの ラベル、Resource Quotas、Pod Default Limit Range を設定できます。

リソース構成画面に移動

  1. サイドメニューから 「ネームスペース」 を選択します。

  2. ネームスペース名のリンクをクリックします。

  3. Resource構成 タブが表示されます。

ラベルを追加

  1. ラベルは、ユーザーにとって意味のあるオブジェクトの識別属性を指定する key=value のペアです。

  2. 例: environment=production

  3. ラベル入力後、「追加」ボタンをクリックし、ポップアップで「確認」を押します。

詳細については Labels を参照してください。 


Resource Quotas の変更

  1. Namespace管理 画面の Resource構成 タブをクリックします。

  2. Resource Quotasの各項目に値を入力します。

  3. 「保存」ボタンをクリックします。

各項目の詳細については, Resource Quotas を参照してください。 


Pod Default Limit Range の変更

  1. Namespace管理 画面の Resource構成 タブをクリックします。

  2. Pod Default Limit Rangeの各項目に値を入力します。

  3. 「保存」ボタンをクリックします。

各項目の詳細については、Pod Default Limit Range を参照してください。  



Resource Quotas

複数のユーザーまたはチームが固定数のノードでクラスタを共有する場合、1つのチームが公平なリソースを使用できる可能性があります。 Resource Quotasは、管理者がこの問題を解決できるツールです。

ZCPで設定できるResource Quotasは次のとおりです。

CPU Requests非終端状態のすべてのポッドで、CPU要求の合計はこの値を超えることはできません。
CPU Limits非終端状態のすべてのポッドで、CPU制限の合計はこの値を超えることはできません。
Memory Requests非終端状態のすべてのポッドで、メモリー要求の合計はこの値を超えることはできません。
Memory Limits非終端状態のすべてのポッドで、メモリー制限の合計はこの値を超えることはできません。
Pods

名前空間に存在できる非終端状態のポッドの総数。 .status.phase in(Failed, Succeeded) が true の場合、ポッドは terminal 状態です。

Services

名前空間に存在できるサービスの総数。

Secrets

名前空間に存在できる秘密の総数。

Config Maps

名前空間に存在できるConfig Mapの総数。

Persistent Volume Claims名前空間に存在できる  Persistent Volume Claim の総数。 
Services Load Balancersネームスペースに存在できる Load Balancer のサービスの総数。

詳細については、Resource Quotas を参照してください。 

Pod Default Limit Range

LimitRange Objectを使用して1つのPodを作成するときに、リソース制限のデフォルト値を設定できます。

ZCPで設定できるLimit Rangeは次のとおりです。

CPU RequestsPodを作成するときのCPU要求制限のデフォルト値。
CPU LimitsPodを作成するときのCPU制限のデフォルト値。
Memory RequestsPodを作成するときのメモリ要求制限のデフォルト値。
Memory Limits Podを作成するときのメモリ制限のデフォルト値。

もう少し詳しくは Configure Default Memory Requests and Limits for a NamespaceConfigure Default CPU Requests and Limits for a Namespace を参照してください。

名前空間メンバーの管理

名前空間のメンバーを管理します。

メンバー管理画面に移動

  1. サイドメニューから名前空間を選択します。
  2. 名前空間名に関連付けられているリンクをクリックします。
  3. Namespace管理画面が表示されたら、[メンバー管理]タブをクリックします。

メンバーの作成

[メンバー管理]タブで直接メンバーを作成できます。

  1. メンバーリストの下にあるメンバー作成ボタンをクリックします。
  2. メンバー作成ポップアップが表示されたら、ユーザー情報を入力して[登録]ボタンをクリックします。

メンバーを追加

  1. メンバーの追加リスト上記のクエリに追加するメンバーを入力し、をクリックします。
  2. 名前空間のアクセス許可を変更し、[追加]列にあるをクリックします。

メンバーの削除

  1. メンバーリストの[管理]列で、削除するメンバーのをクリックします。
  2. ポップアップ画面が表示されたら、[OK]をクリックします。

メンバー権限の変更

  1. [メンバー]リストで、[Namespace権限]列の選択ボックスで、変更するメンバーの権限を選択します。
  2. メンバーリストの[管理]列で、権限を変更するメンバーのをクリックします。

各権限の説明は次のとおりです。

권한명ClusterRoleZCP에서는?
admin

namespace 内のすべてのリソースに対して読み書き可能

次のメニューにアクセスできます。

  • モニタリング
  • ロギング
  • お知らせ
  • DevOps
    • ビルドとデプロイ(Jenkins)
    • ソースリポジトリ(Gitea)
  • Image Registry
  • Catalog
  • 名前空間
  • ガイドとヘルプ
cicd-manager

namespace 内の role, rolebinding を除くほとんど resource に対して読み書き可能な edit ClusterRole をコピー

次のメニューにアクセスできます。


  • モニタリング
  • ロギング
  • DevOps
    • ビルドとデプロイ(Jenkins)
    • ソースリポジトリ(Gitea)
  • Image Registry
  • ガイドとヘルプ
developer

namespace 内の role, rolebinding を除くほとんど resource に対して読み取りのみ可能な view ClusterRole をコピー

次のメニューにアクセスできます。

  • ロギング
  • DevOps
    • ビルドとデプロイ(Jenkins)
    • ソースリポジトリ(Gitea)
  • Image Registry
  • ガイドとヘルプ

もう少し詳しくは Using RBAC AuthorizationUser-facing Roles を参照してください。

メンバー検索

メンバーをユーザーID、Eメール、名前などで検索できます。

  1. メンバーリストの上にある検索語入力フィールドに検索語を入力します。クエリにはユーザーID、Eメール、または名前を入力してください。
  2. をクリックするか、Enter キーを入力します。

名前空間秘密管理

Secretは、パスワード、OAuthトークン、sshキーなどの重要な情報を維持するためのものです。この情報をシークレットに置くことは、Pod定義またはDocker Imageにそのまま置くよりも安全で柔軟です。

Cloud Z CP コンソールでは、ネームスペース内の複数のアプリケーションで共通して使用される以下のタイプの Secret を管理できます。

(各アプリケーションのための秘密はそのプロジェクトで別々に管理されます。)

  • Docker Registry:特定のDocker Registryからイメージを取得するためのサーバーと認証情報を含みます。
  • TLS: HTTPS 設定に使用する証明書と鍵ファイルを管理します。

もう少し詳しくは Secrets を参照してください。

Secret 관리 화면으로 이동

  1. サイドメニューから名前空間を選択します。
  2. 名前空間名に関連付けられているリンクをクリックします。
  3. Namespace管理画面が表示されたら、[Secret]タブをクリックします。

Secret 追加

  1. Secret リストの右上にある (Secret 追加) ボタンをクリックします。
  2. Secret追加ポップアップが表示されたら、タイプに合った情報を入力して[登録]ボタンをクリックします。

フィールド説明

  • Docker Registry
    • docker-server(必須):Docker Registryサーバー情報。例) registry.cloudzcp.io
    • docker-username(必須):DockerログインユーザーID
    • docker-password(必須):Dockerログインユーザーのパスワード
    • docker-email: Docker ログインユーザーのメール
  • TLS
    • certificate : 
    • key : 

Secret ルックアップ

  1. 名前空間の Secret タブをクリックすると、登録された Secret リストが表示されます。
  2. Secret Nameをクリックすると、シークレットの詳細情報を含むポップアップが表示されます。
  3. TLSタイプの場合は、クリックしてファイルをダウンロードできます。

秘密の削除

  1. Secret リストで、削除する Secret の管理列の をクリックします。
  2. 確認のために削除したい Secret Nameと入力して[削除]ボタンをクリックします。

Secret 検索

登録された秘密のリストを秘密の名前で検索できます。

  1. Secret リストの右上にある「検索語入力」フィールドに検索語を入力します。
  2. をクリックするか、Enter キーを入力します。


注意事項

Secret 修正機能は提供しません。削除後、再生成またはKubernetes命令を介して直接修正することができます。

kubectl CLIを活用したシークレット管理

Secret はコンソールではなく kubectl CLI を利用して管理できます。 Docker Registry 型の Secret は Pod で ImagePullSecrets で使用します。


Docker Registry タイプの Secret は、次の命令で生成します。 my-docker-secret という名前で Secret を生成します。

kubectl create secret docker-registry my-docker-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
  • DOCKER_REGISTRY_SERVER:Docker Registryサーバー情報。例) registry.cloudzcp.io
  • DOCKER_USER: DockerログインユーザーID
  • DOCKER_PASSWORD: Docker ログインユーザーのパスワード

  • DOCKER_EMAIL: Docker ログインユーザーのメール

正しく作成されているかどうかをyaml形式で確認できます。

$ kubectl get secret my-docker-secret --output=yaml apiVersion: v1 data:  .dockerconfigjson: eyJodHRwczovL2luZGV4L ... J0QUl6RTIifX0= kind: Secret metadata:  ...  name: my-docker-secret  ... type: kubernetes.io/dockerconfigjson


上記のように、data 子の .dockerconfigjson フィールドを確認できますが、Docker Credentials が base64 表示される内容です。

入力した内容が正しいことを確認するには、次のコマンドを実行します。

$ kubectl get secret my-docker-secret --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode 

{"auths":{"registry.cloudzcp.io":{"username":"billygoo","password":"xxxxxxxxxxx","email":"billy.goo@example.com","auth":"c3R...zE2"}}}


その結果のauthフィールド値もbase64にデコードすると読み取ることができます。

$ echo "c3R...zE2" | base64 --decode billygoo:xxxxxxxxxxx

もう少し詳しくは Specifying ImagePullSecrets on a Pod を参照してください。

オンライン相談

問い合わせ

この回答は役に立ちましたか? はい いいえ

フィードバックを送信
お役に立てずに申し訳ございません。この記事を向上させるためにフィードバックをお願い致します。