在使用tailscale混合组网时,部分只有IPv6的节点无法访问docker、github等源站获取镜像,导致无法部署pod。尽管可以使用warp-cli让本机获取访问IPv4网络资源的能力,但仍然无法让这些只有IPv6的节点在k3s集群内部正确拉取IPv4 only的Image镜像。
为了解决这个问题,可以采取以下步骤:
在只有IPv6的节点上执行以下命令,安装并注册warp-cli:
apt update && apt install lsb-release gpg curl wget
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/cloudflare-client.list
apt update && apt install cloudflare-warp -y
warp-cli register -y
执行以下命令,配置warp为proxy模式,并指定系统代理:
warp-cli add-excluded-route ::0/0
#warp-cli set-mode warp
warp-cli set-mode proxy
warp-cli set-proxy-port 9091
warp-cli
rancher部署的k3s集群无法加入新的etcd节点,查询日志发现报错,etcd群组中出现本应该已被删除的节点prepaid-de,此节点已经被删除,但却错误的留在了etcd member list中,导致etcd服务无法正常验证。
移除已经无效的节点prepaid-de,恢复etcd集群的可用性。
在k3s集群主控节点安装etcdctl工具。
方法一:可以使用apt install命令直接进行安装
apt install etcd-client
方法二:下载对应etcd版本的etcdctl工具手动安装
首先查询获取etcd的版本
curl -L --cacert /var/lib/rancher/k3s/server/tls/etcd/server-ca.crt --cert /var/lib/rancher/k3s/server/tls/etcd/server-client.crt --key /var/lib/rancher/k3s/server/tls/etcd/server-client.key <https://127.0.0.1:2379/version>
修改ETCD-VER=v
之后的版本号为之前获取到的数字,运行以下命令安装对应版本etcdctl
ETCD_VER=v3.5.0 # choose either URL GOOGLE_URL=https://storage.googleapis.com/etcd GITHUB_URL=https://github.com/etcd-io/etcd/releases/download DOWNLOAD_URL=${GOOGLE_URL} rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gzrm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gztar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.