对于大多中小型公司来说,生产环境大多是购买阿里云或者腾讯云等等,也就存在以下需求:
特别是前两项,一定是跳不过的。容器化部署,现在非K8S莫属了。
既然是购买阿里云,所以K8S一般也是购买阿里云的“容器服务 kubernetes版”,好处是它本身有一套web版的管理UI。
除此之外,你还需要开通的服务有:“域名服务”“云解析DNS”“负载均衡 SLB”。
本文是基于阿里云环境,讲述如何配置DNS,顺便说一下SLB。
这里会有两种场景,一者是ECS,另外就是K8S。
当然,上面的nginx也可被nginx ingress替代。
见下图:
内网域名是xxx.cloud,外网域名是xxx。子域名是对应具体的服务,比如本文的文件服务,就是file前缀。
云解析DNS
因为我已添加完成,所以这里仅作修改示例:
操作和外网域名没什么区别,这里展示ECS部署场景下,该如何配置DNS。这里没有SLB。
区别是,这里的记录值填写Nginx的地址,并且我们会添加两条“loud”的记录。
两条记录的唯一差别是记录值不同,指向两个nginx节点,因为这里使用了nginx集群。
上文说了,我们购买了阿里云的SLB,所以下面简单讲述,如果没有内外网域名,直接暴露外网SLB地址给客户端。
见下图所示:
上图中使用的SLB,就是外网域名指向的地址。
下面,看下它的后端服务器:
可以说,怎么配置SLB,在阿里云UI操作还是比较直观的,不在本文的细说。
SLB对nginx2和nginx3的负载均衡。
上面购买的是外网slb,如果你不需要直接暴露slb地址的话,购买内网slb即可。
注意,这里的服务地址是10开头的内网IP。
本SLB的配置后端服务器,和上文的SLB不同的地方在于,使用了虚拟服务器组,而上文使用的默认服务器组。
说白了,就是一个slb可以转发多个端口。
这里维护了两个nginx节点
当 Service 类型是 LoadBalancer 时,Kubernetes 会创建云提供商的负载均衡器,并将外部流量引导到集群中相应的 Node 上。
可以明显看到,这里使用了虚拟服务器组,端口进行了一一映射。
正因为虚拟服务器组,才使得一个slb能够对许多后端服务进行负载均衡。
当然,ingress的前提是要先创建service,因为service不在本文讲述范围,略去,下面看一下ingress的yaml。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: xxxnamespace: java-service
spec:
# Ingress Class必填ingressClassName: ack-nginxrules:- host: loudhttp:paths:- backend:service:name: message-serverport:number: 8100path: /pathType: ImplementationSpecific
# 注意看它指向的slb
status:loadBalancer:ingress:- ip: 10.224.171.70
可以看出,nginx ingress是依赖service和slb的,当然service本身也采用了slb实现。
所以,这里就使用了两个slb。一个是ingress要用到的,另外一个是service需要的。
user nginx;
worker_processes 4;worker_cpu_affinity 00000001 00000010 00000100 00001000;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;worker_rlimit_nofile 204800;events {use epoll;worker_connections 204800;
}http {
...
...# 默认include /etc/nginx/conf.d/*.conf;# 一个服务对应一个conf文件,统一放在vhost目录下include /etc/nginx/vhost/*.conf;}
upstream interfacecluster {server 10.24.178.117:8089 weight=9 max_fails=0 fail_timeout=10s;server 10.24.178.118:8089 weight=9 max_fails=0 fail_timeout=10s;
}
server {listen 80;# 配置两个域名,一个是内网域名,一个是外网域名。# 建议你将内外网域名的配置分开来,因为内网往往只做反向代理,而外网则有权限拦截等需求server_;location / {proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_pass interfacecluster;include proxy_params;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header HTTP_HOST $host;proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;proxy_set_header HTTP_X_FORWARDED_HOST $host;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-HTTPS 0;}# 日志的路径access_log /data/nginx/logs/filesoss_access.log access;error_log /data/nginx/logs/filesoss_error.log;
}
因为阿里云的文档本身已很丰富全面了,本文不意再重复一遍,如果在看本文的时候,有不清楚的地方,还望见谅,结合官方文档可能更佳。
本文发布于:2024-01-28 16:55:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064321208886.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |