メインコンテンツにスキップ

質問

証明書の問題

PS: 普通に機能するkubeaszは自動処理する必要があります。パズルを試さなくても

# 安装 cfssl 工具(如果未安装):
wget https://github.com/cloudflare/cfssl/releases/download/v1.6.3/cfssl_1.6.3_linux_amd64 -O /usr/local/bin/cfssl
wget https://github.com/cloudflare/cfssl/releases/download/v1.6.3/cfssljson_1.6.3_linux_amd64 -O /usr/local/bin/cfssljson
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson
# 创建证书配置文件(示例):
# 创建工作目录
mkdir -p /etc/ssl/etcd/ssl && cd /etc/ssl/etcd/ssl

# 生成 CA 配置(ca-config.json)
cat > ca-config.json <<EOF
{
  "signing": {
    "default": {
      "expiry": "8760h"
    },
    "profiles": {
      "etcd": {
        "usages": ["signing", "key encipherment", "server auth", "client auth"],
        "expiry": "8760h"
      }
    }
  }
}
EOF

# 生成 CA 证书请求(ca-csr.json)
cat > ca-csr.json <<EOF
{
  "CN": "etcd-ca",
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "Beijing",
      "O": "etcd",
      "OU": "etcd-ca",
      "ST": "Beijing"
    }
  ]
}
EOF

# 生成 CA 证书和私钥
cfssl gencert -initca ca-csr.json | cfssljson -bare ca

# 生成 member-master1 证书请求(注意替换 IP 为你的 etcd 节点 IP)
cat > member-master1-csr.json <<EOF
{
  "CN": "member-master1",
  "hosts": [
    "127.0.0.1",
    "10.0.5.167"  # 这里填你的 etcd 节点实际 IP(从日志中看到的 10.0.5.167)
  ],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "L": "Beijing",
      "O": "etcd",
      "OU": "etcd-member",
      "ST": "Beijing"
    }
  ]
}
EOF

# 生成 member-master1 证书和私钥(使用 CA 签名)
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd member-master1-csr.json | cfssljson -bare member-master1
# ターゲットのファイルが:
ls -l /etc/ssl/etcd/ssl/member-master1.pem が存在するかチェックしてください
# etcd サービスを再起動し、
# 再起動 etcd サービス
systemctl restart etcd.service

# サービスステータスを確認(アプリの起動に成功)
systemstatus status etcd. ervice

# 最新ログを確認(エラーのみ)
journalctl -u etcd.service -f

証明書の問題2

PS: コードはDockerを使って貢献できる形がないということです。これはhttpsによる証明書の結果です。これは広まなければなりません

# 证书问题
sudo mkdir -p /etc/ssl/certs
sudo chmod 755 /etc/ssl/certs
apt update && sudo apt install ca-certificates
sudo update-ca-certificates
## 如果用了docker 可能还需要重启docker(systemctl restart docker)

kubeaszのバグ(v3.6.7)

  • バッシュ対応エラー

## 需要注释掉这个检查
  # check bash shell
#   readlink /proc/$$/exe|grep -q "bash" || { logger error "you should use bash shell only"; exit 1; }

Kubeletを起動できませんでした

キューブレット残留問題

sudo kubeadm reset
sudo apt-get purge -y kubelet kubeadm kubectl
sudo apt-get apt-get autoremove -y #すべての依存関係
# 残留ファイルを手動でクリーンアップ(省略可能):
# コンテナの
sudo rm -rf /etc/cni/net.

# kubelet 作業ディレクトリ
sudo rm -rf /var/lib/kubelet/

# コンテナの実行中のデータをクリーンアップする (containerd による) 実行時の調整付き
sudo systemctl stop containerd
sudo rm -rf /var/lib/containerd/
sudo sydosystemstart containerd

バイナリ展開の場合のクラスタ(手動でインストール)

# 停止 kubelet 服务:
sudo systemctl stop kubelet
sudo systemctl disable kubelet  # 禁止开机启动

# 删除 kubelet 服务配置:
sudo rm -f /etc/systemd/system/kubelet.service
sudo rm -f /etc/systemd/system/kubelet.service.d/*.conf  # 相关配置目录
sudo systemctl daemon-reload  # 重新加载 systemd 配置

# 删除 kubelet 二进制文件和配置:
# 二进制文件路径通常为 /usr/local/bin/kubelet(根据实际安装路径调整)
sudo rm -f /usr/local/bin/kubelet
# 删除配置文件(如 kubeconfig、启动参数文件等)
sudo rm -rf /etc/kubernetes/kubelet.conf
sudo rm -rf /var/lib/kubelet/  # 工作目录