You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by shimin huang <hu...@gmail.com> on 2022/04/15 03:16:40 UTC

flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题

退订

Posted by 王健 <13...@163.com>.
退订



---- 回复的原邮件 ----
| 发件人 | huweihua<hu...@gmail.com> |
| 日期 | 2022年04月15日 11:35 |
| 收件人 | user-zh@flink.apache.org<us...@flink.apache.org> |
| 抄送至 | |
| 主题 | Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip |
图片显示失败了,可以上传到图床,贴链接到邮件里

> 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
>
>
> 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
>
> shimin huang <huangshimin1996@gmail.com <ma...@gmail.com>> 于2022年4月15日周五 11:16写道:
> hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题


Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by shimin huang <hu...@gmail.com>.
感谢 我看下这块

huweihua <hu...@gmail.com> 于2022年4月15日周五 13:47写道:

> Nodeport 模式下获取 address 的代码在 getLoadBalancerRestEndpoint 中。历史版本会直接获取k8s
> master url, 在 Flink-1.14 版本中针对 k8s master 是 VIP 的情况做了适配[1],可以看下是否对你有帮助
> https://issues.apache.org/jira/browse/FLINK-23507
>
>
> > 2022年4月15日 下午1:37,shimin huang <hu...@gmail.com> 写道:
> >
> > Fabric8FlinkKubeClient#getRestEndPointFromService
> >
> >
> > shimin huang <hu...@gmail.com> 于2022年4月15日周五 13:37写道:
> >
> >> private Optional<Endpoint> getRestEndPointFromService(Service service,
> int restPort) {
> >>    if (service.getStatus() == null) {
> >>        return Optional.empty();
> >>    }
> >>
> >>    LoadBalancerStatus loadBalancer =
> service.getStatus().getLoadBalancer();
> >>    boolean hasExternalIP =
> >>            service.getSpec() != null
> >>                    && service.getSpec().getExternalIPs() != null
> >>                    && !service.getSpec().getExternalIPs().isEmpty();
> >>
> >>    if (loadBalancer != null) {
> >>        return getLoadBalancerRestEndpoint(loadBalancer, restPort);
> >>
> >> // 理解主要这块代码,nodeport方式
> >>    } else if (hasExternalIP) {
> >>        final String address = service.getSpec().getExternalIPs().get(0);
> >>        if (address != null && !address.isEmpty()) {
> >>            return Optional.of(new Endpoint(address, restPort));
> >>        }
> >>    }
> >>    return Optional.empty();
> >> }
> >>
> >>
> >> huweihua <hu...@gmail.com> 于2022年4月15日周五 11:35写道:
> >>
> >>> 图片显示失败了,可以上传到图床,贴链接到邮件里
> >>>
> >>>> 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
> >>>>
> >>>>
> >>>> 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
> >>>>
> >>>> shimin huang <huangshimin1996@gmail.com <mailto:
> >>> huangshimin1996@gmail.com>> 于2022年4月15日周五 11:16写道:
> >>>> hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
> >>> ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题
> >>>
> >>>
>
>

Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by huweihua <hu...@gmail.com>.
Nodeport 模式下获取 address 的代码在 getLoadBalancerRestEndpoint 中。历史版本会直接获取k8s master url, 在 Flink-1.14 版本中针对 k8s master 是 VIP 的情况做了适配[1],可以看下是否对你有帮助
https://issues.apache.org/jira/browse/FLINK-23507


> 2022年4月15日 下午1:37,shimin huang <hu...@gmail.com> 写道:
> 
> Fabric8FlinkKubeClient#getRestEndPointFromService
> 
> 
> shimin huang <hu...@gmail.com> 于2022年4月15日周五 13:37写道:
> 
>> private Optional<Endpoint> getRestEndPointFromService(Service service, int restPort) {
>>    if (service.getStatus() == null) {
>>        return Optional.empty();
>>    }
>> 
>>    LoadBalancerStatus loadBalancer = service.getStatus().getLoadBalancer();
>>    boolean hasExternalIP =
>>            service.getSpec() != null
>>                    && service.getSpec().getExternalIPs() != null
>>                    && !service.getSpec().getExternalIPs().isEmpty();
>> 
>>    if (loadBalancer != null) {
>>        return getLoadBalancerRestEndpoint(loadBalancer, restPort);
>> 
>> // 理解主要这块代码,nodeport方式
>>    } else if (hasExternalIP) {
>>        final String address = service.getSpec().getExternalIPs().get(0);
>>        if (address != null && !address.isEmpty()) {
>>            return Optional.of(new Endpoint(address, restPort));
>>        }
>>    }
>>    return Optional.empty();
>> }
>> 
>> 
>> huweihua <hu...@gmail.com> 于2022年4月15日周五 11:35写道:
>> 
>>> 图片显示失败了,可以上传到图床,贴链接到邮件里
>>> 
>>>> 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
>>>> 
>>>> 
>>>> 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
>>>> 
>>>> shimin huang <huangshimin1996@gmail.com <mailto:
>>> huangshimin1996@gmail.com>> 于2022年4月15日周五 11:16写道:
>>>> hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
>>> ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题
>>> 
>>> 


Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by shimin huang <hu...@gmail.com>.
Fabric8FlinkKubeClient#getRestEndPointFromService


shimin huang <hu...@gmail.com> 于2022年4月15日周五 13:37写道:

> private Optional<Endpoint> getRestEndPointFromService(Service service, int restPort) {
>     if (service.getStatus() == null) {
>         return Optional.empty();
>     }
>
>     LoadBalancerStatus loadBalancer = service.getStatus().getLoadBalancer();
>     boolean hasExternalIP =
>             service.getSpec() != null
>                     && service.getSpec().getExternalIPs() != null
>                     && !service.getSpec().getExternalIPs().isEmpty();
>
>     if (loadBalancer != null) {
>         return getLoadBalancerRestEndpoint(loadBalancer, restPort);
>
> // 理解主要这块代码,nodeport方式
>     } else if (hasExternalIP) {
>         final String address = service.getSpec().getExternalIPs().get(0);
>         if (address != null && !address.isEmpty()) {
>             return Optional.of(new Endpoint(address, restPort));
>         }
>     }
>     return Optional.empty();
> }
>
>
> huweihua <hu...@gmail.com> 于2022年4月15日周五 11:35写道:
>
>> 图片显示失败了,可以上传到图床,贴链接到邮件里
>>
>> > 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
>> >
>> >
>> > 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
>> >
>> > shimin huang <huangshimin1996@gmail.com <mailto:
>> huangshimin1996@gmail.com>> 于2022年4月15日周五 11:16写道:
>> > hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
>> ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题
>>
>>

Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by shimin huang <hu...@gmail.com>.
private Optional<Endpoint> getRestEndPointFromService(Service service,
int restPort) {
    if (service.getStatus() == null) {
        return Optional.empty();
    }

    LoadBalancerStatus loadBalancer = service.getStatus().getLoadBalancer();
    boolean hasExternalIP =
            service.getSpec() != null
                    && service.getSpec().getExternalIPs() != null
                    && !service.getSpec().getExternalIPs().isEmpty();

    if (loadBalancer != null) {
        return getLoadBalancerRestEndpoint(loadBalancer, restPort);

// 理解主要这块代码,nodeport方式
    } else if (hasExternalIP) {
        final String address = service.getSpec().getExternalIPs().get(0);
        if (address != null && !address.isEmpty()) {
            return Optional.of(new Endpoint(address, restPort));
        }
    }
    return Optional.empty();
}


huweihua <hu...@gmail.com> 于2022年4月15日周五 11:35写道:

> 图片显示失败了,可以上传到图床,贴链接到邮件里
>
> > 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
> >
> >
> > 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
> >
> > shimin huang <huangshimin1996@gmail.com <mailto:
> huangshimin1996@gmail.com>> 于2022年4月15日周五 11:16写道:
> > hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
> ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题
>
>

Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by huweihua <hu...@gmail.com>.
图片显示失败了,可以上传到图床,贴链接到邮件里

> 2022年4月15日 上午11:30,shimin huang <hu...@gmail.com> 写道:
> 
> 
> 具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在
> 
> shimin huang <huangshimin1996@gmail.com <ma...@gmail.com>> 于2022年4月15日周五 11:16写道:
> hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题


Re: flink on native k8s NodePort方式启动任务后返回的jobmanager web ui的地址不是集群中的ip

Posted by shimin huang <hu...@gmail.com>.
[image: image.png]
具体细节看和flink k8s这块的细节实现有关,不清楚为什么这个externalIPs的第一个ip在我们k8s集群中为什么不存在

shimin huang <hu...@gmail.com> 于2022年4月15日周五 11:16写道:

> hi,使用flink on  native k8s NodePort方式启动任务后返回的jobmanager web
> ui的地址不是集群中的ip,看k8s底层的部署也没发现具体问题
>