一. secret
官网说明
- 从 Kubernetes 版本 1.24 开始,不再自动创建服务帐户的机密,对于需要使用服务帐户访问 Kubernetes API 服务器的开发人员(例如,在使用管道时)来说,这可能是一个问题,连接到保管库时我们遇到了问题
kubectl -n <namespace> create sa <serviceaccount-name>
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:name: <secret-name>namespace: <namespace>annotations:kubernetes.io/service-account.name: <serviceaccount-name>
type: kubernetes.io/service-account-token
EOF
kubectl -n <namespace> describe secrets <secret-name>
二. kubelet
-
在 v1.20 中标记弃用后,dockershim 组件已从 kubelet 中删除,从 v1.24 开始,您将需要使用其他受支持的运行时之一(例如 containerd 或 CRI-O),或者如果您依赖 Docker 引擎作为容器运行时,则使用 cri-dockerd
-
从 1.24 开始,kubelet 提供了一个新的 Prometheus 指标,用于记录容器中发生的 OOM(OutOfMemory)事件的数量,当内存限制不能满足容器的使用和需求时,这提供了对 Kubernetes 操作中反复出现的问题的更多可见性,使用这个新指标,SRE 可以更好地了解问题的最终原因,并更好地确定它是反复出现的问题还是其他问题,更快的故障排除
三. 容器日志
- 标准输入0:从键盘获得输入
/proc/self/fd/0
- 标准输出1:输出到屏幕(即控制台)
/proc/self/fd/1
- 错误输出2:输出到屏幕(即控制台)
/proc/self/fd/2
# 进入容器, 可以查看 /dev/stdout 文件
# ls -l /dev/stdout
lrwxrwxrwx 1 root root 15 Jul 28 16:50 /dev/stdout -> /proc/self/fd/1# 测试
echo test > /proc/1/fd/1# 做软链接,日志打印到终端
ln -s /proc/1/fd/1 /data/go.log# Dockerfile可以这样写
RUN mkdir /data && ln -s /proc/1/fd/1 /data/go.log
四. 修改节点主机名
# 驱逐节点,让节点pod调度到其他节点上
kubectl drain node-01 --delete-local-data --ignore-daemonsets
kubectl get node
NAME STATUS ROLES AGE VERSION
node-01 Ready,SchedulingDisabled <none> 2d v1.24.7
node-02 Ready <none> 2d v1.24.7# 删除节点
kubectl delete node node-01# 被修改的节点清空集群信息
kubeadm reset
hostnamectl set-hostname xxxx-new# master节点新建token
kubeadm token create --print-join-command# 在master节点重新加入集群
kubeadm join 192.168.188.11:6443