Posts
添加 SSH Key 登录及问题排查
· ☕ 3 分钟
1. 添加 key 的步骤 1.1 客户端生成 ssh key 有两种格式的 Key: 老格式,私钥以 -----BEGIN RSA PRIVATE KEY----- 开头 1 ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]" 新格式,私钥以 -----BEGIN OPENSSH PRIVATE KEY----- 开头 1 ssh-keygen -t rsa -b 4096 -C "[email protected]" 由于某些旧的系统不支持新格式的 Key,这里建议生成老格式的 Key。如果你已经在使用新格式的 Key,可以使用 puttygen

如何升级 Kubernetes 集群
· ☕ 1 分钟
升级思路是,驱逐负载、摘除流量之后,先升级控制节点,后升级工作节点。 1. 查看集群版本 1 2 3 4 kubectl version Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T17:57:25Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"} 当前版本是 1.22,由于 kubeadm 不允许跨版本升级,这里准备升级到 1.23 。 2. 添加 Kubernetes 安装源 CentOS 操作系统: 1 2 3 4 5 6 7

在 Kubernetes Pod 中注入环境变量及优先级
· ☕ 1 分钟
1. Kubernetes Pod 引用环境变量的几种方式 1.1 直接 Key/Value 可以直接设置 Value 值,也可以将当前 Pod 的信息作为 Value 值。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 apiVersion:v1kind:Podmetadata:name:envar-demolabels:purpose:demonstrate-envarsspec:containers:- name:envar-demo-containerimage:gcr.io/google-samples/node-hello:1.0env:- name:DEMO_GREETINGvalue:"Hello from the environment"- name:DEMO_FAREWELLvalue:"Such a sweet sorrow"- name:MY_NODE_NAMEvalueFrom:fieldRef:fieldPath:spec.nodeName- name:MY_POD_NAMEvalueFrom:fieldRef:fieldPath:metadata.name 1.2 从 Secret 引用 有两种方式引用 Secret 中的变量: 通过 envFrom 引用 Secret 中全部变量 通过 valueFrom 引用 Secret 中指定变量 1 2 3

给 Kubernetes 集群新增外部 DNS 服务
· ☕ 1 分钟
1. 给主机添加 DNS 1.1 CentOS 直接编辑 resolve.conf 文件即可。 1 2 3 4 /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8 1.2 Ubuntu 由于 resolve.conf 是自动生成的,需要改 resolved.conf 才行。 1 2 3 4 5 vim /etc/systemd/resolved.conf [Resolve] DNS=114.114.114.114 DNS=8.8.8.8 接着重启 resolve 服务。 1 systemctl restart systemd-resolved.service 最后,还可以确认下配置是否生效。 1 systemd-resolve --status 2. 重启 Nodelocaldns 在 Pod 中发起外部请求时,解析逻辑是 nodelocaldns -> 节点配置的 DNS -> 返回 I

迁移 Docker 存储到新的硬盘
· ☕ 1 分钟
1. 硬盘格式化 查看新磁盘 1 fdisk -l 通常,第二块硬盘的名字会是 /dev/sdb 。 磁盘分区 1 fdisk /dev/sdb 会有提示输入参数: command (m for help):n Partition number(1-4):1 First cylinder (1-22800,default 1):Enter command (m for help):w 格式化磁盘为 ext4 1 mkfs.ext4 /dev/sdb 将磁盘挂载到指定目录 1 2 mkdir /data mount -t ext4 /dev/sdb /data 开机自动挂载目录 先找到设备的 UUID。 1 2 3 blkid |grep /dev/sdb /dev/sdb: UUID="328a9d32-abb6-492a-aabe-b6a63583674d" TYPE="ext4" 编辑 /etc/fstab 新