1.dashboard概述

  • Dashboard是基于网页的Kubernetes用户界面。您可以使用Dashboard将容器应用部署到Kubernetes集群中,也可以对容器应用排错,还能管理集群资源。您可以使用Dashboard获取运行在集群中的应用的概览信息,也可以创建或者修改Kubernetes资源( 如Deployment,Job,DaemonSet等等)
  • Dashboard同时展示了Kubernetes集群中的资源状态信息和所有报错信息

官网:

https://github.com/kubernetes/dashboard

metrics插件:

kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines. (github.com)

dashboard资源文件

https://github.com/kubernetes/dashboard0

2.部署metrics-server

1)开启apiserver聚合服务(中继路由)

# 添加参数
~]# vim /etc/kubernetes/manifests/kube-apiserver.yaml
#apiserver启动文件
# spec.containers.command 最下面手动添加如下一行(注意对对齐,否则所有查询会报错)- --enable-aggregator-routing=true
......
~]# systemctl restart kubelet
# 验证
~]# kubectl -n kube-system get pod kube-apiserver-master -o yaml |grep enable-aggregator-routing  

2)证书的申请与签发

linux的用户k8s的用户的用户区别

linux用户存储在password

k8s用户,证书的签发机构,签发证书可信(在k8s内只记录一小时,一小时后删除记录,但是只要k8s签发过的就可以在k8s内用),所以在k8s内有用户的概念,但是不能查找用户,只要用户带有签发的证书就可以登录k8s;所以node节点想要查询就要有证书

metrics使用证书,为kubelet签发证书

# 注:如果没有证书是无法查看节点状态的
# 在文件var/lib/kubelet/config.yaml的配置文件中添加
~]# vim /var/lib/kubelet/config.yamlserverTLSBootstrap: true
# 重启kubelet服务,等待几分钟就能看到了;包括master在内的所有节点都需要做# 默认情况下是没有开启证书签发的(在master操作)
~]# kubectl get csr
No resources found
# 申请证书示例(在所有节点操作)
~]# vim /var/lib/kubelet/config.yaml
# 在文件的最后一行添加申请证书;注:改错节点服务会起不来
serverTLSBootstrap: true
# 重启kubelet(在所有节点操作)
~]# systemctl restart kubelet
# 查看(master操作)
~]# kubectl get csr
NAME        AGE     SIGNERNAME                                    REQUESTOR                     REQUESTEDDURATION   CONDITION
csr-6fbtl   91s     kubernetes.io/kubelet-serving                 system:node:node1             <none>               Pending
csr-bctqw   11m     kubernetes.io/kubelet-serving                 system:node:master            <none>               Pending
csr-bz6hx   2m14s   kubernetes.io/kube-apiserver-client-kubelet   system:node:vm-0-114-centos   <none>            Pending
csr-gk7tx   62s     kubernetes.io/kubelet-serving                 system:node:vm-0-142-centos   <none>             Pending# ----------------签发证书必须在 master 上执行 -------------------------# 看到Pending的状态我们就可以签发证书了(每台都签发一下)
~]# kubectl get csr | awk '{print $1}'| grep -v NAME| xargs -i kubectl certificate approve {}~]# kubectl get csr
NAME        AGE     SIGNERNAME                                    REQUESTOR                     REQUESTEDDURATION   CONDITION
csr-6fbtl   91s     kubernetes.io/kubelet-serving                 system:node:node1             <none>              Approved,Issued
csr-bctqw   11m     kubernetes.io/kubelet-serving                 system:node:master            <none>              Approved,Issued
csr-bz6hx   2m14s   kubernetes.io/kube-apiserver-client-kubelet   system:node:vm-0-114-centos   <none>              Approved,Issued
csr-gk7tx   62s     kubernetes.io/kubelet-serving                 system:node:vm-0-142-centos   <none>              Approved,Issued#  Approved,Issued则是签发成功
# 申请的多余证书可以使用 (kubectl delete certificatesigningrequests 证书名称) 删除;如果误删了证书删除也不需要再申请,因为已经有记录了
2.安装mertics插件
1)官网GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.2)下载镜像和资源文件,并导入私有仓库rbac.yaml 授权控制器pdb.yaml 中断控制器deployment.yaml 主进程metrics(修改镜像地址)service.yaml 后端metrics主进程服务apiservice.yaml 注册集群API## 先导入镜像然后操作(这里我找了一些资料暂时没找到国内的镜像,所以如果要安装部署metrics的话要跨网)
~]# docker load -i metrisc-server.tar.gz
~]# docker tag gcr.io/k8s-staging-metrics-server/metrics-server:master 172.17.0.98:5000/metrics-server:master
~]# docker push 172.17.0.98:5000/metrics-server:master

3)安装控制器

## 第一步安装授权控制器
# 手动书写文件或官方下载
~]# vim rbac.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: system:aggregated-metrics-reader
labels:rbac.authorization.k8s.io/aggregate-to-view: "true"rbac.authorization.k8s.io/aggregate-to-edit: "true"rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]
---
apiVersion: v1
kind: ServiceAccount
metadata:name: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: metrics-server-auth-readernamespace: kube-system
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: extension-apiserver-authentication-reader
subjects:- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: metrics-server:system:auth-delegator
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:auth-delegator
subjects:- kind: ServiceAccountname: metrics-servernamespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: system:metrics-server
rules:- apiGroups:- ""resources:- pods- nodes- nodes/stats- namespaces- configmapsverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: system:metrics-server
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: system:metrics-server
subjects:- kind: ServiceAccountname: metrics-servernamespace: kube-system
# 安装授权控制器
~]# kubectl apply -f rbac.yaml
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
serviceaccount/metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
## 第二步安装中断控制器
# 官方下载文件或手动书写
~]# vim pdb.yaml
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:name: metrics-servernamespace: kube-systemlabels:k8s-app: metrics-server
spec:minAvailable: 100%selector:matchLabels:k8s-app: metrics-server
# 安装中断控制器
~]# kubectl apply -f pdb.yaml
Warning: policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
poddisruptionbudget.policy/metrics-server created
## 第三安装主进程
# 官方下载文件或手动书写
~]# vim deployment.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:name: metrics-servernamespace: kube-systemlabels:k8s-app: metrics-server
spec:selector:matchLabels:k8s-app: metrics-serverstrategy:rollingUpdate:maxUnavailable: 0template:metadata:name: metrics-serverlabels:k8s-app: metrics-serverspec:serviceAccountName: metrics-servervolumes:# mount in tmp so we can safely use from-scratch images and/or read-only containers- name: tmp-diremptyDir: {}containers:- name: metrics-serverimage: gcr.io/k8s-staging-metrics-server/metrics-server:masterimagePullPolicy: IfNotPresentargs:- --cert-dir=/tmp- --secure-port=4443- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname- --kubelet-use-node-status-port# - --kubelet-insecure-tlsports:- name: main-portcontainerPort: 4443protocol: TCPreadinessProbe:httpGet:path: /healthzport: main-portscheme: HTTPSsecurityContext:readOnlyRootFilesystem: truerunAsNonRoot: truerunAsUser: 1000volumeMounts:- name: tmp-dirmountPath: /tmpnodeSelector:kubernetes.io/os: linux
# 安装主进程
~]# kubectl apply -f deployment.yaml
deployment.apps/metrics-server created
## 第四安装service服务
# 官方下载文件或手动书写
~]# vim service.yaml
---
apiVersion: v1
kind: Service
metadata:name: metrics-servernamespace: kube-systemlabels:kubernetes.io/name: "Metrics-server"kubernetes.io/cluster-service: "true"
spec:selector:k8s-app: metrics-serverports:- port: 443protocol: TCPtargetPort: main-port
# 装service服务
~]# kubectl apply -f service.yaml
service/metrics-server created
## 最后安装集群api
# 官方下载文件或手动书写
~]# vim apiservice.yaml
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:name: v1beta1.metrics.k8s.io
spec:service:name: metrics-servernamespace: kube-systemgroup: metrics.k8s.ioversion: v1beta1insecureSkipTLSVerify: truegroupPriorityMinimum: 100versionPriority: 100
# 安装集群api
~]# kubectl apply -f apiservice.yaml
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
#-------------------------------- 查询验证 ----------------------------------------------
~]# kubectl -n kube-system get pod
NAME                              READY   STATUS    RESTARTS   AGE
metrics-server-78dfb54777-4dcjl   1/1     Running   0          116s~]# kubectl -n kube-system get apiservices  | grep metrics
NAME                                   SERVICE                      AVAILABLE   AGE
v1beta1.metrics.k8s.io                 kube-system/metrics-server   True        2m20s
# 如果安装成功了就可以查看节点资源了~]# kubectl top node
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
master      95m          4%     840Mi           48%
node-0001   24m          1%     266Mi           15%
node-0002   24m          1%     270Mi           15%
node-0003   26m          1%     280Mi           16%
#CPU(cores):毫核   1000分之95秒(把每个执行的周期分为1000,那么一个周期就是95毫秒)
#CPU%       CPU / 内核数:(两内核就是2000)
# HPA就是根据资源占用情况来做的## 监控容器的示例
# 安装之前写的myapache创建一个容器
~]# kubectl apply -f myapache.yaml
deployment.apps/myapache created
# 查看pod容器的资源
~]# kubectl top pod
error: metrics not available yet
# 等待大约 30 秒
~]# kubectl top pod
NAME                       CPU(cores)   MEMORY(bytes)
myapache-7d689bf8f-lfr5h   1m           6Mi
# 设置访问次数来实验pod
~]# curl http://10.244.2.17/info.html?id=5000000
<pre>
Array
([REMOTE_ADDR] => 10.244.0.0[REQUEST_METHOD] => GET[HTTP_USER_AGENT] => curl/7.29.0[REQUEST_URI] => /info.php?id=5000000[id] => 5000000
)
php_host:   myapache-7d689bf8f-lfr5h
~]# kubectl top pod
NAME                       CPU(cores)   MEMORY(bytes)
myapache-7d689bf8f-w4rtt   1000m        8Mi

3.搭建dashboard

1)搭建并访问dashboard

# 书写资源文件或者官网下载(下载只要改镜像就可以了)
~]# docker pull kubernetesui/dashboard:v2.0.0
~]# docker tag kubernetesui/dashboard:v2.0.0 172.17.0.98:5000/dashboard:v2.0.0
~]# vim recommended.yaml
# 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.apiVersion: v1
kind: Namespace
metadata:name: kubernetes-dashboard---apiVersion: v1
kind: ServiceAccount
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443selector:k8s-app: kubernetes-dashboard---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-certsnamespace: kubernetes-dashboard
type: Opaque---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-csrfnamespace: kubernetes-dashboard
type: Opaque
data:csrf: ""---apiVersion: v1
kind: Secret
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-key-holdernamespace: kubernetes-dashboard
type: Opaque---kind: ConfigMap
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard-settingsnamespace: kubernetes-dashboard---kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
rules:# Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]resources: ["secrets"]resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]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.- apiGroups: [""]resources: ["services"]resourceNames: ["heapster", "dashboard-metrics-scraper"]verbs: ["proxy"]- apiGroups: [""]resources: ["services/proxy"]resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]verbs: ["get"]---kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboard
rules:# Allow Metrics Scraper to get metrics from the Metrics server- apiGroups: ["metrics.k8s.io"]resources: ["pods", "nodes"]verbs: ["get", "list", "watch"]---apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kubernetes-dashboard
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kubernetes-dashboard
subjects:- kind: ServiceAccountname: kubernetes-dashboardnamespace: kubernetes-dashboard---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: kubernetes-dashboardtemplate:metadata:labels:k8s-app: kubernetes-dashboardspec:containers:- name: kubernetes-dashboardimage: 172.17.0.98:5000/dashboard:v2.0.0    # 改这为私有仓库名imagePullPolicy: Alwaysports:- containerPort: 8443protocol: TCPargs:- --auto-generate-certificates- --namespace=kubernetes-dashboard# 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:portvolumeMounts:- name: kubernetes-dashboard-certsmountPath: /certs# Create on-disk volume to store exec logs- mountPath: /tmpname: tmp-volumelivenessProbe:httpGet:scheme: HTTPSpath: /port: 8443initialDelaySeconds: 30timeoutSeconds: 30securityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001volumes:- name: kubernetes-dashboard-certssecret:secretName: kubernetes-dashboard-certs- name: tmp-volumeemptyDir: {}serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedule---kind: Service
apiVersion: v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:ports:- port: 8000targetPort: 8000selector:k8s-app: dashboard-metrics-scraper---kind: Deployment
apiVersion: apps/v1
metadata:labels:k8s-app: dashboard-metrics-scrapername: dashboard-metrics-scrapernamespace: kubernetes-dashboard
spec:replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dashboard-metrics-scrapertemplate:metadata:labels:k8s-app: dashboard-metrics-scraperannotations:seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'spec:containers:- name: dashboard-metrics-scraperimage: 172.17.0.98/metrics-scraper:v1.0.4  # 改这ports:- containerPort: 8000protocol: TCPlivenessProbe:httpGet:scheme: HTTPpath: /port: 8000initialDelaySeconds: 30timeoutSeconds: 30volumeMounts:- mountPath: /tmpname: tmp-volumesecurityContext:allowPrivilegeEscalation: falsereadOnlyRootFilesystem: truerunAsUser: 1001runAsGroup: 2001serviceAccountName: kubernetes-dashboardnodeSelector:"kubernetes.io/os": linux# Comment the following tolerations if Dashboard must not be deployed on mastertolerations:- key: node-role.kubernetes.io/mastereffect: NoSchedulevolumes:- name: tmp-volumeemptyDir: {}
# 创建容器
~]# kubectl apply -f recommended.yaml
~]# kubectl -n kubernetes-dashboard get service
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)
dashboard-metrics-scraper   ClusterIP   10.254.76.85     <none>        8000/TCP
kubernetes-dashboard        ClusterIP   10.254.211.125   <none>        443/TCP
~]# kubectl -n kubernetes-dashboard get pod
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-57bf85fcc9-vsz74   1/1     Running   0          52s
kubernetes-dashboard-7b7f78bcf9-5k8vq        1/1     Running   0          52s

注:测试只能在集群内访问(ClusterIP),这时需要创建service实现外部访问

# 该资源文件可以当上面的(recommended.yaml)文件中复制
~]# vim service.yaml
---
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443nodePort: 30443                # 新添加targetPort: 8443selector:k8s-app: kubernetes-dashboardtype: NodePort                     # 新添加~]# kubectl apply -f service.yaml
~]# kubectl -n kubernetes-dashboard get service
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.254.66.25     <none>        8000/TCP        2m6s
kubernetes-dashboard        NodePort    10.254.165.155   <none>        443:30443/TCP   2m6s

公网访问只要在云上为 node 节点绑定弹性公网IP [ https://弹性公网IP:30443/ ]

登录

此时需要授权才能用

2)权限查询

role: 名称空间的系统权限

clusterrole:全局权限

系统权限

# 查询某一个名称空间内的所有系统权限
~]# kubectl -n kube-system get role
NAME                                             CREATED AT
extension-apiserver-authentication-reader        2022-01-22T08:33:50Z
kube-proxy                                       2022-01-22T08:33:52Z
kubeadm:kubelet-config-1.23                      2022-01-22T08:33:51Z
kubeadm:nodes-kubeadm-config                     2022-01-22T08:33:51Z
system::leader-locking-kube-controller-manager   2022-01-22T08:33:50Z
system::leader-locking-kube-scheduler            2022-01-22T08:33:50Z
system:controller:bootstrap-signer               2022-01-22T08:33:50Z
system:controller:cloud-provider                 2022-01-22T08:33:50Z
system:controller:token-cleaner                  2022-01-22T08:33:50Z
# 查询名称空间内的系统权限的详细信息
~]# kubectl -n kube-system describe role kube-proxy
Name:         kube-proxy
Labels:       <none>
Annotations:  <none>
PolicyRule:Resources   Non-Resource URLs  Resource Names  Verbs---------   -----------------  --------------  -----configmaps  []                 [kube-proxy]    [get]

全局权限

# 查看所有全局权限
~]# kubectl -n kube-system get clusterrole
# 指定查看某一个权限的详细信息
~]# kubectl -n kube-system describe clusterrole admin 

3)token认证登录

# 书写权限资源
~]# vim admin-token.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard~]# kubectl apply -f admin-token.yaml
~]# kubectl -n kubernetes-dashboard get secrets
NAME                               TYPE                                  DATA   AGE
admin-user-token-bxjlz             kubernetes.io/service-account-token   3      23s
~]# kubectl -n kubernetes-dashboard describe secrets admin-user-token-bxjlz
Name:         admin-user-token-bxjlz
... ...
ca.crt:     1025 bytes
namespace:  20 bytes
token:    .....  # 这里这个很长的字符串就是你要找的认证 token

把密码粘贴并点击登录

4)使用dashboard

# 创建一个错误的apache容器
~]# vim myapache.yaml
---
kind: Deployment
apiVersion: apps/v1
metadata:name: myapacheannotations:kubernetes.io/change-cause: httpd.v1
spec:selector:matchLabels:myapp: httpd replicas: 2template:metadata:labels:myapp: httpdspec:containers:- name: webclusterimage: 172.17.0.98:5000/myos:http   # 故意把镜像改错stdin: falsetty: falseports:- protocol: TCPcontainerPort: 80restartPolicy: Always
~]# kubectl apply -f myapache.yaml
~]# kubectl get pods
NAME                        READY   STATUS              RESTARTS   AGE
myapache-7c4546fdd-b76d7    0/1     ImagePullBackOff    0          45s
myapache-7c4546fdd-nkv4b    0/1     ContainerCreating   0          45s

登录查看

查看报错

修改错误(修改时修改资源控制器)

查看

修改副本数

k8s部署dashboard相关推荐

  1. K8S部署Dashboard和Heapster

    K8S部署Dashboard和Heapster 0.前言 文章使用的k8s版本为1.10.0,dashboard版本为v1.8.3 系统为CentOS7 总共有三台机器: Name IP Role c ...

  2. k8s部署dash-board

    官方仓库 GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters dashboard官网介绍: De ...

  3. ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

    上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制,然后部署一下Dashboard,完 ...

  4. k8s dashboard_ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

    文章转载于公众号[恰同学骚年],作者Edison Zhou 上一篇<K8S集群部署>中搭建好了一个最小化的K8S集群,这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一 ...

  5. k8s dashboard_k8s集群部署Dashboard

    部署Dashboard(Web UI) * dashboard-deployment.yaml // 部署Pod,提供Web服务 * dashboard-rbac.yaml // 授权访问apiser ...

  6. 【云原生 | Kubernetes 实战】01、K8s-v1.25集群搭建和部署基于网页的 K8s 用户界面 Dashboard

    目录 一.K8s 概述 可以查看官方文档:概述 | Kubernetes 组件交互逻辑: 二.kubeadm 安装 K8s-v1.25高可用集群 k8s 环境规划: 1.初始化环境 2.安装 Dock ...

  7. k8s 集群部署(dashboard+metrics-server)

    Kubeadm 部署 Kubernetes1.18.6 集群 一.kubeadm 工作原理 kubeadm 是 Kubernetes 主推的部署工具之一,正在快速迭代开发中. 1.初始化系统 所有机器 ...

  8. 09-2.部署 dashboard 插件

    09-2.部署 dashboard 插件 修改配置文件 将下载的 kubernetes-server-linux-amd64.tar.gz 解压后,再解压其中的 kubernetes-src.tar. ...

  9. K8S——关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署)

    K8S--关于K8S控制台的yaml文件编写(基于上一章多节点K8S部署) 一.yaml文件编写流程 二.证书自签 一.yaml文件编写流程 rbac.yaml---->secret.yaml- ...

最新文章

  1. python是c语言写的吗-C语言是学python的基础吗?
  2. 你的Redis为什么变慢了?
  3. Java中实现根据一个List中的数据的两个属性相同划分为同一类
  4. android中TextView分段显示不同颜色,字体,时间
  5. thinkPHP增删改查的方法案例
  6. 自己动手构造编译系统:编译、汇编与链接2.1.3 符号表管理
  7. 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!
  8. c#生成一组不同的随机数的方法
  9. Spring、SpringMVC、Spring Boot、Spring Cloud 概念、关系及区别
  10. 【项目合作】移动端人体姿态估计
  11. 解读新突破“中国量子计算机”,真比神威·太湖之光还厉害?
  12. jar k8s 自己的 部署_微服务架构 - 离线部署k8s平台并部署测试实例
  13. 给spring容器注册组件
  14. Java输出字符串格式问题 .UnknownFormatConversionException
  15. Android:在酷安发布应用流程记录
  16. 微信小程序公众平台如何生成小程序码
  17. 网络规划设计师教程第二版目录
  18. mysql查询范围数据_MySQL通过POIN数据类型查询指定范围内数据
  19. 股票价格中后取复权的计算
  20. DELL R510服务器RAID配置,Dell服务器硬RAID配置

热门文章

  1. 【java开发系列】—— 嵌套类与内部类
  2. Python常见问题(4):Python库与扩展 Library and Extension FAQ
  3. Storm On YARN
  4. 梯度方向直方图和物体检测Histogram of Oriented Gradients and Object Detection
  5. 32.3. redis-cli - Command-line client to redis-server
  6. 基于Node的Koa2项目从创建到打包到云服务器指南
  7. WEB服务器、应用程序服务器、HTTP服务器的区别
  8. iOS app性能优化的那些事
  9. 使用js技术使字体闪烁
  10. 解决xcode打开时假死的问题