Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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

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
Azure 用自定义名称替换kubernetes中的ip地址_Azure_Kubernetes_Azure Aks - Fatal编程技术网

Azure 用自定义名称替换kubernetes中的ip地址

Azure 用自定义名称替换kubernetes中的ip地址,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我创建了一个示例spring boot应用程序,并执行了以下操作:- 1.创建了一个docker映像 2.创建了Azure容器注册表,并进行了docker推送 3.在Azure Kubernetes服务中创建了一个群集并成功部署。我已为此选择了外部端点选项 对于服务对服务呼叫,我不想像使用IP一样使用另一个自定义名称,但我如何才能做到这一点? 此外,如果我选择了内部,那么是否有任何方法来替换名称。 尝试使用endpoint name属性编辑YAML,但失败。有什么想法吗?我认为您混淆了一些概念

我创建了一个示例spring boot应用程序,并执行了以下操作:-

1.创建了一个docker映像

2.创建了Azure容器注册表,并进行了docker推送

3.在Azure Kubernetes服务中创建了一个群集并成功部署。我已为此选择了外部端点选项

对于服务对服务呼叫,我不想像使用IP一样使用另一个自定义名称,但我如何才能做到这一点? 此外,如果我选择了内部,那么是否有任何方法来替换名称。
尝试使用endpoint name属性编辑YAML,但失败。有什么想法吗?

我认为您混淆了一些概念,因此我将尝试解释并帮助您实现所需

  • 当您在Kubernetes集群中部署容器映像时,在大多数情况下,您将使用or规范,这基本上是一个yaml文件,包含您的所有部署/pod配置、名称、映像名称等。下面是一个简单的echo server应用程序示例:
  • 观察文件中的字段
    name
    。在这里,您可以为部署和容器配置名称

  • 为了公开您的应用程序,您需要使用。服务可以是
    内部
    外部
    。您可以找到所有服务类型
  • 对于内部服务,您需要使用服务类型
    ClusterIP
    (默认),这意味着只有您的集群才能到达POD。要从其他pod访问您的服务,您可以使用由
    my svc.my namespace.svc.cluster domain.example
    组成的

    以下是用于上述部署的服务示例:

    apiVersion: v1
    kind: Service
    metadata:
      name: echo-svc
    spec:
      selector:
        app: echo
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
    
  • 要在外部公开您的服务,您可以选择使用服务类型
    NodePort
    LoadBalancer
    或使用
  • 您可以在入口规则中配置DNS名称,并根据需要制定路径规则,甚至可以为应用程序配置HTTPS。在库伯内特斯,入口的选择很少,其中最流行的是

    以下是如何为示例服务配置简单入口的示例:

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: nginx
        nginx.ingress.kubernetes.io/use-regex: "false"
      name: echo-ingress
    spec:
      rules:
      - host: myapp.mydomain.com
        http:
          paths:
          - path: "/"
            backend:
              serviceName: echo-svc
              servicePort: 80
    
    在本例中,我使用的是dns名称
    myapp.mydomain.com
    ,因此这意味着您只能通过此名称访问您的应用程序


    创建入口后,您可以使用命令
    kubectl get ing
    查看外部ip,并且您可以在dns服务器中创建一个条目。

    您遇到了什么错误?通过“更改名称”,我假设您的意思是要为该ip地址分配一个dns名称?!好的,让我解释一下。如果我需要一个自定义域,那么我需要注册rt。比如说,如果我的ext端点是1.1.1.1,那么就为我运行。我想要的是,我部署的这个pod应该在app-->自定义名称的位置。我可能需要使用它来调用服务对服务调用。我尝试了nginx控制器,但面临某些问题。有更好的方法吗?
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: nginx
        nginx.ingress.kubernetes.io/use-regex: "false"
      name: echo-ingress
    spec:
      rules:
      - host: myapp.mydomain.com
        http:
          paths:
          - path: "/"
            backend:
              serviceName: echo-svc
              servicePort: 80