error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR Port-6443]

created at 12-11-2021 views: 237

1. Problem description

When building a k8s cluster, there is a step to initialize the cluster with the following command:

kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log

The initialization result is as follows:

[root@k8s- mastero1 ~]#kubectl get node
NAME                  STATUS   ROLES  AGE  VERSION
localhost.localdomain NotReady master 16m  V1.15.1

Now if I want to change the NAME of the node node to k8s-master01, the name field of kubeadm-config.yaml should be changed:

change name field

T

change name field

then delete the node named localhost.localdomain, and the following error is reported when the k8s cluster is initialized again:

then delete the node named localhost.localdomain

[root@k8s-master01 ~]# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
Flag --experimental-upload-certs has been deprecated, use --upload-certs instead
[init] Using Kubernetes version: v1.15.1
[preflight] Running pre-flight checks
    [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.11. Latest validated version: 18.09
error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR Port-6443]: Port 6443 is in use
    [ERROR Port-10251]: Port 10251 is in use
    [ERROR Port-10252]: Port 10252 is in use
    [ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
    [ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
    [ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
    [ERROR 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
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

2. Error analysis

After modifying the kubeadm-config.yaml file, restart kubeadm, otherwise the port that was started last time will be occupied.

3. solution

solution

4. Result test

The k8s cluster is initialized successfully:

[root@k8s-master01 ~]# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
Flag --experimental-upload-certs has been deprecated, use --upload-certs instead
[init] Using Kubernetes version: v1.15.1
[preflight] Running pre-flight checks
    [WARNING SystemVerification]: this Docker version is not on the list of validated versions: 20.10.11. Latest validated version: 18.09
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
...

The name of the node is successfully modified:

The name of the node is successfully modified:

created at:12-11-2021
edited at: 12-11-2021: