質問
証明書の問題
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/ # 工作目录