9.4 metrics-server 插件

1.创建并分发证书
a.配置
cat > metrics-server-csr.json <<EOF
{
“CN”: “aggregator”,
“hosts”: [],
“key”: {
“algo”: “rsa”,
“size”: 2048
},
“names”: [
{
“C”: “CN”,
“ST”: “BeiJing”,
“L”: “BeiJing”,
“O”: “k8s”,
“OU”: “4Paradigm”
}
]
}
EOF
b.生成
cfssl gencert -ca=/etc/kubernetes/cert/ca.pem
-ca-key=/etc/kubernetes/cert/ca-key.pem
-config=/etc/kubernetes/cert/ca-config.json
-profile=kubernetes metrics-server-csr.json | cfssljson -bare metrics-server
c.分发
for node_ip in ${NODE_IPS[@]}
do
echo ">>> n o d e i p &quot; s c p m e t r i c s − s e r v e r ∗ . p e m r o o t @ {node_ip}&quot; scp metrics-server*.pem root@ nodeip"scpmetricsserver.pemroot@{node_ip}:/etc/kubernetes/cert/
done

2.修改配置
kube-apiserver添加参数并重启,参考6.2中标红配置
–requestheader-client-ca-file=/etc/kubernetes/cert/ca.pem
–requestheader-allowed-names=""
–requestheader-extra-headers-prefix=“X-Remote-Extra-”
–requestheader-group-headers=X-Remote-Group
–requestheader-username-headers=X-Remote-User
–proxy-client-cert-file=/etc/kubernetes/cert/metrics-server.pem
–proxy-client-key-file=/etc/kubernetes/cert/metrics-server-key.pem
–runtime-config=api/all=true

kube-controller-manager添加参数并重启,参考6.3中标红配置
–horizontal-pod-autoscaler-use-rest-clients=true

3.修改插件配置文件 文件目录cluster/addons/metrics-server/
vim metrics-server-deployment.yaml
< image: k8s.gcr.io/metrics-server-amd64:v0.2.1

   image: mirrorgooglecontainers/metrics-server-amd64:v0.2.1

< - --source=kubernetes.summary_api:’’

    - --source=kubernetes.summary_api:https://kubernetes.default?kubeletHttps=true&kubeletPort=10250

< image: k8s.gcr.io/addon-resizer:1.8.1

    image: siriuszg/addon-resizer:1.8.1

4.授予 kube-system:metrics-server ServiceAccount 访问 kubelet API 的权限:
cat > auth-kubelet.yaml <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: metrics-server:system:kubelet-api-admin
labels:
kubernetes.io/cluster-service: “true”
addonmanager.kubernetes.io/mode: Reconcile
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:kubelet-api-admin
subjects:

  • kind: ServiceAccount
    name: metrics-server
    namespace: kube-system
    EOF

5.执行文件
kubectl create -f .
输出
clusterrolebinding.rbac.authorization.k8s.io “metrics-server:system:auth-delegator” created
clusterrolebinding.rbac.authorization.k8s.io “metrics-server:system:kubelet-api-admin” created
rolebinding.rbac.authorization.k8s.io “metrics-server-auth-reader” created
apiservice.apiregistration.k8s.iov1beta1.metrics.k8s.io” created
serviceaccount “metrics-server” created
configmap “metrics-server-config” created
deployment.extensions “metrics-server-v0.2.1” created
service “metrics-server” created
clusterrole.rbac.authorization.k8s.io “system:metrics-server” created
clusterrolebinding.rbac.authorization.k8s.io “system:metrics-server” created

6.查看状态
kubectl get pods -n kube-system |grep metrics-server
metrics-server-v0.2.1-86946dfbfb-xpdtf 2/2 Running 0 33s

kubectl get svc -n kube-system|grep metrics-server
metrics-server ClusterIP 10.254.39.222 443/TCP 43s

7.查看 metrcs-server 输出的 metrics
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/resource-metrics-api.md
访问
https://123.56.41.163:6443/apis/metrics.k8s.io/v1beta1/nodes
{
“paths”: [
“/apis”,
“/apis/”,
“/apis/apiextensions.k8s.io”,
“/apis/apiextensions.k8s.io/v1beta1”,
“/healthz”,
“/healthz/etcd”,
“/healthz/ping”,
“/healthz/poststarthook/generic-apiserver-start-informers”,
“/healthz/poststarthook/start-apiextensions-controllers”,
“/healthz/poststarthook/start-apiextensions-informers”,
“/metrics”,
“/openapi/v2”,
“/swagger-2.0.0.json”,
“/swagger-2.0.0.pb-v1”,
“/swagger-2.0.0.pb-v1.gz”,
“/swagger-ui/”,
“/swagger.json”,
“/swaggerapi”,
“/version”
]
}
https://123.56.41.163:6443/apis/metrics.k8s.io/v1beta1/pods
https://123.56.41.163:6443/apis/metrics.k8s.io/v1beta1/namespace/pods/
或者
kubectl get --raw apis/metrics.k8s.io/v1beta1/nodes
kubectl get --raw apis/metrics.k8s.io/v1beta1/pods
kubectl get --raw apis/metrics.k8s.io/v1beta1/namespace/pods/

Kubernetes (k8s) 的 Metrics-Server 是一个独立的组件,用于收集和存储集群内各个节点和Pod的监控指标,如CPU、内存、网络I/O等。在 Kubernetes 1.24 版本部署 Metrics-Server,你可以按照以下步骤操作: 1. **安装依赖**: - 确保你的系统已经安装了 Kubernetes 工具(kubectl 和 kubelet),并且有可用的 API Server。 2. **获取镜像**: - 可以从官方 Docker Hub 获取 Metrics-Server 的镜像,例如 `gcr.io/k8s-minikube/metrics-server:v0.5.1` 或者最新的稳定版本。 3. **创建服务账户**: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: metrics-server namespace: kube-system ``` 4. **应用角色绑定**: ```yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: metrics-server-cluster-rule subjects: - kind: ServiceAccount name: metrics-server namespace: kube-system spec: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-reader ``` 5. **创建 Deployment**: 使用以下 YAML 配置文件(替换 `<image>` 为你需要的镜像名称): ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: kube-system spec: replicas: 1 selector: matchLabels: app: metrics-server template: metadata: labels: app: metrics-server spec: serviceAccountName: metrics-server containers: - name: metrics-server image: <image> ports: - containerPort: 443 args: ["--kubelet-insecure-tls", "--kubelet-preferred-address-types=InternalIP"] ``` 6. **检查部署**: ``` kubectl apply -f metrics-server-deployment.yaml kubectl get pods -n kube-system | grep metrics-server ``` 7. **验证配置**: 检查 Metrics-Server 是否正常运行并能访问集群资源: ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值