Kubernetes如何在Pod中获取群集域(例如svc.cluster.local)?

时间:2018-09-28 08:57:49

标签: kubernetes metadata

我在每个命名空间中部署了一个squid代理,因为我想通过squid代理从外部访问服务,因此我需要在squid.conf中添加以下行,以便仅使用服务名称即可访问服务: / p>

def logout(request):
    if request.session.has_key:
        request.session.delete()
    else:
        pass
    return JsonResponse({'logout':True,'redirect_url': reverse('sanjh:home')})


<script>
    $(document).ready(function(){
    $('#logout-anchor').click(function(event){
        console.log('hi-you are logged out')

        $.ajax({
            method: 'GET',
            url: '/logout',
            success: function(res) {
            console.log(res);
            window.location = res.redirect_url;

            }
        })
        })
    })
</script>]

这是我的问题:
  我可以通过Pod中的append_domain .${namespace}.svc.cluster.local 获得${namespace},但是如何获得集群域呢?有可能吗?
我已经尝试过了,但是在创建广告连播时出现了错误:

metadata.namespace

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

好的,无法将当前r2 = requests_html.HTML(html=r.text.replace('\0', '')) r2.find('#productDetails_detailBullets_sections1') [<Element 'table' role='presentation' class=('a-keyvalue', 'prodDetTable') id='productDetails_detailBullets_sections1'>] 放入容器中,但是我找到了另一种解决方法-从NAMESPACE中的search domian检索整个主机域。 >

这是细节:

  • 保持未修改的Dockerfile
  • 向Deployment.yaml中添加一个resolv.conf项目

    command

这将在文件image: squid:3.5.20 command: ["/bin/sh","-c"] args: [ "echo append_domain .$(awk -v s=search '{if($1 == s)print $2}' /etc/resolv.conf) >> /etc/squid/squid.conf; /usr/sbin/squid -N" ] 的末尾添加一行append_domain .default.svc.cluster.local,然后我们就可以立即使用/etc/squid/squid.conf的名称通过鱿鱼代理从外部访问服务。

答案 1 :(得分:0)

集群域是通过kubelet参数配置的,整个集群必须相同,因此,您无法从pod的元数据中获取它,只需按原样使用它即可:svc.cluster.local