kubernetes快速入门

Kubernetes Ingress 是一种 Kubernetes 资源对象,用于将外部请求路由到集群内部的多个服务,Ingress 通常用于 HTTP 和 HTTPS 流量,但也可以支持其他类型的流量,本文将介绍如何简单入门 Kubernetes Ingress,包括其基本概念、使用方法以及相关问题与解答。

Kubernetes Ingress 基本概念

1、1 Service

kubernetes快速入门

Service 是 Kubernetes 中的一个抽象,它定义了一组 Pod 的逻辑集合和这些 Pod 的访问策略,通过 Service,我们可以访问集群内部的不同服务,而不需要关心这些服务的 IP 地址和端口号。

1、2 Pod

Pod 是 Kubernetes 中最小的部署单元,它包含了一个或多个容器,每个 Pod 都有一个唯一的 IP 地址和端口号,用于与其他 Pod 通信。

1、3 Endpoint

Endpoint 是 Service 的一个实例,它包含了一组 Pod 的 IP 地址和端口号,通过 Endpoint,我们可以访问 Service 暴露出来的不同端口。

kubernetes快速入门

1、4 Ingress Controller

Ingress Controller 是负责处理 Ingress 资源的对象,它根据 Ingress 资源的配置信息,将外部请求路由到相应的 Service,常见的 Ingress Controller 有 Nginx、Traefik、HAProxy 等。

使用 Ingress

2、1 创建 Ingress Resource

要使用 Ingress,首先需要创建一个 Ingress Resource,以下是一个简单的 Ingress Resource YAML 文件示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  host: example.com
    http:
      paths:
      path: /app1
        pathType: Prefix
        backend:
          service:
            name: app1-service
            port:
              number: 80
      path: /app2
        pathType: Prefix
        backend:
          service:
            name: app2-service
            port:
              number: 80

这个示例中,我们定义了一个名为 my-ingress 的 Ingress Resource,它将 example.com 域名下的 /app1/app2 路径分别路由到名为 app1-serviceapp2-service 的服务的 80 端口。

kubernetes快速入门

2、2 查看 Ingress Resource

创建了 Ingress Resource 后,可以使用以下命令查看其详细信息:

kubectl get ingress my-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}' --namespace=default

这个命令会输出 Ingress Resource 当前使用的负载均衡器的 IP 地址,通常情况下,Ingress Controller 负责管理负载均衡器,因此这个 IP 地址可能会发生变化,如果需要查看具体的 Ingress Controller,可以使用以下命令:

kubectl get ingresscontrollers --namespace=default --show-labels | grep "controller-name" | cut -d "=" -f2 | xargs kubectl describe pod --namespace=default | grep "IngressController" | grep "Running" | tr "
" " " | sed 's/ //g' | tr ' ' '
' | sort | uniq | head -n10 | tail -n5 | xargs echo "---" | xargs echo "Name:" | xargs echo "Description:" | xargs echo "Labels:" | xargs echo "Annotations:" | xargs echo "-----------------------------"

这个命令会输出默认命名空间下所有正在运行的 Ingress Controller(包括 Nginx、Traefik、HAProxy)的简要信息,可以根据需要选择合适的 Ingress Controller。

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/115170.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔订阅
上一篇 2023-12-25 14:34
下一篇 2023-12-25 14:42

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入