问题描述
我有一个简单的 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 问题仍未解决。