service - 通过 LoadBalancer 公开现有和已部署的 Kubernetes 服务

标签 service kubernetes

我已经将一个服务部署到 kubernetes 集群中,它看起来像这样:

$ kubectl get svc my-service
NAME               CLUSTER_IP       EXTERNAL_IP   PORT(S)    SELECTOR                AGE
my-service         192.168.202.23   <none>        8080/TCP   name=my-service         38d

YAML 配置的规范部分如下所示:

"spec": {
        "ports": [
            {
                "name": "http-port",
                "protocol": "TCP",
                "port": 8080,
                "targetPort": 8080
            }
        ],
        "selector": {
            "name": "my-service"
        },
        "clusterIP": "192.168.202.23",
        "type": "ClusterIP",
        "sessionAffinity": "None"
    },
    "status": {
        "loadBalancer": {}
    }
}

现在,我想公开此服务以便可以使用 LoadBalancer 从外部访问。使用 kubectl 公开服务会出现如下错误:

$ kubectl expose service my-service --type="LoadBalancer"
Error from server: services "my-service" already exists

是否无法“编辑”现有已部署的服务并使其可从外部访问?

最佳答案

您创建的服务类型是ClusterIP,它在集群外部不可见。如果您编辑服务并将 type 字段更改为 NodePortLoadBalancer,它将公开它。

有关这些服务类型及其含义的文档位于: http://kubernetes.io/docs/user-guide/services/#publishing-services---service-types

关于service - 通过 LoadBalancer 公开现有和已部署的 Kubernetes 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965003/

相关文章:

azure - 有没有办法从 Windows Azure 中的 "cloud services"下载源代码?

PHP:多线程 PHP/Web 服务?

amazon-web-services - 如何将 Kubernetes 日志发送到 AWS CloudWatch?

kubernetes - 确定 Kubernetes 端口转发状态的状态

kubernetes - 无法连接到 Kubernetes NodePort 服务

python - 如何将 Flask/gunicorn 应用程序作为 systemd 服务运行

c# - 将进程附加到 windbg 后,CPU 使用率立即变为 0

kubernetes - Hpa 未获取现有自定义指标?

kubernetes - Spring Cloud Data Flow + Kubernetes,要求将任务Pod部署在非默认 namespace 上

android - 前台服务在通知点击时被杀死