关于阿里云 ACK ingress部分补充

编程入门 行业动态 更新时间:2024-10-26 04:27:05

关于<a href=https://www.elefans.com/category/jswz/34/1770131.html style=阿里云 ACK ingress部分补充"/>

关于阿里云 ACK ingress部分补充

强调: 本文只是作为'记录',过一段时间会'删除'

跟唐老师学习网络

一  Nginx Ingress管理

①  流量走向

需求: 应用绑定'LoadBalance',会自动创建或使用'SLB'eip:port --> nodeport_ip:port  --> service_ip:port  --> pod_ip:port

支持的注解

通过阿里云负载均衡SLB暴露的服务 Service

通过使用自动创建SLB的服务公开应用

②  阿里云厂商的特殊注解

'原Ingress Class'为nginx-intranetannotations:kubernetes.io/ingress.class: nginx-intranet ACK 自身的'ingress' --> ack-ingress-nginx'或'ack-ingress-nginx-v1

通过Annotation配置传统型负载均衡CLB

Annotation:需求: 使用'已有'的负载均衡备注: 负载均衡'实例的ID',通过此Annotation指定'已有的CLB'service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id   -->  '重要'负载均衡实例'名称'service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name为TCP类型的负载均衡配置'会话保持'时间service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout++++++++++++++++++++++  "分割线"​  ++++++++++++++++++++++需求: ingress使用公有云的'负载均衡 LoadBalance'类型service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type1、internet:服务通过'公网'访问,此为'默认'值,对应'CLB的地址'类型必须为'公网'2、intranet:服务通过'私网'访问,对应CLB的地址类型必须为'私网'

nginx-ingress-controller.yaml

③  相关信息

执行 kubectl edit deploy nginx-ingress-controller -n kube-system--> 打开Ingress Controller的'配置'文件++++++++++++++++++++++  "分割线"​  ++++++++++++++++++++++当您成功创建一个集群后,'默认'情况下:1、集群内部已经部署了一套拥有2个Pod副本的Nginx Ingress Controller服务2、其'前端'挂载在一个'公网SLB'实例上++++++++++++++++++++++  "分割线"​  ++++++++++++++++++++++需求: 查看nginx-ingress-lb服务对应的'公网SLB地址'kubectl -n kube-system get svc nginx-ingress-lb

④    部署Ingress Controller使用私网SLB

私网'SLB' --> 可以和'同一vpc内'非集群内的节点进行'通信'

⑤  无法访问Ingress Controller自己

⑥  Ingress Pod中无法保留源IP

⑦  Ingress规则没有生效

⑧  Nginx Ingress Controller

1、当前'Kubernetes官方维护'的是Nginx Ingress Controller2、ACK基于'社区版'的Nginx Ingress Controller进行了'优化'3、ACK的Nginx Ingress Controller与社区Nginx Ingress Controller完全'兼容'4、支持社区'所有的Annotation'5、您在ACK集群或ACK Serverless集群选择'安装的Nginx Ingress Controller'组件6、即为'定制版'的Nginx Ingress Controller组件备注: Nginx Ingress需要您'自行'维护

⑨  使用Nginx Ingress Controller时注意事项

⑩  修改ingress日志格式

kubectl edit cm nginx-ingress-controller -n kube-system '更新ConfigMap'--> '修改日志格式'  --> log-format-upstream:默认的日志访问记录输出到'/dev/stdout'

做日志切割 

Nginx Ingress高级用法

Nginx Ingress FAQ

二   全景剖析阿里云容器网络数据链路 Flannel

①  阿里云使用Flannel网络插件

1、ifconfig --> 查看'cni0、docker0'2、集群的每个节点会起一个'flannel agent',并且会给每个节点'预分配一个Pod CIDR'备注: 这个Pod CIDR是ACK集群的'Pod CIDR'的'子集'

1、容器的'网络命名空间内'会有一个'eth0'的虚拟网卡,同时存在'下一跳'指向该网卡的路由2、该网卡会作为容器和宿主内核进行数据交换的'出入'口3、容器和宿主机之间的数据链路是通过'veth pair'进行'交换'的思考: 现在我们'已经找到'veth pair其中一个,如何去'找另一个veth'呢?容器内: ip route show查看docker 容器 在'宿主机器'的'pid'docker inspect -f {{.State.Pid}} nginx宿主机: nsenter -n -t 'pid' 进入 '容器'的命名空间 --> 查看 'eth0@ifxxx' 标识在'容器'所在的宿主机: ip addr | grep xxx:  --> 可以找到'vethd7e7c6fd'这个'虚拟'网卡

各种场景的描述

Cloud Controller Manager  CCM

ACK专有集群配置VPC多路由表

1、使用命令kubectl edit cm -n kube-system cloud-config修改cloud-config配置项文件备注: 将配置项文件中的${ROUTE_TABLES_IDS}替换为您的'VPC路由表ID'"routeTableIDs": "${ROUTE_TABLES_IDS}"kubectl edit cm -n kube-system kube-flannel-cfgkubectl -n kube-system get pod -o wide -l app=flannel

三  EDAS相关

EDAS 创建应用后复用CLB 

Spring Cloud 接入 EDAS 服务注册与发现

EDAS'共享注册中心'地址

创建EDAS 微服务空间可以选择共享注册中心

application.propertites 配置信息

堡垒机: http://${nacos_sip}:${nacos_ip}/nacos  --> nacos密码形式'查看'C:\Windows\System32\drivers\etc\hosts

启动轻量级配置及注册中心 

edas-lightweight-server  --> 'tgz'包find / -name  startup.sh8848:用来支持基于Nacos应用的配置管理及服务注册关键: 'jmenv'绑定hosts之后,可以直接访问'轻量级配置及注册中心域名+端口' jmenv.tbsite:8080独立机器: 在'浏览器'中输入轻量级配置及注册中心地址'http://机器IP地址:8080'并回车

更多推荐

关于阿里云 ACK ingress部分补充

本文发布于:2023-11-15 20:21:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1605749.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:阿里   ACK   ingress

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!