docker – Kubernetes无法在给定的IP上看到我的应用程序

前端之家收集整理的这篇文章主要介绍了docker – Kubernetes无法在给定的IP上看到我的应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用Kubernetes运行我的应用程序
我从一个名为deployment.yaml的文件中创建了一个部署
来自名为service.yaml的文件中的服务

以下是deployment.yaml的内容

apiVersion: v1
kind: Pod

    Metadata:
      name: kubectl-test
    spec:
      containers:
        - name: kubectl-test
          image: gcr.io/[my-name]/node-app:0.0.1
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
              hostPort: 8080

这是我的services.yaml

kind: Service
apiVersion: v1
Metadata:
  #Service name
  name: kubectl-test-node-app
spec:
  selector:
    app: kubectl-test-189010
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
  type: LoadBalancer

当我运行命令kubectl get deployments时,我可以看到:

NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   1         1         1            1           16m

我可以通过使用kubectl获取服务来查看我的服务,我可以看到:

NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubectl-test-node-app   LoadBalancer   10.59.242.211   35.195.2.76   8000:31592/TCP   8m
kubernetes              ClusterIP      10.59.240.1     

当我尝试访问EXTERNAL-IP:8000时,我无法看到我的应用程序,我没有收到任何错误,但我不会出现问题!

编辑

我必须使用以下方法创建部署:

`kubectl run kubernetes-bootcamp --image=[image-name] --port=8080`

但没有这个命令

`kubectl create -f deployment.yaml`

这与端口有关:8000:31592 / TCP?

kubectl get pods
kubectl-test                           1/1       Running   0          4h
kubernetes-bootcamp-1654181842-czwqg   1/1       Running   0          3h

编辑

运行命令kubectl describe services kubectl-test-node-app返回:

Name:                     kubectl-test-node-app
Namespace:                default
Labels:                   

没有定义端点.我想这是问题所在?我该如何建立终点?

最佳答案
您的服务规范针对所有pod,其标签为“app = kubectl-test-189010”,您的pod的规范没有.

您需要更新pod的元数据,以便它与服务规范中的选择器匹配:

    Metadata:
       name: kubectl-test
       app: kubectl-test-189010

您的服务也接受端口8000上的连接,然后将其转发到pod上的端口8000(targetPort).但pod侦听端口8080(containerPort).因此,应将其中一个更改为匹配另一个 – targetPort或containerPort.

您可以在此处阅读有关在Kubernetes中配置服务的更多信息:https://kubernetes.io/docs/concepts/services-networking/service/

猜你在找的Docker相关文章