k8s 的 cert-manager 的acme-dns的方式使用Issuer 可用于原生不支持的所有dns解析商。

cert-manager本身支持的dns解析商数量有限

由于cert-manager官方支持的dns解析商数量有限,其余的dns解析商,就需要使用acme-dns的方式来实现证书签发了(例如腾讯云、dnspod、alidns等)

接下来我记录下该方式的折腾记录。

前提依赖

  • cert-manager已安装,这里就不说cert-manager的安装方式了,安装方式挺多的。
  • 具有一个或者多个域名权限。要求一级域名的权限。

浏览全部

k8s 1.23/1.24 从 docker迁移到 containerd on ubuntu

由于 k8s 1.24之后的版本不再支持docker,因此需要对其进行迁移。这里记录下迁移的一些步骤:

  1. 在master上修改node的信息
kubectl edit no <node-name>

这一命令会打开一个文本编辑器,供你在其中编辑 Node 对象。 要选择不同的文本编辑器,你可以设置 KUBE_EDITOR 环境变量。

  • 更改 kubeadm.alpha.kubernetes.io/cri-socket 值,将其从 /var/run/dockershim.sock 改为你所选择的 CRI 套接字路径 (例如:unix:///run/containerd/containerd.sock)。
  • 注意新的 CRI 套接字路径必须带有 unix:// 前缀。

  • 保存文本编辑器中所作的修改,这会更新 Node 对象。

  1. 停掉对应节点的服务
systemctl stop kubelet
systemctl disable docker.service --now
systemctl disable docker.socket --now

浏览全部

k8s 系统证书刷新

1. 查看当前证书情况:

# k8s 版本 1.15-1.18
sudo kubeadm alpha certs check-expiration
# k8s >=1.23
sudo kubeadm certs check-expiration


可以看到,证书已经过期了。会造成集群挂掉。
会有相关报错:
failed to verify client's certificate: x509: certificate has expired or is not yet valid
Unable to connect to the server: x509: certificate has expired or is not yet valid
– 6443 端口没有监听 等情况

2. 生成新的证书

# k8s 版本 1.15-1.18
sudo kubeadm alpha certs renew all
# k8s >=1.23
sudo kubeadm certs renew all

更新后,再查看证书的日期。就会发现已经刷新了一年。

3. 更新当前配置信息

cp /etc/kubernetes/admin.conf  ~/.kube/config
sudo systemctl restart kubelet

这样的话, kubectl 命令就又恢复了。

ps 查看kubelet的日志命令

journalctl -xefu kubelet

AMD GPU device plugin for Kubernetes on ubuntu 22.04 安装使用

AMD GPU device plugin for Kubernetes 是一个amd的k8s显卡插件。

环境说明:
+ ubuntu 22.04
+ k8s 1.23.9

安装amd的内核驱动

wget https://repo.radeon.com/amdgpu-install/22.20.3/ubuntu/jammy/amdgpu-install_22.20.50203-1_all.deb
sudo apt install ./amdgpu-install_22.20.50203-1_all.deb
sudo apt-get update
sudo amdgpu-install --usecase=dkms
# 安装完成后,必须重启一下
sudo reboot

浏览全部