千家信息网

Kubernetes 1.8.4 中如何安装Dashboard

发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,小编给大家分享一下Kubernetes 1.8.4 中如何安装Dashboard,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!DashboardDashboard 是 Kuberne
千家信息网最后更新 2024年12月01日Kubernetes 1.8.4 中如何安装Dashboard

小编给大家分享一下Kubernetes 1.8.4 中如何安装Dashboard,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Dashboard

Dashboard 是 Kubernetes 社区官方开发的仪表板,有了仪表板后管理者就能够透过 Web-based 方式来管理 Kubernetes 集群,除了提升管理方便,也让资源可视化,让人更直觉看见系统信息的呈现结果。

  • 建立kubernetes-dashboard-certs,来提供给 Dashboard TLS 使用

    mkdir -p /etc/kubernetes/addons/certs && cd /etc/kubernetes/addonsopenssl genrsa -des3 -passout pass:x -out certs/dashboard.pass.key 2048openssl rsa -passin pass:x -in certs/dashboard.pass.key -out certs/dashboard.keyopenssl req -new -key certs/dashboard.key -out certs/dashboard.csr -subj '/CN=kube-dashboard'openssl x509 -req -sha256 -days 365 -in certs/dashboard.csr -signkey certs/dashboard.key -out certs/dashboard.crtrm certs/dashboard.pass.keykubectl create secret generic kubernetes-dashboard-certs\    --from-file=certs -n kube-system


  • 在master通过 kubectl 来建立 kubernetes dashboard 即可

    cat <  kube-dashboard.yml# Copyright 2017 The Kubernetes Authors.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at##     http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.# Configuration to deploy release version of the Dashboard UI compatible with# Kubernetes 1.8.## Example usage: kubectl create -f # ------------------- Dashboard Secret ------------------- #apiVersion: v1kind: Secretmetadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard-certs  namespace: kube-systemtype: Opaque---# ------------------- Dashboard Service Account ------------------- #apiVersion: v1kind: ServiceAccountmetadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-system---# ------------------- Dashboard Role & Role Binding ------------------- #    kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata:  name: kubernetes-dashboard-minimal  namespace: kube-systemrules:  # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.- apiGroups: [""]  resources: ["secrets"]  verbs: ["create"]  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]  resources: ["secrets"]  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]  verbs: ["get", "update", "delete"]  # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.- apiGroups: [""]  resources: ["configmaps"]  resourceNames: ["kubernetes-dashboard-settings"]  verbs: ["get", "update"]  # Allow Dashboard to get metrics from heapster.- apiGroups: [""]  resources: ["services"]  resourceNames: ["heapster"]  verbs: ["proxy"]---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: kubernetes-dashboard-minimal  namespace: kube-systemroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: kubernetes-dashboard-minimalsubjects:- kind: ServiceAccount  name: kubernetes-dashboard  namespace: kube-system---# ------------------- Dashboard Deployment ------------------- #kind: DeploymentapiVersion: apps/v1beta2metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-systemspec:  replicas: 1  revisionHistoryLimit: 10  selector:    matchLabels:      k8s-app: kubernetes-dashboard  template:    metadata:      labels:        k8s-app: kubernetes-dashboard    spec:      containers:      - name: kubernetes-dashboard        image: registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.8.0        imagePullPolicy: IfNotPresent        ports:        - containerPort: 8443          protocol: TCP        args:          - --tls-key-file=dashboard.key          - --tls-cert-file=dashboard.crt          #- --auto-generate-certificates          # Uncomment the following line to manually specify Kubernetes API server Host          # If not specified, Dashboard will attempt to auto discover the API server and connect          # to it. Uncomment only if the default does not work.          # - --apiserver-host=http://my-address:port        volumeMounts:        - name: kubernetes-dashboard-certs          mountPath: /certs          # Create on-disk volume to store exec logs        - mountPath: /tmp          name: tmp-volume        livenessProbe:          httpGet:            scheme: HTTPS            path: /            port: 8443          initialDelaySeconds: 30          timeoutSeconds: 30      volumes:      - name: kubernetes-dashboard-certs        secret:          secretName: kubernetes-dashboard-certs      - name: tmp-volume        emptyDir: {}      serviceAccountName: kubernetes-dashboard      # Comment the following tolerations if Dashboard must not be deployed on master      tolerations:      - key: node-role.kubernetes.io/master        effect: NoSchedule---# ------------------- Dashboard Service ------------------- #kind: ServiceapiVersion: v1metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-systemspec:  ports:    - port: 443      targetPort: 8443  selector:    k8s-app: kubernetes-dashboardEOF


    kubectl apply -f kube-dashboard.yml


    cat <kube-dashboard-admin.ymlapiVersion: rbac.authorization.k8s.io/v1beta1  kind: ClusterRoleBinding  metadata:    name: kubernetes-dashboard    labels:      k8s-app: kubernetes-dashboard  roleRef:    apiGroup: rbac.authorization.k8s.io    kind: ClusterRole    name: cluster-admin  subjects:  - kind: ServiceAccount    name: kubernetes-dashboard    namespace: kube-system  EOF


    kubectl apply -f kube-dashboard-admin.yml


    kubectl -n kube-system get po,svc -l k8s-app=kubernetes-dashboard


    完成后,就可以透过浏览器访问 Dashboard

    https://10.0.0.162:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

看完了这篇文章,相信你对"Kubernetes 1.8.4 中如何安装Dashboard"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0