|
[[380289]] 権限マネージャー Permission Manager は、Kubernetes RBAC とユーザー管理用の Web UI を提供し、Kubernetes 権限管理用のユーザーフレンドリーなビジュアル インターフェースを提供するプロジェクトです。 インストール 次のように、https://github.com/sighupio/permission-manager/tree/master/deployments/kubernetes から YAML ファイルをダウンロードします。 - [root@qd01-stop-k8s-master001 kubernetes]# ll
- 合計4
- -rw-r
- drwxr-xr-x 2 ルート ルート 37 1月 28 11:14 シード
名前空間を作成する - [root@qd01-stop-k8s-master001 kubernetes]# kubectl名前空間のパーミッションマネージャーを作成します
- 名前空間/権限マネージャーを作成しました
シークレットを作成し、それに応じて更新します。 - [rancher@qd01-stop-k8snode011 権限マネージャー]$ cat secret.yaml
-
- apiバージョン: v1
- 種類: 秘密
- メタデータ:
- 名前: 権限マネージャー
- 名前空間: 権限マネージャー
- タイプ: 不透明
- 文字列データ:
- PORT: "4000" #サーバーが公開されているポート
- CLUSTER_NAME: "kubernetes-cluster" #名前 生成されたkubeconfigファイルで使用するクラスターの
- CONTROL_PLANE_ADDRESS: "https://10.26.29.208:6443" #生成されたkubeconfigファイルで使用するコントロールプレーンの完全なアドレス
- BASIC_AUTH_PASSWORD: "Admin" #基本認証で使用されるパスワード(ユーザー名は`admin`)
- [root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f secret.yaml
- secret/permission-manager を作成しました
展開する - [root@qd01-stop-k8s-master001 シード]# kubectl apply -f crd.yml
- 警告: apiextensions.k8s.io/v1beta1 CustomResourceDefinitionはv1.16+では非推奨となり、v1.22+では使用できません。apiextensions.k8s.io/v1 CustomResourceDefinition を使用してください。
- customresourcedefinition.apiextensions.k8s.io/permissionmanagerusers.permissionmanager。ユーザーが作成しました
-
- [root@qd01-stop-k8s-master001 シード]# kubectl apply -f seed.yml
- clusterrole.rbac. authorization .k8s.io/template-namespaced-resources___operation が作成されました
- clusterrole.rbac. authorization .k8s.io/template-namespaced-resources___developer が作成されました
- clusterrole.rbac. authorization .k8s.io/template-cluster-resources___読み取り専用が作成されました
- clusterrole.rbac. authorization .k8s.io/template-cluster-resources___admin が作成されました
-
-
- [root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f deploy.yml
- サービス/権限マネージャーが作成されました
- deployment.apps/permission-manager が作成されました
- serviceaccount/permission-manager が作成されました
- clusterrole.rbac. authorization.k8s.io/permission-managerが作成されました
- 警告: rbac. authorization .k8s.io/v1beta1 ClusterRoleBindingはv1.17+では非推奨であり、v1.22+では使用できません。rbac. authorization .k8s.io/v1 ClusterRoleBindingを使用してください。
- clusterrolebinding.rbac. authorization.k8s.io/permission-managerが作成されました
パーミッションマネージャーのデプロイが完了しました。警告メッセージは無視しても構いません。YAMLファイル内のAPIバージョンをrbac.authorization.k8s.io/v1に変更することもできます。 Ingress Exposure サービスの使用 ingingress.yaml を作成する - apiバージョン: networking.k8s.io/v1
- 種類: イングレス
- メタデータ:
- 名前: 権限マネージャーイングレス
- 名前空間: 権限マネージャー
- 注釈:
- kubernetes.io/ingress.class: nginx
- 仕様:
- ルール:
- - ホスト: permission.kubeops.net
- http:
- パス:
- - パスタイプ: プレフィックス
- パス: /
- バックエンド:
- サービス:
- 名前: 権限マネージャー
- ポート:
- 番号: 4000
- [root@qd01-stop-k8s-master001 kubernetes]# kubectl apply -f ingress.yaml
- [root@qd01-stop-k8s-master001 kubernetes]# kubectl get ing -n permission-manager
- 警告: extensions/v1beta1 Ingress はv1.14+では非推奨となり、v1.22+では利用できません。networking.k8s.io/v1 Ingress を使用してください。
- 名前クラス ホスト アドレス ポート 年齢
- permission-manager-ingress <なし> permission.kubeops.net 10.26.29.202,10.26.29.203 80 4分8秒
DNS 解決を手動で追加し、ブラウザで permission.kubeops.net にアクセスし、ユーザー名とパスワード (シークレットで設定) を使用してログインします。 ログイン
現在ユーザーはいませんが、テスト用に通常のユーザーを作成できます。 ユーザーを作成 「新しいユーザーを作成」をクリック
関連情報を入力してください
次に、「保存」をクリックします。 生成された設定ファイルは、ユーザー情報で確認できます。
テスト 構成ファイルを保存し、この構成ファイルを使用してクラスターにアクセスします。 構成ファイルをローカル マシンにコピーし、名前を scofield に変更して、kubectl を使用してテストしました。 - [root@qd01-stop-k8s-master001 kubernetes]# kubectl
- リソースが見つかりません デフォルトの名前空間。
-
- [root@qd01-stop-k8s-master001 kubernetes]# kubectl
- サーバーからのエラー(禁止):ポッドは禁止されています:ユーザー 「system:serviceaccount:permission-manager:scofield」はリソース「pods」を一覧表示できません APIグループ内 「」 名前空間「 argo
上記の出力は、`default` と `argo` という2つの名前空間をクエリしたことを示していますが、`default` 名前空間のみに必要な権限があり、`argo` 名前空間には権限がありませんでした。これは、ユーザー作成時に付与した権限と一致しています。 詳細は公式サイトをご覧ください。 |