By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.

分类 - K8S

K3s K8s    2024-04-15 17:36:06    40    0    0

在使用tailscale混合组网时,部分只有IPv6的节点无法访问docker、github等源站获取镜像,导致无法部署pod。尽管可以使用warp-cli让本机获取访问IPv4网络资源的能力,但仍然无法让这些只有IPv6的节点在k3s集群内部正确拉取IPv4 only的Image镜像。

解决方案:

为了解决这个问题,可以采取以下步骤:

  1. 安装warp-cli并启用socks5代理,指定端口;
  2. 使用环境变量来配置节点的网络设置;
  3. 重启k3s或k3s-agent,应用设置;

优化使用tailscale混合组网时只有IPv6节点无法访问docker和github的问题

在只有IPv6的节点上执行以下命令,安装并注册warp-cli:

  1. apt update && apt install lsb-release gpg curl wget
  2. curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
  3. 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
  4. apt update && apt install cloudflare-warp -y
  5. warp-cli register -y

执行以下命令,配置warp为proxy模式,并指定系统代理:

  1. warp-cli add-excluded-route ::0/0
  2. #warp-cli set-mode warp
  3. warp-cli set-mode proxy
  4. warp-cli set-proxy-port 9091
  5. warp-cli
k3s k8s rancher etcd    2023-12-08 15:05:22    57    0    0

定位问题

rancher部署的k3s集群无法加入新的etcd节点,查询日志发现报错,etcd群组中出现本应该已被删除的节点prepaid-de,此节点已经被删除,但却错误的留在了etcd member list中,导致etcd服务无法正常验证。

解决思路

移除已经无效的节点prepaid-de,恢复etcd集群的可用性。

解决方案

在k3s集群主控节点安装etcdctl工具。 

一、安装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.