首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes nodeport不工作

Kubernetes nodeport不工作
EN

Stack Overflow用户
提问于 2017-02-09 10:42:31
回答 1查看 15.2K关注 0票数 10

我已经创建了一个YAML文件,其中有三个映像在一个荚中(它们需要在127.0.0.1以上相互通信),看起来它们都在工作。我在yaml文件中定义了一个nodeport。

有一个部署定义了applications,它包含三个映像:

  • 联系人-db( MySQL数据库)
  • 前端(有角度的网站)
  • net核心( API)

我定义了三个服务,每个容器一个。在这里,我定义了访问它的NodePort类型。

因此,我检索了这些服务以获得端口号:

代码语言:javascript
复制
NAME          CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
contacts-db   10.103.67.74     <nodes>       3306:30241/TCP   1d
front-end     10.107.226.176   <nodes>       80:32195/TCP     1d
net-core      10.108.146.87    <nodes>       5000:30245/TCP   1d

我在浏览器中导航到http://:32195,它一直在加载。它没有连接。这是完整的Yaml文件:

代码语言:javascript
复制
---
apiVersion: v1
kind: Namespace
metadata:
  name: three-tier
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: applications
  labels:
    name: applications
  namespace: three-tier
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: applications
    spec:
      containers:
      - name: contacts-db
        image: mysql/mysql-server #TBD
        env:
          - name: MYSQL_ROOT_PASSWORD
            value: quintor
          - name: MYSQL_DATABASE
            value: quintor #TBD
        ports:
        - name: mysql
          containerPort: 3306
      - name: front-end
        image: xanvier/angularfrontend #TBD
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 80
      - name: net-core
        image: xanvier/contactsapi #TBD
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
  name: contacts-db
  labels:
    name: contacts-db
  namespace: three-tier
spec:
  type: NodePort
  ports:
    # the port that this service should serve on
  - port: 3306
    targetPort: 3306
  selector:
    name: contacts-db
---
apiVersion: v1
kind: Service
metadata:
  name: front-end
  labels:
    name: front-end
  namespace: three-tier
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80 #nodePort: 30001
  selector:
    name: front-end
---
apiVersion: v1
kind: Service
metadata:
  name: net-core
  labels:
    name: net-core
  namespace: three-tier
spec:
  type: NodePort
  ports:
  - port: 5000
    targetPort: 5000 #nodePort: 30001
  selector:
    name: net-core
---
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 18:53:51

服务的选择器是匹配您的吊舱的标签。在您的例子中,定义的选择器指向容器,这导致在选择豆荚时一无所获。

您必须重新定义您的服务才能使用一个选择器,或者将容器拆分到不同的部署/ Pods。

要查看为服务定义的选择器是否工作,可以使用以下方法检查它们:

代码语言:javascript
复制
kubectl get pods -l key=value

如果结果为空,则您的服务也将运行为空。

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

https://stackoverflow.com/questions/42134515

复制
相关文章

相似问题

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