当前位置:网站首页>Kubernetes visual interface dashboard
Kubernetes visual interface dashboard
2022-06-28 17:53:00 【Silly [email protected]】
Deploy dashboard
dashboard yes kubernetes The official visual interface . https://github.com/kubernetes/dashboard
1、 Deploy
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
If you can't download it, you can create it 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-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-certs
namespace: kubernetes-dashboard
type: Opaque
---
apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-csrf
namespace: kubernetes-dashboard
type: Opaque
data:
csrf: ""
---
apiVersion: v1
kind: Secret
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-key-holder
namespace: kubernetes-dashboard
type: Opaque
---
kind: ConfigMap
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-settings
namespace: kubernetes-dashboard
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: 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-dashboard
name: 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-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubernetes-dashboard
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kubernetes-dashboard
---
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: kubernetes-dashboard
template:
metadata:
labels:
k8s-app: kubernetes-dashboard
spec:
containers:
- name: kubernetes-dashboard
image: kubernetesui/dashboard:v2.3.1
imagePullPolicy: Always
ports:
- containerPort: 8443
protocol: TCP
args:
- --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: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
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
volumes:
- name: kubernetes-dashboard-certs
secret:
secretName: kubernetes-dashboard-certs
- name: tmp-volume
emptyDir: {}
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
ports:
- port: 8000
targetPort: 8000
selector:
k8s-app: dashboard-metrics-scraper
---
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
k8s-app: dashboard-metrics-scraper
name: dashboard-metrics-scraper
namespace: kubernetes-dashboard
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: dashboard-metrics-scraper
template:
metadata:
labels:
k8s-app: dashboard-metrics-scraper
annotations:
seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
spec:
containers:
- name: dashboard-metrics-scraper
image: kubernetesui/metrics-scraper:v1.0.6
ports:
- containerPort: 8000
protocol: TCP
livenessProbe:
httpGet:
scheme: HTTP
path: /
port: 8000
initialDelaySeconds: 30
timeoutSeconds: 30
volumeMounts:
- mountPath: /tmp
name: tmp-volume
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsUser: 1001
runAsGroup: 2001
serviceAccountName: kubernetes-dashboard
nodeSelector:
"kubernetes.io/os": linux
# Comment the following tolerations if Dashboard must not be deployed on master
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
volumes:
- name: tmp-volume
emptyDir: {}
2、 Set the access port
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
take type: ClusterIP Change it to type: NodePort
Port found , Release in the security group
[[email protected] ~]# kubectl get svc -A |grep kubernetes-dashboard
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.96.55.123 <none> 8000/TCP 3m49s
kubernetes-dashboard kubernetes-dashboard NodePort 10.96.154.176 <none> 443:30359/TCP 3m49s
[[email protected] ~]#
You can see that the port is 30359
3、 visit
https:// Cluster arbitrary IP: port

4、 Create an access account
# Create an access account , Prepare one yaml file ; vi dash.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
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
kubectl apply -f dash.yaml
Get access token
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{
{.data.token | base64decode}}"
eyJhbGciOiJSUzI1NiIsImtpZCI6IkxtVVBSTjVIMTdySUR6MDBnd0RkWExHV1Y3ZkZWUmszY3pRSHRjRjhlWDAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXZ6dGd0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI0NGMxNjE4MS00NTEwLTQ2MjktYjM2Mi02YmE4ODk3ZTg2OWQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.jDnaVCGK-h2IvJOmUcnviGEZFyLiLZurHl_29USOobxEb3bVe02F9YtrJfsnL7O8axycVvMVQ6fzorFN-S7ZjTre4lVmbveX5GSW60u5LceYsX-Rl6pjk51K4cwF_Pk-bjLd2a2uQKVMPImtAleAYuxLYxzxMbWX5-FVmY3miWKBONSqOKiwS8G9BOVlPSD5P_T2WYa1tUE87a214Py1ahR2a8JJkD7d66vzfjXAwwEL3HhqWuccBUaGTHNxOQQtuj_dRMSbB-Xy3t-bMFXCUYe8Qf8z2W3DZtB2Y4lhrma-MTVNMlMUI6qgHnhczXxYmh5bQKmyEb-am6ypZQjrEg
take token Fill in the login interface .
5、 Interface

This paper is written by mdnice Multi platform Publishing
版权声明
本文为[Silly [email protected][email protected]]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/179/202206281723181079.html
边栏推荐
- [question skimming diary] and a subarray of K
- 第四个专栏,Kubernetes云原生实战,它来了~
- ICML 2022 | transferable imitation learning method based on decoupling gradient optimization
- NoSQL之Redis配置与优化(你不在南京的日子我替你吹了秦淮河的晚风)
- 听说转行软件测试只能自学,培训机构是个坑?
- The processor of this virtual machine supports different functions than the processor of the virtual machine that holds the state of the virtual machine
- DMS的SQL结果集导出支持传参数吗?
- Sum of factor numbers of interval product
- Squid proxy server application (I came from afar to make an appointment with you)
- Anesthesia is not as simple as "one injection". Painless, safe and comfortable anesthesia is the first choice for patients
猜你喜欢

Redis6笔记04 主从复制,集群,应用问题,Redis6新功能

Redis主从复制、哨兵、cluster集群原理+实验(好好等,会晚些,但会更好)

2022危险化学品经营单位主要负责人复训题库及在线模拟考试
![[official cooperation between Shang Silicon Valley and Tencent cloud] video release of Silicon Valley classroom project](/img/06/b786166317f2d66e1c61133f427630.jpg)
[official cooperation between Shang Silicon Valley and Tencent cloud] video release of Silicon Valley classroom project

Redis持久化(少年一貫快馬揚帆,道阻且長不轉彎)

win10用cmake3.22与vs2019编译curl库源码并调用

使用Pega进行一个简单的RPA程序开发

MySQL中的日志管理 日志備份與恢複

国内怎么就做不出 IDEA 那样的产品?

Redis master-slave replication, sentinel, cluster cluster principle + experiment (wait, it will be later, but it will be better)
随机推荐
Summary and Thinking on interface test automation
Anesthesia is not as simple as "one injection". Painless, safe and comfortable anesthesia is the first choice for patients
Xiaoxin black apple sound card ID injection
Idea of capturing mobile terminal variant combination
问下 flink sql cdc. 能同步多张表然后sink到一份表中么 同步的表通过 joi
第四个专栏,Kubernetes云原生实战,它来了~
终于辞职了,全职ue了
7-user input and while loop
NP tips: random create random matrix sample = np random. random([19, 64 , 64, 3])
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush
Dpdk 20.11 compiling, installing and running program
Pure big resentment! Those who were discouraged from taking the postgraduate entrance examination
Write your own WordPress template
MySQL中的日志管理 日志備份與恢複
Redis持久化(少年一贯快马扬帆,道阻且长不转弯)
11 effective ways to enhance WordPress
How to create a CSR (certificate signing request) file?
期货开户怎么开?在哪里开户更安全?
Google推出Advanced API Security 保护API免受安全威胁
阿里云服务器里装的mysql是8版本的,是因为dataworks的mysql驱动版本不支持吗?现在提