Kubernetesダッシュボード導入ガイド

Kubernetes Dashboardは、クラスターの状態を可視化し、リソース管理を直感的に行えるWebインターフェースです。ここでは、NodePortを利用してダッシュボードにアクセスする構成での導入方法を解説します。

1. コンテナイメージの取得

まず、ダッシュボードのコンテナイメージをDockerレジストリから取得します。

docker pull k8s.gcr.io/kubernetes-dashboard-amd64:v2.0.0

2. デプロイメント定義ファイルの作成

以下の内容でdashboard-deploy.yamlファイルを作成します。ServiceAccount、ClusterRoleBinding、Deploymentを一括で定義しています。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: dash-service-account
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: dash-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: dash-service-account
  namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kubernetes-dashboard
  namespace: kube-system
  labels:
    app: dashboard-ui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dashboard-ui
  template:
    metadata:
      labels:
        app: dashboard-ui
    spec:
      serviceAccountName: dash-service-account
      containers:
      - name: dashboard-container
        image: k8s.gcr.io/kubernetes-dashboard-amd64:v2.0.0
        ports:
        - containerPort: 8443
        resources:
          requests:
            cpu: 150m
            memory: 150Mi
          limits:
            cpu: 250m
            memory: 500Mi
        livenessProbe:
          httpGet:
            scheme: HTTPS
            path: /
            port: 8443
          initialDelaySeconds: 45
          periodSeconds: 30
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

3. サービス定義ファイルの作成

次に、dashboard-service.yamlファイルを作成し、NodePortタイプのサービスを定義します。

apiVersion: v1
kind: Service
metadata:
  name: dash-ui-service
  namespace: kube-system
  labels:
    app: dashboard-ui
spec:
  type: NodePort
  selector:
    app: dashboard-ui
  ports:
  - port: 443
    targetPort: 8443
    nodePort: 30443
    protocol: TCP

4. リソースの適用

作成したマニフェストファイルを順次適用します。

kubectl apply -f dashboard-deploy.yaml
kubectl apply -f dashboard-service.yaml

5. 動作確認

Podとサービスの状態を確認し、正しく起動していることを確かめます。

kubectl get pods -n kube-system -l app=dashboard-ui
kubectl get svc -n kube-system -l app=dashboard-ui

6. ダッシュボードへのアクセス

NodePortで公開された30443番ポートを経由してアクセスします。クラスター内の任意のノードIPアドレスとポート番号を組み合わせて、ブラウザからhttps://<ノードIP>:30443で開きます。

タグ: kubernetes-dashboard k8s nodeport rbac serviceaccount

8月18日 01:28 投稿