Nginx 舵安装入口未设置

Nginx 舵安装入口未设置,nginx,kubernetes,kubernetes-helm,amazon-eks,nginx-ingress,Nginx,Kubernetes,Kubernetes Helm,Amazon Eks,Nginx Ingress,因此,我建立了一个AWS EKS集群(使用fargate),并打算将其用于gitlab CI/CD集成 然后尝试基于 kubectl get service nginx-ingres nginx-ingres-ojson | jq-r'.status.loadBalancer.ingres[].ip'即使等待很长时间,也始终返回null 基本上,我需要一个loadBalancer IP来在gitlab中设置基本域 了解到我需要将服务类型设置为loadBalancer,因此使用重试 helm in

因此,我建立了一个AWS EKS集群(使用fargate),并打算将其用于gitlab CI/CD集成

然后尝试基于

kubectl get service nginx-ingres nginx-ingres-ojson | jq-r'.status.loadBalancer.ingres[].ip'
即使等待很长时间,也始终返回
null

基本上,我需要一个loadBalancer IP来在gitlab中设置基本域

了解到我需要将服务类型设置为loadBalancer,因此使用重试
helm install nginx-ingres nginx-stable/nginx-ingres--set controller.service.type=LoadBalancer

同样的结果

kubectl获取服务nginx ingress nginx ingress-ojson的结果包括

{
    "apiVersion": "v1",
    "kind": "Service",
    "metadata": {
        "annotations": {
            "meta.helm.sh/release-name": "nginx-ingress",
            "meta.helm.sh/release-namespace": "default"
        },
        "creationTimestamp": "2021-03-26T19:49:02Z",
        "finalizers": [
            "service.kubernetes.io/load-balancer-cleanup"
        ],
        "labels": {
            "app.kubernetes.io/instance": "nginx-ingress",
            "app.kubernetes.io/managed-by": "Helm",
            "app.kubernetes.io/name": "nginx-ingress-nginx-ingress",
            "helm.sh/chart": "nginx-ingress-0.8.1"
        },
   .
   .
   .
   .
    "status": {
        "loadBalancer": {
            "ingress": [
                {
                    "hostname": "<xyz-key>.ap-southeast-1.elb.amazonaws.com"
                }
            ]
        }
    }
}
{
“apiVersion”:“v1”,
“种类”:“服务”,
“元数据”:{
“注释”:{
“meta.helm.sh/发布名称”:“nginx入口”,
“meta.helm.sh/release命名空间”:“默认”
},
“creationTimestamp”:“2021-03-26T19:49:02Z”,
“终结器”:[
“service.kubernetes.io/负载平衡器清理”
],
“标签”:{
“app.kubernetes.io/instance”:“nginx入口”,
“app.kubernetes.io/管理人”:“Helm”,
“app.kubernetes.io/name”:“nginx-ingres nginx-ingres”,
“舵手sh/图表”:“nginx-ingress-0.8.1”
},
.
.
.
.
“地位”:{
“负载平衡器”:{
“入口”:[
{
“主机名”:“.ap-southerast-1.elb.amazonaws.com”
}
]
}
}
}

如@rockn rolla在评论中提到,通过EKS返回上的nginx ingress提供的弹性负载平衡器由主机名公开。负载平衡器的IP地址与部署到的子网相关联(弹性网络接口),但它们可能会更改。如果您有域名,可以将自定义子域指向负载平衡器,并将其提供给GitLab。此GitLab博客包含其他详细信息:

您看到的主机名是创建的负载平衡器的DNS名称。这是AWS用于负载平衡器的格式。在这种情况下,您不需要IP。Running命令
kubectl get service nginx-ingres nginx-ingres-ojson | jq-r'.status.loadBalancer.ingres[]
将返回相同的主机名。非常感谢
{
    "apiVersion": "v1",
    "kind": "Service",
    "metadata": {
        "annotations": {
            "meta.helm.sh/release-name": "nginx-ingress",
            "meta.helm.sh/release-namespace": "default"
        },
        "creationTimestamp": "2021-03-26T19:49:02Z",
        "finalizers": [
            "service.kubernetes.io/load-balancer-cleanup"
        ],
        "labels": {
            "app.kubernetes.io/instance": "nginx-ingress",
            "app.kubernetes.io/managed-by": "Helm",
            "app.kubernetes.io/name": "nginx-ingress-nginx-ingress",
            "helm.sh/chart": "nginx-ingress-0.8.1"
        },
   .
   .
   .
   .
    "status": {
        "loadBalancer": {
            "ingress": [
                {
                    "hostname": "<xyz-key>.ap-southeast-1.elb.amazonaws.com"
                }
            ]
        }
    }
}