k8s 統合された kubernetes ダッシュボードのビジュアル インターフェイス

まず、マスターの構成を変更します

# マスターノードは
kubectl apply -f を実行します https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml

# 删除pod
kubectl deletedeployment kubernetes-dashboard --namespace=kubernetes-dashboard
kubectl deletedeployment dumpboard-metrics-scraper --namespace=kubernetes-dashboard

# アクセスポートのマスターノードの実行を設定します
# type: ClusterIP type: NodePort Search /type
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboardに変更します

#アクセス ポートを設定します
# ここでのポートは 443:30519/TCP、つまり 30519 です
kubectl get svc -A |grep kubernetes-dashboard

 次に、vi ダッシュボード.yaml を作成します。

# Copyright 2017 The Kubernetes Authors.
#
# Apache License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。
# ライセンスに準拠する場合を除き、このファイルを使用することはできません。
# ライセンスのコピーは、
#
# http://www.apache.org/licenses/LICENSE-2.0で入手できます。
#
# 適用される法律で要求されたり、書面で同意されたりしない限り、
# ライセンスに基づいて配布されるソフトウェアは、 「現状のまま」を基本とし、
明示的か黙示的かを問わず、いかなる種類の保証や条件も伴いません。#ライセンスに基づく
許可と制限を規定する特定の言語については、 # ライセンスを参照してください。

apiVersion: v1
種類: 名前空間
メタデータ:
  名前: kubernetes-dashboard

---

apiVersion: v1
種類: ServiceAccount
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard
  名前空間: kubernetes-dashboard

---

種類: サービス
api バージョン: v1
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard
  名前空間: kubernetes-dashboard
仕様:
  ポート:
    - ポート: 443
      targetPort: 8443
  セレクター:
    k8s-app: kubernetes-dashboard

---

apiVersion: v1
種類: Secret
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard-certs
  名前空間: kubernetes-dashboard
タイプ: Opaque

---

apiVersion: v1
種類: シークレット
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard-csrf
  名前空間: kubernetes-dashboard
タイプ: 不透明
データ:
  csrf: ""

---

apiVersion: v1
種類: Secret
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard-key-holder
  名前空間: kubernetes-dashboard
タイプ: Opaque

---

種類: ConfigMap
apiVersion: v1
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard-settings
  名前空間: kubernetes-dashboard

---

kind: ロール
apiVersion: rbac.authorization.k8s.io/v1
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
rules:
  # ダッシュボードがダッシュボードの排他的シークレットを取得、更新、削除できるようにします。
  - apiGroups: [""]
    リソース: ["secrets"]
    resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
    動詞: ["get", "update", "delete"]
    # ダッシュボードが「kubernetes-dashboard-settings」構成マップを取得および更新できるようにします。
  - apiGroups: [""]
    リソース:

    Verbs: ["get", "update"]
    # ダッシュボードがメトリクスを取得できるようにします。
  - apiGroups: [""]
    リソース: ["services"]
    resourceNames: ["heapster"、"dashboard-metrics-scraper"]
    動詞: ["proxy"]
  - apiGroups: [""]
    リソース: ["services/proxy "]
    resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"] 動詞: ["get"
    ]

---

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  label:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
rules:
  # Metrics Scraper がメトリクス サーバーからメトリクスを取得できるようにします
  - apiGroups: ["metrics. k8s.io"]
    リソース: ["pods"、"nodes"]
    動詞: ["get"、"list"、"watch"]

---

apiVersion: rbac.authorization.k8s.io/v1
種類: RoleBinding
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard
  名前空間: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  種類: ロール
  名: kubernetes-dashboard
件名:
  - 種類: サービスアカウント
    名: kubernetes-dashboard
    名前空間: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
メタデータ:
  name: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubernetes-dashboard
subject:
  - kind: ServiceAccount
    name: kubernetes-ダッシュボード
    名前空間: kubernetes-dashboard

---

種類: デプロイメント
apiVersion: apps/v1
メタデータ:
  ラベル:
    k8s-app: kubernetes-dashboard
  名: kubernetes-dashboard
  名前空間: kubernetes-dashboard
仕様:
  レプリカ:
  1reviationHistoryLimit: 10
  セレクター:
    matchLabels:
      k8s-app: kubernetes-dashboard
  テンプレート:
    メタデータ:
      ラベル:
        k8s-app: kubernetes-dashboard
    spec:
      ノード名: k8s-master
      コンテナー:
        - 名前: kubernetes-dashboard
          イメージ: kubernetesui/dashboard:v2.3.1
          imagePullPolicy: 常に
          ポート:
            - コンテナポート: 8443
              プロトコル: TCP
          引数:
            - --auto-generate-certificates
            - --namespace=kubernetes-dashboard
            # 次の行のコメントを解除して手動で Kubernetes API サーバーを指定します ホスト
            # 指定しない場合、ダッシュボードは API の自動検出を試みます#サーバー
            に接続します。デフォルトが機能しない場合にのみコメントを外してください。
            # - --apiserver-host=http://my-address:port
          volumeMounts:
            - name: kubernetes-dashboard-certs
              mountPath: /certs
              # 実行ログを保存するディスク上のボリュームを作成する
            - mountPath: /tmp
              名前: tmp-volume
          livenessProbe:
            httpGet:
              スキーム: HTTPS
              パス: /
              ポート: 8443InitialDelaySeconds
            : 30
            timeoutSeconds: 30
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            runAsUser: 1001
            runAsGroup: 2001
      ボリューム:
        - 名前: kubernetes-dashboard-certs
          シークレット:
            SecretName: kubernetes-dashboard-certs
        - 名前: tmp-volume
          emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
        "kubernetes.io/os": linux
      # ダッシュボードをマスター許容範囲にデプロイする必要がない場合は、次の許容範囲をコメントします
      :
        - キー: node-role.kubernetes.io/master
          効果: NoSchedule

---

種類: サービス
api バージョン: v1
メタデータ:
  ラベル:
    k8s-app: ダッシュボード メトリックス スクレーパー
  名: ダッシュボード メトリックス スクレーパー
  名前空間: kubernetes-ダッシュボード
仕様:
  ポート:
    - ポート: 8000
      ターゲット ポート: 8000
  セレクター:
    k8s-app: ダッシュボード-メトリクススクレーパー

---

種類: デプロイメント
apiVersion: apps/v1
メタデータ:
  ラベル:
    k8s-app: ダッシュボード メトリックス スクレーパー
  名: ダッシュボード メトリックス スクレーパー
  名前空間: kubernetes-dashboard
仕様:
  レプリカ:
  1reviationHistoryLimit: 10
  セレクター:
    matchLabels:
      k8s-app: ダッシュボード-metrics-scraper
  テンプレート:
    メタ
      データ: ラベル:
        k8s-app: ダッシュボード-メトリクス-スクレーパー
      アノテーション:
        seccomp.security.alpha.kubernetes.io/pod: 'ランタイム/デフォルト'
    仕様:
      ノード名: k8s-マスター
      コンテナ:
        - 名前:ダッシュボード-メトリクス-スクレーパー
          イメージ: kubernetesui/metrics-scraper:v1.0.6
          ポート:
            - コンテナーポート: 8000
              プロトコル: TCP
          livenessProbe:
            httpGet:
              スキーム: HTTP
              パス: /
              ポート: 8000
            初期遅延秒数: 30
            タイムアウト秒数: 30
          ボリュームマウント数:
          - マウントパス: /tmp
            名前: tmp-ボリューム
          securityContext:
            allowPrivilegeEscalation:falsereadOnlyRootFilesystem
            :true
            runAsUser:1001
            runAsGroup:2001
      serviceAccountName: kubernetes-dashboard
      nodeSelector:
        "kubernetes.io/os": linux
      # ダッシュボードをマスター容認にデプロイする必要がない場合は、次の容認をコメントします
      :
        - キー: node-role.kubernetes.io/master
          効果: NoSchedule
      ボリューム:
        - 名前: tmp-volume
          emptyDir: {}

 トークンを取得するには、dash.yaml を記述します

アクセス アカウントを作成し、yaml ファイルを準備します (vi dump.yaml)

apiVersion: v1
種類: ServiceAccount
メタデータ:
  名前: 管理者ユーザーの
  名前空間: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
種類: ClusterRoleBinding
メタデータ:
  名前: 管理者ユーザーの
roleRef:
  apiGroup: rbac.authorization。 k8s.io
  種類: ClusterRole
  名: クラスター管理者
サブジェクト:
- 種類: ServiceAccount
  名: admin-user
  名前空間: kubernetes-dashboard

 申し込みとアクセス

#アクセス: https://cluster 任意の IP:ポート https://192.168.157.130:30519
#Apply
kubectl apply -f crash.yaml

 トークンの取得

# トークンを取得する

kubectl -n kubernetes-dashboard シークレットを取得 $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{ {.data .トークン |base64decode}}"

 

 最後に、トークンを使用して k8s ビジュアル コンソールにアクセスできます。

 

おすすめ

転載: blog.csdn.net/crazy1013/article/details/126575777