前言
最近在学习阿里云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配置负载平衡