k8s 安装 kubernetes-dashboard-2.X


懂信帝
懂信帝 2022-09-27 09:40:25 51048
分类专栏: 资讯
  • 安装使用 k8s 原生的 web 图形化界面来对资源进行查看与管理
  • 在官网查看镜像版本
    Docker Hub
  • 所有工作节点拉取镜像
    docker pull kubernetesui/dashboard:v2.4.0
    docker pull kubernetesui/metrics-scraper:latest

  • 获取官方yaml
    Web 界面 (Dashboard) | Kubernetes
  • 编辑 yaml
    mv recommended.yaml kubernetes-dashboard.yaml
    vim kubernetes-dashboard.yaml
    1. Copyright 2017 The Kubernetes Authors.
    2. Licensed under the Apache License, Version 2.0 (the "License");
    3. you may not use this file except in compliance with the License.
    4. You may obtain a copy of the License at
    5. http://www.apache.org/licenses/LICENSE-2.0
    6. Unless required by applicable law or agreed to in writing, software
    7. distributed under the License is distributed on an "AS IS" BASIS,
    8. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    9. See the License for the specific language governing permissions and
    10. limitations under the License.
    11. apiVersion: v1
    12. kind: Namespace
    13. metadata:
    14. name: kubernetes-dashboard
    15. ---
    16. apiVersion: v1
    17. kind: ServiceAccount
    18. metadata:
    19. labels:
    20. k8s-app: kubernetes-dashboard
    21. name: kubernetes-dashboard
    22. namespace: kubernetes-dashboard
    23. ---
    24. kind: Service
    25. apiVersion: v1
    26. metadata:
    27. labels:
    28. k8s-app: kubernetes-dashboard
    29. name: kubernetes-dashboard
    30. namespace: kubernetes-dashboard
    31. spec:
    32. ports:
    33. - port: 443
    34. targetPort: 8443
    35. selector:
    36. k8s-app: kubernetes-dashboard
    37. type: NodePort
    38. ---
    39. apiVersion: v1
    40. kind: Secret
    41. metadata:
    42. labels:
    43. k8s-app: kubernetes-dashboard
    44. name: kubernetes-dashboard-certs
    45. namespace: kubernetes-dashboard
    46. type: Opaque
    47. ---
    48. apiVersion: v1
    49. kind: Secret
    50. metadata:
    51. labels:
    52. k8s-app: kubernetes-dashboard
    53. name: kubernetes-dashboard-csrf
    54. namespace: kubernetes-dashboard
    55. type: Opaque
    56. data:
    57. csrf: ""
    58. ---
    59. apiVersion: v1
    60. kind: Secret
    61. metadata:
    62. labels:
    63. k8s-app: kubernetes-dashboard
    64. name: kubernetes-dashboard-key-holder
    65. namespace: kubernetes-dashboard
    66. type: Opaque
    67. ---
    68. kind: ConfigMap
    69. apiVersion: v1
    70. metadata:
    71. labels:
    72. k8s-app: kubernetes-dashboard
    73. name: kubernetes-dashboard-settings
    74. namespace: kubernetes-dashboard
    75. ---
    76. kind: Role
    77. apiVersion: rbac.authorization.k8s.io/v1
    78. metadata:
    79. labels:
    80. k8s-app: kubernetes-dashboard
    81. name: kubernetes-dashboard
    82. namespace: kubernetes-dashboard
    83. rules:
    84. Allow Dashboard to get, update and delete Dashboard exclusive secrets.
    85. - apiGroups: [""]
    86. resources: ["secrets"]
    87. resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"]
    88. verbs: ["get", "update", "delete"]
    89. Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
    90. - apiGroups: [""]
    91. resources: ["configmaps"]
    92. resourceNames: ["kubernetes-dashboard-settings"]
    93. verbs: ["get", "update"]
    94. Allow Dashboard to get metrics.
    95. - apiGroups: [""]
    96. resources: ["services"]
    97. resourceNames: ["heapster", "dashboard-metrics-scraper"]
    98. verbs: ["proxy"]
    99. - apiGroups: [""]
    100. resources: ["services/proxy"]
    101. resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"]
    102. verbs: ["get"]
    103. ---
    104. kind: ClusterRole
    105. apiVersion: rbac.authorization.k8s.io/v1
    106. metadata:
    107. labels:
    108. k8s-app: kubernetes-dashboard
    109. name: kubernetes-dashboard
    110. rules:
    111. Allow Metrics Scraper to get metrics from the Metrics server
    112. - apiGroups: ["metrics.k8s.io"]
    113. resources: ["pods", "nodes"]
    114. verbs: ["get", "list", "watch"]
    115. ---
    116. apiVersion: rbac.authorization.k8s.io/v1
    117. kind: RoleBinding
    118. metadata:
    119. labels:
    120. k8s-app: kubernetes-dashboard
    121. name: kubernetes-dashboard
    122. namespace: kubernetes-dashboard
    123. roleRef:
    124. apiGroup: rbac.authorization.k8s.io
    125. kind: Role
    126. name: kubernetes-dashboard
    127. subjects:
    128. - kind: ServiceAccount
    129. name: kubernetes-dashboard
    130. namespace: kubernetes-dashboard
    131. ---
    132. apiVersion: rbac.authorization.k8s.io/v1
    133. kind: ClusterRoleBinding
    134. metadata:
    135. name: kubernetes-dashboard
    136. roleRef:
    137. apiGroup: rbac.authorization.k8s.io
    138. kind: ClusterRole
    139. name: kubernetes-dashboard
    140. subjects:
    141. - kind: ServiceAccount
    142. name: kubernetes-dashboard
    143. namespace: kubernetes-dashboard
    144. ---
    145. kind: Deployment
    146. apiVersion: apps/v1
    147. metadata:
    148. labels:
    149. k8s-app: kubernetes-dashboard
    150. name: kubernetes-dashboard
    151. namespace: kubernetes-dashboard
    152. spec:
    153. replicas: 1
    154. revisionHistoryLimit: 10
    155. selector:
    156. matchLabels:
    157. k8s-app: kubernetes-dashboard
    158. template:
    159. metadata:
    160. labels:
    161. k8s-app: kubernetes-dashboard
    162. spec:
    163. containers:
    164. - name: kubernetes-dashboard
    165. image: kubernetesui/dashboard:v2.4.0
    166. imagePullPolicy: IfNotPresent
    167. ports:
    168. - containerPort: 8443
    169. protocol: TCP
    170. args:
    171. - --auto-generate-certificates
    172. - --namespace=kubernetes-dashboard
    173. Uncomment the following line to manually specify Kubernetes API server Host
    174. If not specified, Dashboard will attempt to auto discover the API server and connect
    175. to it. Uncomment only if the default does not work.
    176. - --apiserver-host=http://my-address:port
    177. volumeMounts:
    178. - name: kubernetes-dashboard-certs
    179. mountPath: /certs
    180. Create on-disk volume to store exec logs
    181. - mountPath: /tmp
    182. name: tmp-volume
    183. livenessProbe:
    184. httpGet:
    185. scheme: HTTPS
    186. path: /
    187. port: 8443
    188. initialDelaySeconds: 30
    189. timeoutSeconds: 30
    190. securityContext:
    191. allowPrivilegeEscalation: false
    192. readOnlyRootFilesystem: true
    193. runAsUser: 1001
    194. runAsGroup: 2001
    195. volumes:
    196. - name: kubernetes-dashboard-certs
    197. secret:
    198. secretName: kubernetes-dashboard-certs
    199. - name: tmp-volume
    200. emptyDir: {}
    201. serviceAccountName: kubernetes-dashboard
    202. nodeSelector:
    203. "beta.kubernetes.io/os": linux
    204. Comment the following tolerations if Dashboard must not be deployed on master
    205. tolerations:
    206. - key: node-role.kubernetes.io/master
    207. effect: NoSchedule
    208. ---
    209. kind: Service
    210. apiVersion: v1
    211. metadata:
    212. labels:
    213. k8s-app: dashboard-metrics-scraper
    214. name: dashboard-metrics-scraper
    215. namespace: kubernetes-dashboard
    216. spec:
    217. ports:
    218. - port: 8000
    219. targetPort: 8000
    220. selector:
    221. k8s-app: dashboard-metrics-scraper
    222. ---
    223. kind: Deployment
    224. apiVersion: apps/v1
    225. metadata:
    226. labels:
    227. k8s-app: dashboard-metrics-scraper
    228. name: dashboard-metrics-scraper
    229. namespace: kubernetes-dashboard
    230. spec:
    231. replicas: 1
    232. revisionHistoryLimit: 10
    233. selector:
    234. matchLabels:
    235. k8s-app: dashboard-metrics-scraper
    236. template:
    237. metadata:
    238. labels:
    239. k8s-app: dashboard-metrics-scraper
    240. annotations:
    241. seccomp.security.alpha.kubernetes.io/pod: 'runtime/default'
    242. spec:
    243. containers:
    244. - name: dashboard-metrics-scraper
    245. image: kubernetesui/metrics-scraper:latest
    246. imagePullPolicy: IfNotPresent
    247. ports:
    248. - containerPort: 8000
    249. protocol: TCP
    250. livenessProbe:
    251. httpGet:
    252. scheme: HTTP
    253. path: /
    254. port: 8000
    255. initialDelaySeconds: 30
    256. timeoutSeconds: 30
    257. volumeMounts:
    258. - mountPath: /tmp
    259. name: tmp-volume
    260. securityContext:
    261. allowPrivilegeEscalation: false
    262. readOnlyRootFilesystem: true
    263. runAsUser: 1001
    264. runAsGroup: 2001
    265. serviceAccountName: kubernetes-dashboard
    266. nodeSelector:
    267. "beta.kubernetes.io/os": linux
    268. Comment the following tolerations if Dashboard must not be deployed on master
    269. tolerations:
    270. - key: node-role.kubernetes.io/master
    271. effect: NoSchedule
    272. volumes:
    273. - name: tmp-volume
    274. emptyDir: {}
  • kubectl apply -f kubernetes-dashboard.yaml

    打开浏览器访问:https://192.168.1.30:31168/

  • 通过管理员 Token 登陆 dashboard
    kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:kubernetes-dashboard
    获取 token

    复制到 输入 token  处: 点登陆

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10500
赞同 0
评论 0 条
懂信帝L0
粉丝 0 发表 12 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2969
【软件正版化】软件正版化工作要点  2888
统信UOS试玩黑神话:悟空  2860
信刻光盘安全隔离与信息交换系统  2746
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1280
grub引导程序无法找到指定设备和分区  1249
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  169
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  168
点击报名 | 京东2025校招进校行程预告  165
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  161
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!