我无论如何也无法把这件事联系起来。
这是一个使用Kubernetes的Golang应用程序。docker文件运行正常,pod启动,但连接超时。
apiVersion: v1
kind: Service
metadata:
name: ark-service
namespace: ark
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
nodePort: 30008
selector:
app: ark-api
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ark-backend
namespace: ark
spec:
replicas: 1
selector:
matchLabels:
app: ark-api
template:
metadata:
labels:
app: ark-api
spec:
imagePullSecrets:
- name: regcred
containers:
- name: ark-api-container
image: xxx
imagePullPolicy: Always
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- name: web
containerPort: 8080
我可以很好地 Boot Docker容器,它可以运行。
结果集装箱被终止了,我不知道为什么。
3条答案
按热度按时间zzzyeukh1#
1.您可以检查端口8080是否在容器内部侦听
kubectl exec -it <pod_namen> -n <namespace> -- netstat -ntpl
如果容器中没有netstat命令,你可以尝试用它构建一个基本镜像。
1.检查端口30080是否在节点上侦听。在节点上运行以下命令
netstat -ntpl | grep 30080
你也可以尝试在服务yaml中不指定节点端口,让kubernetes为你选择节点端口。这可以避免指定已经在您的节点中使用的端口。
aij0ehis2#
尝试使用clusterIP而不是nodeport,如果您使用任何类型的Ingress,那么您必须在ingress配置中创建规则,以便它可以通过负载均衡器将您的服务暴露给外部Web。
ff29svar3#
我删除了服务,并使用端口转发,并能够 Boot 一切。我得回局里去查一下。