Время отклика "kubectl get" в кластере k8s слишком велико - PullRequest
0 голосов
/ 23 января 2020

У меня было два маленьких кластера k8s (один с фланелью и один с ситцем).

Точные шаги были использованы для установки двух кластеров k8s, единственное отличие заключается в выборе сети Pod во время установки (один использует фланель, другой использует ситцевое устройство).

Проблема заключалась в том, что "kubectl get Все команды имели разное время отклика на обоих кластерах. Чтобы ответить на k8s с помощью ситца, требуется примерно минута, в то время как k8s с фланелью дали мгновенный ответ.

был уверен, что проблема не связана с выбором сети Pod , так как не было проблем с вращающимися модулями et c на обоих кластерах, оба работают должным образом.

Время на фланелевой основе k8s 0m0,167s

$ time kubectl get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6db489d4b7-h2mvv   1/1     Running   0          17m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   10d

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           17m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-6db489d4b7   1         1         1       17m

real    0m0.167s
user    0m0.100s
sys     0m0.028s

Время на основе ситцевого блока k8s зависает и реагирует только через почти минуту .. 0m59.294s

$ time kubectl get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6db489d4b7-b8c2g   1/1     Running   0          11m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   20m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           11m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-6db489d4b7   1         1         1       11m

real    0m59.294s
user    0m0.316s
sys     0m0.072s

Во время установки кластера было гарантировано, что запускается под командами обычного пользователя

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config



 $ ll .kube/config
-rw------- 1 ubuntu ubuntu 5455 Jan 23 10:17 .kube/config

Я попытался установить переменную kubeconfig env как

export KUBECONFIG=$HOME/.kube/config

Тем не менее это не исправило время отклика для команды kubectl.

1 Ответ

2 голосов
/ 23 января 2020

Проведя много времени в неправильном направлении, было обнаружено, что папки cache и http-cache в $HOME/.kube не имеют правильного разрешения chown.

После того, как исправили разрешения в этих двух папках (cache and http-cache), а также при $HOME/.kube время отклика kubectl get вернулось к нормальному .

ubuntu@k8s-calico-master-1:~/.kube$ ll
total 24
drwxrwxr-x 4 ubuntu ubuntu 4096 Jan 23 10:18 ./
drwxr-xr-x 5 ubuntu ubuntu 4096 Jan 23 10:17 ../
drwxr-x--- 3 ubuntu ubuntu 4096 Jan 23 10:18 cache/
-rw------- 1 ubuntu ubuntu 5455 Jan 23 10:17 config
drwxr-x--- 3 ubuntu ubuntu 4096 Jan 23 10:18 http-cache/

ubuntu@k8s-calico-master-1:~/.kube$ cd cache/
ubuntu@k8s-calico-master-1:~/.kube/cache$ ll
total 12
drwxr-x--- 3 ubuntu ubuntu 4096 Jan 23 10:18 ./
drwxrwxr-x 4 ubuntu ubuntu 4096 Jan 23 10:18 ../
drwxr-x--- 3 ubuntu ubuntu 4096 Jan 23 10:18 discovery/


ubuntu@k8s-calico-master-1:~/.kube$ cd http-cache/
ubuntu@k8s-calico-master-1:~/.kube/http-cache$ ll
total 164
drwxr-x--- 3 ubuntu ubuntu 4096 Jan 23 10:18 ./
drwxrwxr-x 4 ubuntu ubuntu 4096 Jan 23 10:18 ../
drwxr-x--- 2 ubuntu ubuntu 4096 Jan 23 10:18 .diskv-temp/
-rw-rw---- 1 ubuntu ubuntu  813 Jan 23 10:18 f436dd33b3ceee24aa367363c323688e

ubuntu@k8s-calico-master-1:~/.kube/http-cache$ time kubectl get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6db489d4b7-b8c2g   1/1     Running   0          52m

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   61m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           52m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-6db489d4b7   1         1         1       52m

real    0m0.104s
user    0m0.104s
sys     0m0.024s
...