kubernetes1.5.2--部署dashboard服务
发布日期:2025-04-03 03:34:26 浏览次数:9 分类:精选文章

本文共 4731 字,大约阅读时间需要 15 分钟。

Kubernetes 下 KUBERNETES DASHBOARD 的部署使用 HTTP 和 HTTPS 方式

作为 Kubernetes 集群的一部分,Kubernetes Dashboard 是一个非常实用的工具,用于管理和监控 Kubernetes 集群。在本文中,我们将分别介绍如何使用 HTTP 和 HTTPS 访问 Kubernetes API Server 来部署 KUBERNETES DASHBOARD。


使用 HTTP 访问 Kubernetes API Server 的部署

首先,让我们看一下如何使用 HTTP 方式访问 Kubernetes API Server 来部署 KUBERNETES DASHBOARD。这种部署方式通常用于简单场景,例如开发环境或者测试环境。

部署 YAML 配置文件

以下是 Kubernetes Cluster controller 部署 YAML 配置文件:

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  labels:    k8s-app: kubernetes-dashboard    kubernetes.io/cluster-service: "true"  name: kubernetes-dashboard  namespace: kube-systemspec:  replicas: 1  selector:    matchLabels:      k8s-app: kubernetes-dashboard  strategy:    rollingUpdate:      maxSurge: 1      maxUnavailable: 1    type: RollingUpdate  template:    spec:      containers:        - args:            - --apiserver-host=http://192.168.20.128:8080          image: docker.io/googlecontainer/kubernetes-dashboard-amd64:v1.6.1          imagePullPolicy: IfNotPresent          livenessProbe:            failureThreshold: 3            httpGet:              path: /              port: 9090              scheme: HTTP            initialDelaySeconds: 30            periodSeconds: 10            successThreshold: 1            timeoutSeconds: 30          name: kubernetes-dashboard          ports:          - containerPort: 9090            protocol: TCP          resources:            limits:              cpu: 100m              memory: 50Mi            requests:              cpu: 100m              memory: 50Mi        dnsPolicy: ClusterFirst        restartPolicy: Always

将上述 YAML 配置文件保存为 dashboard-controller.yaml,然后运行以下命令创建资源:

kubectl create -f dashboard-controller.yaml

服务配置

为了确保 Kubernetes DASHBOARD 可以被外部访问,我们需要配置 downward 向外的服务。以下是服务配置文件:

apiVersion: v1kind: Servicemetadata:  name: kubernetes-dashboard  namespace: kube-system  labels:    k8s-app: kubernetes-dashboard    kubernetes.io/cluster-service: "true"spec:  selector:    k8s-app: kubernetes-dashboard  ports:  - port: 80    targetPort: 9090

将上述 YAML 配置文件保存为 dashboard-service.yaml,然后运行以下命令创建资源:

kubectl create -f dashboard-service.yaml

使用 HTTPS 访问 Kubernetes API Server 的部署

在生产环境中,建议使用 HTTPS 访问 Kubernetes API Server。这不仅能加密通信,还能防止 MITM attacks。

1. 准备 SSL 证书

为了实现 HTTPS 访问,我们需要为 Kubernetes API server 配置 SSL 证书。假设你已经有一个 CA 证书和服务器证书,可以将这些文件分开放置于 /etc/ssl/kube/etc/kubernetes/kubelet-config 目录中。

2. 部署控制器

以下是 HTTPS 访问方式下部署的 YAML 配置文件:

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: kubernetes-dashboard  namespace: kube-system  labels:    k8s-app: kubernetes-dashboard    kubernetes.io/cluster-service: "true"spec:  selector:    matchLabels:      k8s-app: kubernetes-dashboard  template:    metadata:      labels:        k8s-app: kubernetes-dashboard      annotations:        scheduler.alpha.kubernetes.io/critical-pod: ''        scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'    spec:      containers:        - name: kubernetes-dashboard          image: docker.io/googlecontainer/kubernetes-dashboard-amd64:v1.6.1          imagePullPolicy: IfNotPresent          resources:            limits:              cpu: 100m              memory: 512Mi            requests:              cpu: 100m              memory: 128Mi          livenessProbe:            httpGet:              path: /              port: 9090            initialDelaySeconds: 30            timeoutSeconds: 30          ports:          - containerPort: 9090          args:          - --apiserver-host=https://192.168.20.128:6443          - --kubeconfig=/etc/kubernetes/kubelet-config          volumeMounts:          - name: config            mountPath: /etc/kubernetes/kubelet-config            readOnly: true          - name: certs            mountPath: /etc/ssl/kube            readOnly: true      volumes:      - name: config        hostPath: /etc/kubernetes/kubelet-config      - name: certs        hostPath: /etc/ssl/kube

将上述 YAML 配置文件保存为 dashboard-controller-https.yaml,然后运行以下命令创建资源:

kubectl create -f dashboard-controller-https.yaml

3. 存储卷配置

为了实现 HTTPS 访问,还需要将 SSL 证书 挂载到 Controler 中。以下是 typical 的存储卷配置:

volumeMounts:- name: config  mountPath: /etc/kubernetes/kubelet-config  readOnly: true- name: certs  mountPath: /etc/ssl/kube  readOnly: true

访问地址

部署完成后,可以通过以下 URL 访问 Kubernetes DASHBOARD:

  • HTTP 方式访问: http://<NodeIP>:8080/ui
  • HTTPS 方式访问: https://<NodeIP>:6443/ui

其中 <NodeIP> 是 Kubernetes 集群中的任意一个节点 IP 地址。


注意事项

在配置 HTTPS 时,请确保所有节点都已经配置了相应的 SSL 证书。如果 API Server 的配置文件中没有配置基本身份验证(--basic-auth-file=/etc/kubernetes/useraccount.csv),登录将失败。如果配置了,账号和密码分别位于 /etc/kubernetes/useraccount.csv 文件中。

此外,请确保 /etc/kubernetes/kubelet-config/etc/ssl/kube 目录中含有相应的配置文件,否则可能导致无法登录。

如果你在实际操作中遇到问题,可以参考相关的 Kubernetes 文档或社区资源进行解决。

上一篇:Java复用技术在不同行业项目中的适应性分析与扩展
下一篇:Java复用技术与软件可维护性的关联分析及扩展策略

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月25日 07时08分04秒