gpt4 book ai didi

azure - 使用自定义名称替换 kubernetes 中的 ip 地址

转载 作者:行者123 更新时间:2023-12-02 11:42:09 24 4
gpt4 key购买 nike

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

1.创建docker镜像

2.创建一个 Azure 容器注册表并对其进行 docker 推送

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

Kubernetes external end point

对于服务到服务的调用,我不想使用像http://20.37.134.68:80这样的IP但另一个自定义名称我该怎么做?另外,如果我选择内部,那么有什么方法可以替换名称。尝试使用端点名称属性编辑 YAML 但失败。有什么想法吗?

最佳答案

我认为你混淆了一些概念,所以我会尽力解释并帮助你达到你想要的。

  1. 当您在 Kubernetes 集群中部署容器镜像时,大多数情况下您将使用 poddeployment规范,基本上是一个 yaml 文件,其中包含所有部署/pod 配置、名称、图像名称等。这是一个简单的 echo-server 应用程序的示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
spec:
selector:
matchLabels:
app: echo
template:
metadata:
labels:
app: echo
spec:
containers:
- name: echo
image: mendhak/http-https-echo
ports:
- name: http
containerPort: 80

观察文件中的字段name。您可以在此处配置部署和容器的名称。

  • 为了公开您的应用程序,您需要使用service 。服务可以是内部外部Here您可以找到所有服务类型。
  • 对于内部服务,您需要使用服务类型ClusterIP(默认),这意味着只有您的集群才能到达 Pod。要从其他 Pod 访问您的服务,您可以使用 service namemy-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
  • 要向外部公开您的服务,您可以选择使用服务类型 NodePortLoadBalancer 或使用 ingress .
  • 您可以在入口规则中配置您的 DNS 名称,并根据需要制定路径规则,甚至为您的应用程序配置 HTTPS。 kubernetes 中的入口选项很少,最流行的选项之一是 nginx-ingress .

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

    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服务器中创建A条目。

    关于azure - 使用自定义名称替换 kubernetes 中的 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63613630/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com