关于阿里云:阿里云ACK-使用LoadBalancer和Ingress访问Nextjs网站

7次阅读

共计 1693 个字符,预计需要花费 5 分钟才能阅读完成。

前言

最近在学习阿里云 k8s 相干容器服务 ACK,于是本人创立了 ACK 集群,配置好了 SLB、NAT、Node、EIP 等相干操作,于是创立了 next.js 我的项目,并通过公布镜像到阿里云容器服务,于是在 ACK 上创立无状态利用选用该镜像来拜访 next.js 网站,通过理解 k8s 有两种拜访形式:LoadBalancer 和 Ingress,当初记录下来供大家参考。

前置操作

不论是 LoadBalancer 还是 Ingress 都要进行前置操作,这里先来介绍下如何去创立 next.js 利用。
1、配置利用根本信息
首先咱们在工作负载上面 -> 点击无状态 -> 右上角点击应用镜像创立


2、容器配置
咱们抉择镜像,应用官网提供的 nginx 镜像,点击抉择确定,其它参数默认即可。

3、高级配置
这里只需默认即可,前面会介绍如何创立 Service 和 Ingress,点击创立。

配置 Ingress 拜访

1、创立 Service
在配置 Ingress 之前咱们要创立 Service,能力裸露 Endpoint。在服务与路由菜单下点击服务,点击右上角有创立按钮。
名称本人输出即可,类型抉择虚构集群 IP,并关联 my-nginx,端口都设置成 80,80,或者 next.js 的 80,3000,看理论状况设定。
设定好了之后点击创立即可。

2、创立 Ingress
创立好 Service 之后,咱们再点击左侧菜单服务与路由上面的路由,点击右上角创立按钮,关上配置面板,输出自定义名称,输出域名,服务抉择上一步咱们创立的 my-nginx-svc 即可,点击创立。

3、域名拜访
创立好之后咱们能够通过域名或者 ip 即可拜访咱们的 nginx 页面。

4、注意事项
默认状况下阿里云 K8S 的 ACK 的组件治理菜单外面有个 Nginx-Ingress-Controller 组件,并且会多出一个监听是 80 和 443 的 SLB,另外如果你的 SLB 是私网环境,那么你得配置 EIP 绑定到该 SLB,这样你能力真正能拜访你的网站了,如果是公网就疏忽下面操作。还有一点就是你的域名解析问题,肯定要解析到你的 SLB 所在的公网地址。

配置 LoadBalancer 拜访

这里又能够分为:1、通过主动创立 SLB 服务公开利用 2、通过已有 SLB 服务公开利用

1、通过主动创立 SLB 服务公开利用

接着下面的前置操作,抉择服务与路由菜单上面的服务菜单,而后点击右上角的创立按钮关上创立面板,接着咱们输出服务名称,类型抉择 -> 负载平衡 -> 公网拜访 -> 新建 SLB,接着关联咱们在前置操作创立的 my-nginx,内部流量策略为 Local,配置对应端口,再增加相干注解,下图有解释注解干嘛用的,点击创立,再点击内部 IP 端口即可拜访咱们的网站了。

2、通过已有 SLB 服务公开利用

和下面的操作类型,类型抉择 -> 负载平衡 -> 公网拜访 -> 应用已有 SLB-> 抉择 SLB 列表上面的 SLB 即可,点击内部端口即可拜访,跟下面雷同。

3、注意事项
下面咱们抉择的是类型抉择 -> 负载平衡 -> 公网拜访,如果你的 SLB 是私网,这里也要配置成雷同的私网拜访,否则拜访失败。

总结

1、创立 k8s 集群之后会创立两个 SLB,一个是 APIServer 监听端口 6445,一个是 nginx-ingress-controller 监听端口是 80 和 443。
2、如果你的 Service 的 type=ClusterIP,那么应用下面的 nginx-ingress-controller 的 SLB 即可,如果你的 Service 的 type=LoadBalancer,那么你要么通过主动创立 SLB 服务公开利用,要么通过已有 SLB 服务公开利用,取决于你本人。
3、这里要揭示一下,如果你的 SLB 是反对公网的话这里不做任何操作,然而如果你的 SLB 是私网环境,那么你的 SLB 要配置 EIP,容许公网拜访,否则你内网的地址是打不开你的 nginx 网址页面的
4、LoadBalancer 和 Ingress 的最大区别在于 LB 不须要创立 Ingress,而 Ingress 必须要创立。

援用

通过负载平衡类型 Service 公开利用.mov
通过应用已有 SLB 的服务公开利用
创立无状态工作负载 Deployment
通过 Annotation 配置负载平衡

正文完
 0