在k8s集群上,“ kubectl get” cli响应时间太高

时间:2020-01-23 10:35:26

标签: kubectl

我有两个小的k8s簇(一个带有绒布,另一个带有印花布)。

使用精确步骤安装两个k8s群集,唯一的区别是在安装时选择Pod网络(一个使用法兰绒,一个使用印花布)。

问题在于,“ kubectl get all”命令在两个群集上的响应时间都不相同。用印花布对k8做出响应大约需要一分钟,而使用绒布的k8做出即时响应。

确保此问题不是由于Pod网络选择所致,因为两个群集上的自转Pod等都没有问题,并且都按预期运行。

基于法兰绒的时间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

基于calico的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 个答案:

答案 0 :(得分:2)

花费大量时间在错误的方向上后,发现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