TypechoJoeTheme

主机评测

主机评测

专注云主机评测和优惠码发布

metrics-s_

2022-01-20
/
0 评论
/
1,132 阅读
/
正在检测是否收录...
01/20

一、背景

kubernetes 集群资源监控之前可以通过 heapster 来获取数据,在 1.11 开始开始逐渐废弃 heapster 了,采用 metrics-server 来代替,metrics-server 是集群的核心监控数据的聚合器,它从 kubelet 公开的 Summary API 中采集指标信息,metrics-server 是扩展的 APIServer,依赖于kube-aggregator,因为我们需要在 APIServer 中开启相关参数。后期还可以通过 metrics-server这个插件来实现动态扩容缩容,即HPA。

二、安装metrics-server

部署 metrics-server插件其实很简单,执行如下操作即可:

  1. #下载metrics-server的yaml文件
  2. wget -c https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
  3. #修改metrics-server的yaml文件
  4. sed -i -e "s/--secure-port=4443/&\n command:\n - \/metrics-server\n - --kubelet-preferred-address-types=InternalIP\n - --kubelet-insecure-tls/" -e "s#k8s.gcr.io/metrics-server/metrics-server:v0.3.7#zhaoqinchang/metrics-server:0.3.7#g" components.yaml
  5. #应用metrics-server的yaml文件
  6. mv components.yaml metrics-server.yaml && kubectl apply -f metrics-server.yaml

metrics-server.yaml文件全部内容如下:

  1. ---
  2. apiVersion: rbac.authorization.k8s.io/v1
  3. kind: ClusterRole
  4. metadata:
  5. name: system:aggregated-metrics-reader
  6. labels:
  7. rbac.authorization.k8s.io/aggregate-to-view: "true"
  8. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  9. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  10. rules:
  11. - apiGroups: ["metrics.k8s.io"]
  12. resources: ["pods", "nodes"]
  13. verbs: ["get", "list", "watch"]
  14. ---
  15. apiVersion: rbac.authorization.k8s.io/v1
  16. kind: ClusterRoleBinding
  17. metadata:
  18. name: metrics-server:system:auth-delegator
  19. roleRef:
  20. apiGroup: rbac.authorization.k8s.io
  21. kind: ClusterRole
  22. name: system:auth-delegator
  23. subjects:
  24. - kind: ServiceAccount
  25. name: metrics-server
  26. namespace: kube-system
  27. ---
  28. apiVersion: rbac.authorization.k8s.io/v1
  29. kind: RoleBinding
  30. metadata:
  31. name: metrics-server-auth-reader
  32. namespace: kube-system
  33. roleRef:
  34. apiGroup: rbac.authorization.k8s.io
  35. kind: Role
  36. name: extension-apiserver-authentication-reader
  37. subjects:
  38. - kind: ServiceAccount
  39. name: metrics-server
  40. namespace: kube-system
  41. ---
  42. apiVersion: apiregistration.k8s.io/v1beta1
  43. kind: APIService
  44. metadata:
  45. name: v1beta1.metrics.k8s.io
  46. spec:
  47. service:
  48. name: metrics-server
  49. namespace: kube-system
  50. group: metrics.k8s.io
  51. version: v1beta1
  52. insecureSkipTLSVerify: true
  53. groupPriorityMinimum: 100
  54. versionPriority: 100
  55. ---
  56. apiVersion: v1
  57. kind: ServiceAccount
  58. metadata:
  59. name: metrics-server
  60. namespace: kube-system
  61. ---
  62. apiVersion: apps/v1
  63. kind: Deployment
  64. metadata:
  65. name: metrics-server
  66. namespace: kube-system
  67. labels:
  68. k8s-app: metrics-server
  69. spec:
  70. selector:
  71. matchLabels:
  72. k8s-app: metrics-server
  73. template:
  74. metadata:
  75. name: metrics-server
  76. labels:
  77. k8s-app: metrics-server
  78. spec:
  79. serviceAccountName: metrics-server
  80. volumes:
  81. # mount in tmp so we can safely use from-scratch images and/or read-only containers
  82. - name: tmp-dir
  83. emptyDir: {}
  84. containers:
  85. - name: metrics-server
  86. image: zhaoqinchang/metrics-server:0.3.7
  87. imagePullPolicy: IfNotPresent
  88. args:
  89. - --cert-dir=/tmp
  90. - --secure-port=4443
  91. command: #添加以下三行command命令
  92. - /metrics-server
  93. - --kubelet-preferred-address-types=InternalIP
  94. - --kubelet-insecure-tls
  95. ports:
  96. - name: main-port
  97. containerPort: 4443
  98. protocol: TCP
  99. securityContext:
  100. readOnlyRootFilesystem: true
  101. runAsNonRoot: true
  102. runAsUser: 1000
  103. volumeMounts:
  104. - name: tmp-dir
  105. mountPath: /tmp
  106. nodeSelector:
  107. kubernetes.io/os: linux
  108. ---
  109. apiVersion: v1
  110. kind: Service
  111. metadata:
  112. name: metrics-server
  113. namespace: kube-system
  114. labels:
  115. kubernetes.io/name: "Metrics-server"
  116. kubernetes.io/cluster-service: "true"
  117. spec:
  118. selector:
  119. k8s-app: metrics-server
  120. ports:
  121. - port: 443
  122. protocol: TCP
  123. targetPort: main-port
  124. ---
  125. apiVersion: rbac.authorization.k8s.io/v1
  126. kind: ClusterRole
  127. metadata:
  128. name: system:metrics-server
  129. rules:
  130. - apiGroups:
  131. - ""
  132. resources:
  133. - pods
  134. - nodes
  135. - nodes/stats
  136. - namespaces
  137. - configmaps
  138. verbs:
  139. - get
  140. - list
  141. - watch
  142. ---
  143. apiVersion: rbac.authorization.k8s.io/v1
  144. kind: ClusterRoleBinding
  145. metadata:
  146. name: system:metrics-server
  147. roleRef:
  148. apiGroup: rbac.authorization.k8s.io
  149. kind: ClusterRole
  150. name: system:metrics-server
  151. subjects:
  152. - kind: ServiceAccount
  153. name: metrics-server
  154. namespace: kube-system

部署完成即可看到K8S的资源状况,如下图所示:

k8s
朗读

赞 · 1
赞赏
感谢您的支持,我会继续努力哒!
打开手机扫一扫,即可进行打赏哦!
版权属于:

主机评测

本文链接:

https://zjpc.cc/967.html(转载时请注明本文出处及文章链接)

评论 (0)
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 泡泡
  • 阿鲁
  • 颜文字
火爆
火爆
火爆