k8s 折腾记:metrics server & cert manager

简单记录一下安装的过程

metrics server

文档

安装

1
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

配置

由于我们节点的 kubelet 没有配置证书,所以需要添加选项跳过证书认证。

在 metrics-server 的 deployment 里面添加容器的启动参数:--kubelet-insecure-tls

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
      annotations:
        kubectl.kubernetes.io/restartedAt: '2024-06-23T12:03:54Z'
    spec:
      volumes:
        - name: tmp-dir
          emptyDir: {}
      containers:
        - name: metrics-server
          image: registry.k8s.io/metrics-server/metrics-server:v0.7.1
          args:
            - '--cert-dir=/tmp'
            - '--secure-port=10250'
            - '--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname'
            - '--kubelet-use-node-status-port'
            - '--metric-resolution=15s'
            - '--kubelet-insecure-tls'
          ports:
            - name: https
              containerPort: 10250
              protocol: TCP
          resources:

然后就应该可以啦

1
2
3
4
5
6
root@ubuntu-71:~# k top no
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
ubuntu-71   355m         4%     2060Mi          26%
ubuntu-72   226m         2%     1090Mi          13%
ubuntu-73   253m         3%     1543Mi          19%
ubuntu-74   219m         2%     1208Mi          15%

cert manager

参考 安装文档,这里同样使用 helm 进行安装。

1
2
3
4
5
6
7
helm repo add jetstack https://charts.jetstack.io --force-update
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.15.0 \
  --set crds.enabled=true

然后就可以了(虽然我还不懂要怎么用)

1
2
3
4
5
root@ubuntu-71:~# k get deploy -n cert-manager
NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
cert-manager              1/1     1            1           7h35m
cert-manager-cainjector   1/1     1            1           7h35m
cert-manager-webhook      1/1     1            1           7h35m