kubernetes(k8s) 学习 (六) ingress 简介 +基础实验

ingress简介

我们知道service的表现形式为IP:PORT,即工作在第四层传输层(TCP/IP层),那么对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器,这些应用层的转发机制仅通过kubernetes的service机制是无法实现的,这种情况我们可以使用ingress策略定义和一个具体的ingress Controller,两者结合实现一个完整的Ingress 负载均衡,这个负载均衡是基于nginx七层反向代理来实现

在这里插入图片描述
下图即为Ingress Controller这种独特的控制器资源的工作流程图.
需要注意: Ingress Controller 和 Ingress是两个不同的资源

Ingress它是通过headless service的集群内FQDN获取到它后端所有的Pod资源的IP,因为headless Service没有ClusterIP,它的域名对应的IP为PodIP。

Ingress获取PodIP后,在立刻将其写入到ingress-nginx的配置文件中,
并触发nginx重读配置文件。实现动态更新upstream。

另外,外部LB可以直接跳过Service,直接访问到nginx,这需要将nginx这个Pod作为共享宿主机的网络名称空间才能实现,这时就需要借助于daemonSet控制器来控制着nginx这种七层反代Pod仅允许在指定节点上,并且每个节点上仅运行一个nginx Pod。

在这里插入图片描述在这里插入图片描述

具体实验

实验环境和之前的博客是一样的。

在这里插入图片描述
在这里插入图片描述
1.
在这里插入图片描述在这里插入图片描述2.我是把ingress-controller镜像下载在本地的harbor仓库中,让集群中的节点去harbor仓库中去拿。
在这里插入图片描述

在这里插入图片描述
拿到yaml文件
在这里插入图片描述编辑此文件,把镜像的位置换成本地仓库中镜像的位置
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述查看日志,发现service缺少
在这里插入图片描述在这里插入图片描述
应用刚才wget的service文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述
查看信息
在这里插入图片描述在这里插入图片描述在这里插入图片描述

直接指定后端的服务名称

在这里插入图片描述创建ingress服务
在这里插入图片描述在这里插入图片描述service.yaml文件
在这里插入图片描述在这里插入图片描述
3.在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

通过域名的形式来访问后端

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在真机中添加ser4的解析

在这里插入图片描述发现实现负载均衡
在这里插入图片描述在这里插入图片描述

通过不同的域名定义到不同的后端

1.在这里插入图片描述2.在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述访问www2.westos.org时访问到v1
在这里插入图片描述访问www1.westos.org时访问到v2
在这里插入图片描述在这里插入图片描述在这里插入图片描述

测试访问同一域名,不同的path时,调度到不同的后端

在这里插入图片描述
1.
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Kubernetes 集群中部署 Hyperf 应用并使用 Ingress 控制器进行路由,需要完成以下步骤: 1. 创建 Hyperf 应用的 Docker 镜像,并将镜像推送到 Docker 镜像仓库中。 2. 在 Kubernetes 集群中创建一个 Deployment 对象,用于部署 Hyperf 应用容器。 3. 在 Kubernetes 集群中创建一个 Service 对象,用于将 Hyperf 应用容器暴露为 Kubernetes 集群内部的服务。 4. 在 Kubernetes 集群中创建一个 Ingress 对象,定义将外部流量路由到 Hyperf 应用服务的规则。 下面是一个示例的 YAML 配置文件,用于在 Kubernetes 集群中部署 Hyperf 应用,并使用 Nginx Ingress 控制器进行路由: ```yaml # hyperf-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: hyperf-app spec: selector: matchLabels: app: hyperf-app replicas: 1 template: metadata: labels: app: hyperf-app spec: containers: - name: hyperf image: <your-docker-image> ports: - containerPort: 9501 --- # hyperf-service.yaml apiVersion: v1 kind: Service metadata: name: hyperf-app spec: selector: app: hyperf-app ports: - name: http port: 9501 --- # hyperf-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hyperf-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: <your-domain-name> http: paths: - path: / pathType: Prefix backend: service: name: hyperf-app port: name: http ``` 将上述 YAML 配置文件保存为 `hyperf.yaml`,然后使用 `kubectl apply -f hyperf.yaml` 命令来部署 Hyperf 应用和 Ingress 控制器。其中 `<your-docker-image>` 填入你的 Hyperf 应用 Docker 镜像地址,`<your-domain-name>` 填入你的域名。 部署完成后,可以通过访问 `<your-domain-name>` 来访问 Hyperf 应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值