FileAvailable--etc-kubernetes-manifests- etcd .yaml]: /etc/kubernetes/manifests/ etcd .yaml already exists [ ERROR Port-2380]: Port 2380 is in use [ ERROR DirAvailable--var - lib - etcd ]: / var / lib / etcd is not empty [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors / lib /kubelet" [reset] deleting contents of stateful directories: [/ var / lib / etcd / var / lib /kubelet /etc /cni/net.d / var / lib /dockershim / var /run/kubernetes] [reset] deleting contents of config directories:
y 现在我们使用下面的命令来重新初始化控制平面节点,但是最重要的一点是要使用 etcd 的数据目录,可以通过 --ignore-preflight-errors= DirAvailable--var - lib - etcd ➜ kubeadm init --config kubeadm.yaml --ignore-preflight-errors= DirAvailable--var - lib - etcd [init] Using Kubernetes version: v1.22.8 [preflight] Running pre-flight checks [WARNING DirAvailable--var - lib - etcd ]: / var / lib / etcd is not empty [preflight] Pulling images required for setting up a Kubernetes cluster -- var - lib - etcd 参数,意思就是使用之前 etcd 的数据。
2核2G云服务器 每月9.33元起,个人开发者专属3年机 低至2.3折
kube-system get cm kubeadm-config -o yaml' [kubelet-start] Writing kubelet configuration to file "/ var / lib /kubelet/config.yaml" [kubelet-start] Writing kubelet environment file with flags to file "/ var / lib ]: /etc/kubernetes/manifests/kube-scheduler.yaml already exis [ ERROR FileAvailable--etc-kubernetes-manifests- etcd .yaml ]: /etc/kubernetes/manifests/ etcd .yaml already exists [ ERROR Port-10250]: Port 10250 is in use [ ERROR DirAvailable--var - lib - etcd ]: / var / lib / etcd is not empty [preflight] If you know what you are doing
]: /etc/kubernetes/manifests/kube-scheduler.yaml already exis [ ERROR FileAvailable--etc-kubernetes-manifests- etcd .yaml ]: /etc/kubernetes/manifests/ etcd .yaml already exists [ ERROR Port-10250]: Port 10250 is in use [ ERROR DirAvailable--var - lib - etcd ]: / var / lib / etcd is not empty [preflight] If you know what you are doing scheduler.conf" kubeconfig file [kubelet-start] Writing kubelet environment file with flags to file "/ var / lib /kubelet/kubeadm-flags.env" [kubelet-start] Writing kubelet configuration to file "/ var / lib /kubelet
: local: dataDir: / var / lib / etcd imageRepository: k8s.gcr.io kind: ClusterConfiguration kubernetesVersion FileAvailable--etc-kubernetes-manifests- etcd .yaml]: /etc/kubernetes/manifests/ etcd .yaml already exists [ ERROR Port-10250]: Port 10250 is in use [ ERROR Port-2379]: Port 2379 is in use [ ERROR Port-2380]: Port 2380 is in use [ ERROR DirAvailable--var - lib - etcd ]: / var / lib / etcd is not empty 遇到端口占用或者是加入失败,执行这个 / lib /kubelet/config.yaml" [kubelet-start] Writing kubelet environment file with flags to file "/ var / lib
Please follow the guide at https://kubernetes.io/docs/setup/cri/ error execution phase preflight: [preflight systemd/system/docker.service.d # Restart Docker systemctl daemon-reload systemctl restart docker [ ERROR : /proc/sys/net/ipv4/ip_forward contents are not set to 1 echo “1” > /proc/sys/net/ipv4/ip_forward [ ERROR DirAvailable– var - lib - etcd ]: / var / lib / etcd is not empty rm -rf / var / lib / etcd failed to load Kubelet config file / var / lib /kubelet/config.yaml unable to load client CA file /etc/kubernetes/pki/ca.crt failed to
[ ERROR Port-2380]: Port 2380 is in use [ ERROR DirAvailable--var - lib - etcd ]: / var / lib / etcd is not / lib / etcd / var / lib /kubelet / var / lib /dockershim / var /run/kubernetes / var / lib /cni] The reset process / lib /kubelet/kubeadm-flags.env" [kubelet-start] Writing kubelet configuration to file "/ var / lib /kubelet / lib /kubelet/config.yaml" [kubelet-start] Writing kubelet environment file with flags to file "/ var / lib / lib /kubelet/config.yaml" [kubelet-start] Writing kubelet environment file with flags to file "/ var / lib
mkdir -p /etc/ etcd vim /etc/ etcd / etcd .conf # [member] ETCD _NAME= etcd 1 ETCD _DATA_DIR="/ var / lib / etcd " ETCD _LISTEN_PEER_URLS ://192.168.1.11:2379" 创建 etcd .service配置文件 etcd .service的变量都是引用 etcd 配置文件中 mkdir / var / lib / etcd vim /usr/ lib :2380, etcd 3=https://192.168.1.13:2380 \ --initial-cluster-state=new \ --data-dir=/ var / lib / etcd Restart etcd .conf与/ var / lib /systemd/system/ etcd .service两个配置文件,且 etcd .service引用了 etcd .conf重定义的变量。 //192.168.1.13:2380 \ --initial-cluster-state=new \ --data-dir=/ var / lib / etcd Restart=on-failure RestartSec
/ lib /kubelet/kubeadm-flags.env\"\n[kubelet-start] Writing kubelet configuration to file \"/ var / lib /kubelet /config.yaml\"\n[kubelet-start] Starting the kubelet\n[certs] Using certificateDir folder \"/ var / lib / execute with --v=5 or higher\n\n** /stderr **": /bin/bash -c "sudo env PATH=/ var / lib /minikube/binaries --etc-kubernetes-manifests,DirAvailable-- var - lib -minikube,DirAvailable-- var - lib -minikube- etcd ,FileAvailable / lib /kubelet/kubeadm-flags.env"[kubelet-start] Writing kubelet configuration to file "/ var / lib /kubelet
创建systemd服务 设定 etcd 配置文件 建立相关目录 $ mkdir -p / var / lib / etcd / $ mkdir -p /opt/ etcd /config/ 创建 etcd 配置文件 $ cat <<EOF | sudo tee /opt/ etcd /config/ etcd .conf #节点名称 ETCD _NAME=$(hostname -s) #数据存放位置 ETCD _DATA_DIR=/ var / lib / etcd EOF 创建systemd配置文件 $ cat <<EOF | sudo tee /etc/systemd/system/ etcd .service [Unit] Description : 108: Directory not empty (/dir) [17] ls列出目录(默认为根目录)下的键或者子目录,默认不显示子目录中内容。 $ etcdctl backup --data-dir / var / lib / etcd --backup-dir /home/ etcd _backup 支持的选项包括: --data-dir etcd 的数据目录
服务新建一个配置文件 vim /usr/ lib /systemd/system/ etcd .service 内容如下: [Unit] Description= etcd [Service] Environment = ETCD _NAME=node-1 Environment= ETCD _DATA_DIR=/ var / lib / etcd Environment= ETCD _LISTEN_CLIENT_URLS=http:// =multi-user.target 配置文件参数介绍 ETCD _NAME etcd 的名字 ETCD _NAME=node-1 ETCD _DATA_DIR 数据存放位置 ETCD _DATA_DIR=/ var / lib / etcd ETCD _LISTEN_CLIENT_URLS 监听客户端地址 ETCD _LISTEN_CLIENT_URLS=http://0.0.0.0:2379 ETCD _ADVERTISE_CLIENT_URLS error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused 如果出现如上的错误,是因为 ETCD _LISTEN_CLIENT_URLS
- --client-cert-auth - --data-dir=/ var / lib /rancher/ etcd - --initial-cluster-token= - / var / lib / etcd :/ var / lib /rancher/ etcd :z - /etc/kubernetes:/etc/kubernetes:z networkmode / lib /cni:/ var / lib /cni:z - /etc/resolv.conf:/etc/resolv.conf - /sys:/sys:rprivate / var / lib /docker:/ var / lib /docker:rw,rprivate,z - / var / lib /kubelet:/ var / lib /kubelet:shared,z host/dev:rprivate - / var /log/containers:/ var /log/containers:z - / var /log/pods:/ var /log/pods
# 删除 etcd 相关文件 rm -rf / var / lib / etcd /* rm -rf /etc/default/ etcd # 设置时区 ln -snf /usr/share/zoneinfo/Asia ETCD _NAME=$name ETCD _DATA_DIR="/ var / lib / etcd /" ETCD _LISTEN_PEER_URLS="http://$ ETCD _Server:2380 /passwd|grep etcd |wc -l\` -eq 0 ];then mkdir -p / var / lib / etcd && useradd -g 217 -u 111 etcd -d / var / lib chown -R etcd : etcd / var / lib / etcd systemctl restart etcd .service #netstat -anpt | grep 2379 # 查看版本 etcdctl 如果需要清空 etcd 的值,使用以下命令 rm -rf / var / lib / etcd /member/* 重启 etcd service etcd restart 查看 etcd 的所有的值,其中 --endpoints
]# cp -ar /data/ etcd / / var / lib / [root@node1 ~]# ll / var / lib / etcd / total 0 drwx------. 4 root root 29 v3.3.12 ETCD _DATA_DIR=/ var / lib / etcd 3.修改启动参数 [root@node1 ~]# vim /usr/local/bin/ etcd -v /etc/ssl/certs:/etc/ssl/certs:ro \ -v /etc/ssl/ etcd /ssl:/etc/ssl/ etcd /ssl:ro \ -v / var / lib / etcd :/ var / lib / etcd :rw \ --memory=0 \ --blkio-weight=1000 \ --name= etcd 1 \ quay.io/coreos/ etcd ssl/ etcd /ssl:ro -v / var ...
/ lib /containerd" [root@k8s-m1 ~]]# find / var / lib /containerd -type f -name meta.db / var / lib /containerd Jul 23 11:26:15 k8s-m1 etcd [18129]: found invalid file/dir wal under data dir / var / lib / etcd (Ignore this :55 k8s-m1 etcd [59889]: found invalid file/dir wal under data dir / var / lib / etcd (Ignore this if you are dir = / var / lib / etcd Jul 23 11:27:55 k8s-m1 etcd [59889]: member dir = / var / lib / etcd /member Jul 23 11: 27:55 k8s-m1 etcd [59889]: dedicated WAL dir = / var / lib / etcd /wal Jul 23 11:27:55 k8s-m1 etcd [59889]: heartbeat
3.png 图片4.png [root@vms91 ~]# cat /etc/ etcd / etcd .conf ETCD _DATA_DIR="/ var / lib / etcd /cluster. etcd " ETCD _LISTEN_PEER_URLS Default is / var / lib /docker/tmp # Can be overriden by setting the following environment variable. # DOCKER_TMPDIR =http://192.168.135.91:2379 -v / var /log/calico:/ var /log/calico -v / var /run/calico:/ var /run/calico -v / lib /modules:/ lib /modules -v /run:/run -v /run/docker/plugins:/run/docker/plugins -v / var /run/docker.sock 430: Error enumerating host directories error =100: Key not found (/calico) [7] 2020-10-03 06:21:08.601
: - name: etcd command: - etcd - --data-dir=/ var / lib / etcd image: registry.aliyuncs.com/google_containers / etcd :3.4.3-0 volumeMounts: - mountPath: / var / lib / etcd name: etcd -data hostNetwork: true volumes: - hostPath: path: / var / lib / etcd type: DirectoryOrCreate name: etcd -dataEOF 这就是一个非常普通的 Pod 资源清单文件,大家应该都非常熟悉,不过还是需要注意两件事: 我们将宿主机的 / var / lib / etcd 目录挂载到 Pod 容器中,这样可以保证 etcd 在重新启动以后数据依然存在。 "}$ tree / var / lib / etcd // var / lib / etcd /└── member ├── snap │ └── db └── wal ├── 0000000000000000
://0.0.0.0:2379" ETCD _DATA_DIR="/ var / lib / etcd /" ETCD _ADVERTISE_CLIENT_URLS="http://192.168.29.102:2379 k8s 启动文件 # etcd cat <<EOF >>/ lib /systemd/system/ etcd .service [Unit] Description= Etcd Server Documentation / lib /kubelet cat <<EOF >>/ var / lib /kubelet/kubeconfig apiVersion: v1 kind: Config users: - name: kubelet / lib /kubelet/kubeconfig" # proxy cat <<EOF >>proxy KUBE_PROXY_ARGS="" # 3、启动文件 cat <<EOF >>/ lib v1.9.9 [root@ansible-k8s2 system]# kubectl get cs NAME STATUS MESSAGE ERROR
/modules name: lib -modules readOnly: true - mountPath: / var /run / lib /calico name: var - lib -calico readOnly: false - mountPath: - name: lib -modules hostPath: path: / lib /modules - name: var -run-calico hostPath: