【发布时间】:2021-08-03 07:30:27
【问题描述】:
按照关于 Kubernetes 的教程并在日志看起来很好后卡住了,但是暴露的端口不起作用:使用 Chrome / curl 的“连接被拒绝”。
使用 yaml 文件通过 NodePort / ClusterIP 启动服务。
posts-srv.yaml - 更新
apiVersion: v1
kind: Service
metadata:
name: posts-srv
spec:
type: NodePort
selector:
app: posts
ports:
- name: posts
protocol: TCP
port: 4000
targetPort: 4000
nodePort: 32140
posts-depl.yaml - 更新
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: posts
template:
metadata:
labels:
app: posts
spec:
containers:
- name: posts
image: suraniadi/posts
ports:
- containerPort: 4000
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
posts-depl 1/1 1 1 27m
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 27h
posts-srv NodePort 10.111.64.122 <none> 4000:32140/TCP 21m
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
posts-depl-79b6889f89-rxdv2 1/1 Running 0 26m
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:23:52Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:15:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
【问题讨论】:
-
请不要包含文字图片或文字图片的链接。包括相关日志和 YAML 源在您的问题中,格式为代码示例(阅读编辑器帮助以获取有关正确格式代码的更多信息)。
-
谢谢你,@larsks!现在重新编辑。
-
@larsks 希望现在应该没问题!感谢您的反馈!
-
您尝试连接的实际 URL 是什么?如果你
docker run -p 4000:4000 suraniadi/posts同一个镜像在非Kubernetes环境下可以连接吗? -
你在 Dockerfile 中暴露了 4000 端口吗?在部署中,您也应该拥有
containerPort: 4000。
标签: node.js docker kubernetes yaml dockerfile