python - Kubernetes 部署连接被拒绝
问题描述
我正在尝试将一个简单的 python 应用程序部署到 Google Container Engine:
我已经创建了一个集群然后运行kubectl create -f deployment.yaml
它已经在我的集群上创建了一个部署 pod。之后,我创建了一个服务:kubectl create -f deployment.yaml
这是我的 Yaml 配置:
pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: test-app
spec:
containers:
- name: test-ctr
image: arycloud/flask-svc
ports:
- containerPort: 5000
这是我的 Dockerfile:
FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD python ./app.py
部署.yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: test-app
name: test-app
spec:
replicas: 1
template:
metadata:
labels:
app: test-app
name: test-app
spec:
containers:
- name: test-app
image: arycloud/flask-svc
resources:
requests:
cpu: "100m"
imagePullPolicy: Always
ports:
- containerPort: 8080
服务.yaml:
apiVersion: v1
kind: Service
metadata:
name: test-app
labels:
app: test-app
spec:
type: LoadBalancer
ports:
- name: http
port: 80
protocol: TCP
targetPort: 8080
nodePort: 32000
selector:
app: test-app
入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: frontend
servicePort: 80
它创建一个 LoadBalancer 并提供一个外部 IP,当我打开它返回的 IP 时Connection Refused error
怎么了?
请帮帮我!
谢谢你,阿卜杜勒
解决方案
您可以首先检查 pod 是否正在工作curl podip:port
,在您的场景中,应该是curl podip:8080
;如果不能正常工作,您必须检查进程是否在您使用的映像中绑定了 8080 端口。
如果它有效,那么curl svcip:svcport
在您的场景中尝试使用服务,应该是curl svcip:80
;如果不能正常工作,将是 kubernetes 网络 [配置] 问题。
如果仍然有效,那么问题应该发生在入口层。
理论上,如果都符合 k8s 规则,它应该可以工作。
推荐阅读
- kotlin - 如何将此 AppInventor 块转换为 Kotlin 代码?任何想法
- selenium - 我们如何自动化真正的浏览器而不是使用 selenium 浏览器实例
- python - python填充图错误:'axes.color_cycle'错误
- python - 在 Apache NiFi (ExecuteStreamCommand) 中通过 python3 读取 excel
- docker - 如何跨云提供商引用 docker 映像位置
- azure - Azure 通信服务 - 预先创建指定日期和时间的视频会议并记录链接
- python - ValueError:Tensorflow 2 中的 logits 和标签必须具有相同的形状 ((None, 4) vs (None, 1))
- azure-data-factory - 按列值划分的数据流分区未将唯一列值写入每个文件夹
- javascript - 4xx 状态代码是否应该被视为前端/SSR 应用程序中的错误?
- jacoco - 如何忽略/排除覆盖类中一个特定方法的 Jacoco Coverage?