加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:30:57 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Kubernetes运行我的应用程序 我从一个名为deployment.yaml的文件中创建了一个部署 来自名为service.yaml的文件中的服务 以下是deployment.yaml的内容: apiVersion: v1kind: Pod metadata: name: kubectl-test spec: containers: - name: kube

我正在尝试使用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/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读