Я бы рекомендовал запустить кластер Kubernetes, как указано в официальной документации . Я предпринял некоторые шаги по созданию кластера на той же версии CentOS CentOS Linux release 7.5.1804 (Core)
и поделюсь ими с вами, надеюсь, вам будет полезно избавиться от проблемы во время установки.
Сначала вытрите текущую установку кластера:
# kubeadm reset -f && rm -rf /etc/kubernetes/
Добавить репо Kubernetes для дальнейшей установки kubeadm
, kubelet
, kubectl
:
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
Проверьте, находится ли SELinux
в разрешающем режиме:
# getenforce
Permissive
Убедитесь, что net.bridge.bridge-nf-call-iptables
установлен в 1 в вашем sysctl:
# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
Установите необходимые компоненты Kubernetes и запустите службы:
# yum update && yum upgrade && yum install -y docker kubelet kubeadm kubectl --disableexcludes=kubernetes
# systemctl start docker kubelet && systemctl enable docker kubelet
Развернуть кластер с помощью kubeadm
:
kubeadm init --pod-network-cidr=10.244.0.0/16
Я предпочитаю устанавливать Flannel
в качестве основного CNI
в моем кластере, хотя есть некоторые предпосылки для правильной установки Pod network , я передал флаг --pod-network-cidr=10.244.0.0/16
команде kubeadm init
.
Создайте домашний каталог Kubernetes для своего пользователя и сохраните config
файл:
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Установите Pod сеть, в моем случае это было Flannel
:
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
Наконец, проверьте статус ядра Pods Kubernetes:
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-576cbf47c7-4x7zq 1/1 Running 0 36m
kube-system coredns-576cbf47c7-666jm 1/1 Running 0 36m
kube-system etcd-centos-7-5 1/1 Running 0 35m
kube-system kube-apiserver-centos-7-5 1/1 Running 0 35m
kube-system kube-controller-manager-centos-7-5 1/1 Running 0 35m
kube-system kube-flannel-ds-amd64-2bmw9 1/1 Running 0 33m
kube-system kube-proxy-pcgw8 1/1 Running 0 36m
kube-system kube-scheduler-centos-7-5 1/1 Running 0 35m
Если у вас все еще есть сомнения, просто запишите комментарий под этим ответом.