【问题标题】:Why my k8s pods console have different port number then my NodePort?为什么我的 k8s pod 控制台的端口号与我的 NodePort 不同?
【发布时间】:2023-01-27 22:59:53
【问题描述】:

我正在尝试为我的 k8s 集群安装 velero 和 minio。我有 1 个主节点和 2 个工作节点。 我对 NodePort 服务有疑问。

整体 pod 正在工作,节点端口服务也在运行,但是当我尝试从浏览器访问 minio 仪表板时,它更改了端口号。我认为问题出在我的服务上,所以我还为此创建了另一个question

实际问题出在控制台端口。

当我运行kubectl logs minio-8649b94fb5-8cr2k -n velero时,我看到了这个信息。

WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
         Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Formatting 1st pool, 1 set(s), 1 drives per set.
WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2023-01-25T00-19-54Z (go1.19.4 linux/amd64)

Status:         1 Online, 0 Offline.
API: http://10.244.2.136:9000  http://127.0.0.1:9000
Console: http://10.244.2.136:37269 http://127.0.0.1:37269

Documentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.

的端口号

Console: http://10.244.2.136:37269 http://127.0.0.1:37269 与节点端口服务的端口不同。

这是我的 NodePort 服务

master-k8s@masterk8s-virtual-machine:~/velero-v1.2.0-darwin-amd64$ kubectl get svc -n velero
NAME    TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
minio   NodePort   10.97.197.54   <none>        9000:30480/TCP   82m

当我在浏览器中使用服务端口号搜索 URL 时,它会转换为控制台端口,我无法访问我的应用程序。

我做了什么来解决这个问题:

  1. 我尝试使用负载平衡器服务,但仍然无法访问该应用程序。
  2. 我还在 service.yaml 文件中分配了 NodePort 它停止更改端口但我无法访问该应用程序。
  3. 我更改了应用程序和服务中的端口,问题仍然存在。
  4. 日志只有这些信息。
  5. 我尝试直接在我的 Ubuntu VM 上安装 minio,它成功了。

    我想要什么:

    我已经做了我能做的一切。我找不到任何类似的问题或与此主题相关的任何信息。任何建议都将非常有助于解决此问题。如何更改控制台端口或使其与服务端口同步?

【问题讨论】:

标签: ubuntu kubernetes minio velero kubernetes-nodeport


【解决方案1】:

您需要在您的服务中像这样公开端口、api 和控制台:

  ports:
  - name: minio-api
    nodePort: 30106
    port: 9000
    protocol: TCP
    targetPort: minio-api
  - name: minio-console
    nodePort: 31717
    port: 9001
    protocol: TCP
    targetPort: minio-console
  type: NodePort

如果使用来自 api 的端口,它将在您的浏览器中自动切换到另一个 NodePort。

【讨论】:

  • 这是行不通的,因为正如我在评论中指出的那样,minio 默认情况下会选择一个随机控制台端口。例如,在问题中显示的输出中,控制台正在侦听端口 32769,因此您在此处的 minio-console 条目将不起作用。将 port 值更改为 32769 也不起作用,因为下一次容器启动时它将使用不同的端口。 OP 需要首先按照我在评论中链接的文档来解决该问题。
猜你喜欢
  • 2023-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多