【问题标题】:IP Address assignment for the application running inside the pod in kubernetes在 Kubernetes 的 Pod 内运行的应用程序的 IP 地址分配
【发布时间】:2018-07-22 17:38:37
【问题描述】:

我在一个 pod 中运行我的应用程序,在另一个 pod 中运行 Mongo 数据库。 为了使我的应用程序成功启动,它需要知道运行 Mongo 的 IP 地址。

我有以下问题:

  1. 我如何知道 Mongo pod IP 地址,以便在我的应用程序中进行配置。
  2. 我的应用程序将在某些 IP 和端口上运行,这是作为某些配置文件的一部分提供的。但是由于这些是容器化的,并且 Kubernetes 分配了 Pod IP 地址,我的应用程序如何选择这个 IP 地址作为它自己的 IP?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您需要使用 Kubernetes 服务公开 mongodb。借助 Services,应用程序无需知道 Pod 的实际 IP 地址,您可以使用服务名称来解析 mongodb。

    参考:https://kubernetes.io/docs/concepts/services-networking/service/

    一个使用mysql的例子:

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: mysql
      name: mysql
    spec:
      ports:
        - port: 3306
      selector:
        name: mysql
    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: mysql
      labels:
        name: mysql
    spec:
      containers:
          image: mysql
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: wppassword
          ports:
            - containerPort: 3306
              name: mysql
    

    如果有应用程序容器,在同一个命名空间,尝试使用mysql容器,可以直接使用mysql:3306连接,而不是使用POD IP地址。 mysql.namespace_name:3306 如果应用位于不同的命名空间中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 2017-05-24
      • 1970-01-01
      相关资源
      最近更新 更多