Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes服务未获取其外部IP地址_Kubernetes - Fatal编程技术网

Kubernetes服务未获取其外部IP地址

Kubernetes服务未获取其外部IP地址,kubernetes,Kubernetes,当我分两步(1.复制控制器;2.公开复制控制器)构建Kubernetes服务时,我公开的服务会获得一个外部IP地址: initially: NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE app-1 10.67.241.95 80/TCP app=app-1 7s 大约30秒后: NAME CLUSTER_IP

当我分两步(1.复制控制器;2.公开复制控制器)构建Kubernetes服务时,我公开的服务会获得一个外部IP地址:

initially:
    NAME         CLUSTER_IP     EXTERNAL_IP     PORT(S)   SELECTOR    AGE
    app-1        10.67.241.95                   80/TCP    app=app-1    7s
大约30秒后:

NAME         CLUSTER_IP     EXTERNAL_IP     PORT(S)   SELECTOR    AGE
app-1        10.67.241.95   104.155.93.79   80/TCP    app=app-1   35s
但是,当我一步到位,将
服务
复制控制器
提供给
kubectl create-f dir_和_2_文件
时,会创建服务,但不会获得外部IP:

NAME         CLUSTER_IP      EXTERNAL_IP   PORT(S)   SELECTOR    AGE
app-1        10.67.251.171   <none>        80/TCP    app=app-1   2m
对于ReplicationController:

{
    "apiVersion": "v1",
    "kind": "ReplicationController",
    "metadata": {
        "name": "app-1"
    },
    "spec": {
        "replicas": 1,
        "template": {
            "metadata": {
                "labels": {
                    "app": "app-1"
                }
            },
            "spec": {
                "containers": [
                    {
                        "name": "service",
                        "image": "gcr.io/sigma-cairn-99810/service:latest",
                        "ports": [
                            {
                                "containerPort": 8000
                            }
                        ]
                    }
                ]
            }
        }
    }
}
要手动公开服务,我使用以下命令:

kubectl expose rc app-1 --port 80 --target-port=8000 --type="LoadBalancer"

如果不指定服务的类型,则默认为ClusterIP。如果您想获得相当于
的公开
,您必须:

  • 确保您的服务通过匹配的标签选择器从RC中选择POD
  • 使服务
    type=LoadBalancer

  • 实际上,缺少
    type=LoadBalancer
    。谢谢
    kubectl expose rc app-1 --port 80 --target-port=8000 --type="LoadBalancer"