k0s kubectl exec 和 kubectl port-forwarding 被破坏

问题描述

我有一个简单的 Nginx pod 和一个带有 k0s 二进制文件的 k0s 集群设置。现在我想连接到那个 pod,但我收到这个错误

$ kubectl port-forward frontend-deployment-786ddcb47-p5kkv 7000:80

error: error upgrading connection: error dialing backend: rpc error: code = Unavailable 
desc = connection error: desc = "transport: Error while dialing dial unix /var/lib/k0s/run/konnectivity-server/konnectivity-server.sock: connect: connection refused"

我不明白为什么会发生这种情况以及为什么它试图访问我机器上不存在的 /var/lib/k0s/run/konnectivity-server/konnectivity-server.sock

我是否必须将带有 k0s 的本地开发机器添加到集群中?

pod describe提取

Containers:
  frontend:
    Container ID:   containerd://897a8911cd31c6d58aef4b22da19dc8166cb7de713a7838bc1e486e497e9f1b2
    Image:          Nginx:1.16
    Image ID:       docker.io/library/Nginx@sha256:d20aa6d1cae56fd17cd458f4807e0de462caf2336f0b70b5eeb69fcaaf30dd9c
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu,28 Jan 2021 14:20:58 +0100
    Ready:          True
    Restart Count:  0
    Environment:    <none>
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  normal  Scheduled  3m43s  default-scheduler  Successfully assigned remove-me/frontend-deployment-786ddcb47-p5kkv to k0s-worker-2
  normal  Pulling    3m42s  kubelet            Pulling image "Nginx:1.16"
  normal  Pulled     3m33s  kubelet            Successfully pulled image "Nginx:1.16" in 9.702313183s
  normal  Created    3m32s  kubelet            Created container frontend
  normal  Started    3m32s  kubelet            Started container frontend

deployment.yml 和 service.yml

apiVersion: apps/v1
kind: Deployment
Metadata:
  name: frontend-deployment
  labels:
    app: frontend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: frontend
  template:
    Metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: frontend
        image: Nginx:1.16
        ports:
        - containerPort: 80
----
apiVersion: v1
kind: Service
Metadata:
  name: frontend-service
spec:
  selector:
    app: frontend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

解决方法

解决方法是删除文件。

/var/lib/k0s/run/konnectivity-server/konnectivity-server.sock 并重新启动服务器。

目前我的 github 问题仍未解决。

https://github.com/k0sproject/k0s/issues/665