k8s-1.28.10 安装metrics-server

1.简介

        Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标,通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标。

2.下载yaml文件

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

3.修改yaml文件

vim components.yaml,找到140行。

增加 - --kubelet-insecure-tls

如果镜像下载不下来,执行 :

docker pull metrics-server:v0.7.2

在重新给镜像打tag:

docker tag bitnami/metrics-server:0.7.2 registry.k8s.io/metrics-server/metrics-server:v0.7.2

或者通过我自己上传的资源下载。

https://download.csdn.net/download/liudongyang123/90669328https://download.csdn.net/download/liudongyang123/90669328

4.执行yaml文件

kubectl apply -f components.yaml

5.验证是否成功

kubectl get pod -n kube-system

kubectl top nodes 

<think>嗯,用户现在在问关于Kubernetes证书的问题。他们给出了一个ls命令的输出,列出了/etc/kubernetes/pki/目录下的文件,然后问“哪个证书”。看起来用户想知道这些证书各自的用途,或者可能是在特定情况下应该使用哪个证书。 首先,我需要回忆Kubernetes的PKI结构。这个目录通常包含Kubernetes集群的各种证书和密钥。用户之前遇到过403错误,可能是在配置监控或认证时遇到了问题,所以现在需要正确选择证书。 接下来,查看用户列出的文件列表:apiserver.crt、apiserver-etcd-client.key、ca.crt、sa.pub等等。需要逐个解释每个文件的用途,特别是那些常用的,比如ca.crt是根证书,apiserver.crt是API服务器的证书,sa.key和sa.pub是ServiceAccount的密钥对。 用户可能是在尝试配置某个服务(比如Prometheus)来访问Kubernetes API,或者某个组件的TLS通信。需要指出在不同场景下应该使用哪个证书。例如,访问API服务器时客户端可能需要使用ca.crt来验证服务器身份,或者使用前端代理相关的证书。 同时,用户之前的问题涉及使用curl命令访问metrics端点,所以可能需要指导他们如何正确使用客户端证书或ServiceAccount的token进行认证。这时候应该强调ca.crt作为根证书的作用,以及ServiceAccount的sa.key和sa.pub的作用,但要注意ServiceAccount通常使用token而不是证书进行认证。 另外,需要提醒用户不要混淆不同证书的用途,比如apiserver-etcd-client证书用于API服务器与ETCD的通信,而front-proxy相关的证书用于聚合层。如果用户的问题是关于客户端认证,可能需要引导他们使用正确的客户端证书,或者建议使用ServiceAccount的token,这是更常见的做法。 最后,确保回答结构清晰,分点列出每个证书的用途,并给出常见使用场景,帮助用户根据他们的具体需求选择正确的证书。可能还需要补充一些注意事项,比如权限管理和安全最佳实践,避免泄露私钥。</think>以下是`/etc/kubernetes/pki/`目录下关键证书的用途解析: --- ### **核心证书及用途** #### 1. **`ca.crt`和`ca.key`** - **用途**:Kubernetes集群的根证书(Certificate Authority),用于签发其他所有证书。 - **场景**: - 客户端(如`kubelet`、`kube-proxy`)验证API Server证书的合法性。 - 配置外部工具(如Prometheus)时,通常需要`ca.crt`来信任API Server的HTTPS端点。 #### 2. **`apiserver.crt`和`apiserver.key`** - **用途**:API Server的服务器证书,用于对外提供HTTPS服务。 - **场景**: - API Server监听`6443`端口时使用的TLS证书。 - 客户端通过`curl https://<API-Server-IP>:6443`访问时,需用`ca.crt`验证此证书。 #### 3. **`apiserver-kubelet-client.crt`和`apiserver-kubelet-client.key`** - **用途**:API Server作为客户端与`kubelet`通信时使用的客户端证书。 - **场景**: - API Server访问`kubelet`的`10250`端口(如执行`kubectl exec`或日志拉取)时认证身份。 #### 4. **`front-proxy-ca.crt`和`front-proxy-client.crt`** - **用途**:集群前端代理(Aggregation Layer)的根证书和客户端证书。 - **场景**: - 用于扩展API Server功能(如Metrics Server、自定义API扩展)时的代理通信。 #### 5. **`sa.pub`和`sa.key`** - **用途**:ServiceAccount的签名密钥对。 - **场景**: - `sa.pub`:API Server用于验证ServiceAccount的Token(JWT签名)。 - `sa.key`:签发ServiceAccount的Token(集群初始化后固定,需严格保密)。 #### 6. **`etcd/`目录** - **内容**:包含`etcd`服务的CA证书、服务器证书及对等通信证书。 - **关键文件**: - `etcd/server.crt`:`etcd`服务器的证书。 - `etcd/peer.crt`:`etcd`节点间通信的证书。 --- ### **常见问题场景与证书选择** #### **场景1:配置Prometheus访问API Server Metrics** - **需要证书**:`ca.crt`(验证API Server证书)。 - **认证方式**:推荐使用ServiceAccount的Token(而非直接使用证书)。 #### **场景2:调试API Server与etcd通信** - **需要证书**: - `etcd/ca.crt`:验证`etcd`服务器证书。 - `apiserver-etcd-client.crt`和`apiserver-etcd-client.key`:API Server作为客户端连接`etcd`时的身份凭证。 #### **场景3:手动调用API Server接口** - **curl命令示例**: ```bash curl --cacert /etc/kubernetes/pki/ca.crt \ --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt \ --key /etc/kubernetes/pki/apiserver-kubelet-client.key \ https://<API-Server-IP>:6443/api/v1/nodes ``` --- ### **注意事项** 1. **私钥保密性**:所有`.key`文件均为私钥,需严格限制访问权限(如`600`)。 2. **证书更新**:若证书过期,需通过`kubeadm certs renew`更新。 3. **ServiceAccount优先**:非特殊场景(如系统组件),优先使用ServiceAccount Token而非证书认证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值