【问题标题】:"kubectl get " cli response time too high on k8s clusterk8s 集群上的“kubectl get”cli 响应时间太长
【发布时间】:2020-01-23 22:31:45
【问题描述】:

我有两个小型 k8s 集群(一个带有法兰绒,一个带有印花布)。

使用了安装两个 k8s 集群的确切步骤,唯一的区别是在安装时选择 Pod 网络(一个使用 flannel,一个使用 calico)。

问题是“kubectl get all”命令在两个集群上的响应时间不同。使用 calico 对 k8s 做出响应大约需要一分钟,而使用 flannel 的 k8s 会立即做出响应。

确定问题不是由于 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 环境变量设置为

export KUBECONFIG=$HOME/.kube/config

这仍然没有修复 kubectl 命令的响应时间。

【问题讨论】:

    标签: kubectl


    【解决方案1】:

    在错误的方向上花费了大量时间后,发现$HOME/.kube 下的cachehttp-cache 文件夹没有正确的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
    

    【讨论】:

      猜你喜欢
      • 2021-07-04
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      相关资源
      最近更新 更多