概要
kubeadm など自分で構築した環境にデプロイしてみます
環境
- k8s 1.19.3
- admin UI 2.0.0
マニフェストダウンロード
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
Service 編集 NodePort 化
vim recommended.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort # <- ここを追記
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
デプロイ
kubectl apply -f recommended.yaml
Service 確認
kubectl get svc -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.105.49.239 <none> 8000/TCP 11s
kubernetes-dashboard NodePort 10.105.192.142 <none> 443:31574/TCP 11s
ノードのIP:31574
にアクセスするとダッシュボードにアクセスできます
ログインユーザの作成
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF
cat <<EOF | kubectl apply -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
EOF
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template='{{printf "%s\n" .data.token | base64decode}}{{"\n"}}'
ここで表示されるトークンを使ってログインできます
最後に
NodePort 化しないで Ingress を使っても OK です
おまけ: metrics-server もデプロイする
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
これで dashbord で CPU とメモリのメトリックが見れるようになります
もし tls 関連でエラーが出てうまく metrics-server がデプロイできない場合は以下を試してください
kubectl edit deploy -n kube-system metrics-server
... 以下抜粋
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: metrics-server
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: metrics-server
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --kubelet-insecure-tls # <- ここを追加
image: k8s.gcr.io/metrics-server/metrics-server:v0.4.2
0 件のコメント:
コメントを投稿