首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在minikube上使用helm 3无法工作的简单kubernetes部署(无法到达应用程序)

问在minikube上使用helm 3无法工作的简单kubernetes部署(无法到达应用程序)
EN

Stack Overflow用户
提问于 2020-05-23 02:53:42
回答 1查看 378关注 0票数 0

我正在尝试在Kubernetes集群上部署一个简单的FLASK应用程序(python web框架)。我用的是minikube。

这是我的Helm 3的东西:

部署:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask-app-deployment
  labels:
    app: flask-app
    some: label
spec:
  replicas: 1
  selector:
    matchLabels:
      app: flask-app-pod
  template:
    metadata:
      labels:
        app: flask-app-pod
    spec:
      containers:
        - name: flask-app-container
          image: flask_app:0.0.1
          imagePullPolicy: Never
          ports:
            - name: app
              containerPort: 5000
              protocol: TCP
          securityContext: # root access for debugging
            allowPrivilegeEscalation: false
            runAsUser: 0

服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: flak-app-service
  labels:
    service: flask-app-services
spec:
  type: NodePort
  ports:
    - port: 5000
      targetPort: 5000
      protocol: TCP
      name: https
  selector:
    app: flask-app-pod

图表:

代码语言:javascript
复制
apiVersion: v2
name: flask-app
type: application
version: 0.0.1
appVersion: 0.0.1

我通过做helm install test-chart/ --generate-name来部署它。

kubectl get all的示例输出

代码语言:javascript
复制
NAME                                       READY   STATUS    RESTARTS   AGE
pod/flask-app-deployment-d94b86cc9-jcmxg   1/1     Running   0          8m19s

NAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/flak-app-service   NodePort    10.98.48.114   <none>        5000:30317/TCP   8m19s
service/kubernetes         ClusterIP   10.96.0.1      <none>        443/TCP          7d2h

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/flask-app-deployment   1/1     1            1           8m19s

NAME                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/flask-app-deployment-d94b86cc9   1         1         1       8m19s

我执行了pod以检查它是否在正确的端口上侦听,看起来很好(netstat输出):

代码语言:javascript
复制
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      1/python3

我的Dockerfile应该没问题。我可以创建一个容器并调用应用程序,然后运行一个“普通”的dcker容器。

一定是什么傻事。我在这里看不到什么?

我希望能够转到https://localhost:30317,它被转发到内部监听端口5000的服务,后者将其转发到同样监听端口5000的pod中。

EN

回答 1

Stack Overflow用户

发布于 2020-05-23 03:53:31

要验证流量,您可以在流量中断的地方使用以下命令:

代码语言:javascript
复制
kubectl port-forward pods/flask-app-deployment-d94b86cc9-jcmxg 5000:12345

或

代码语言:javascript
复制
kubectl port-forward deployment/flask-app-deployment 5000:12345

或

代码语言:javascript
复制
kubectl port-forward service/flak-app-service 5000:12345

这取决于您要调试的位置。

另外,请通过运行netstat -tunlp验证您的主机是否正在侦听分配的端口。

希望这能解决你的错误,如果不能,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61962013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档