码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 关于阿里云 ACK ingress部分补充


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

    跟唐老师学习网络

    一  Nginx Ingress管理

    ①  流量走向

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

    支持的注解

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

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

    ②  阿里云厂商的特殊注解

    1. '原Ingress Class'为nginx-intranet
    2. annotations:
    3. kubernetes.io/ingress.class: nginx-intranet
    4. ACK 自身的'ingress' --> ack-ingress-nginx'或'ack-ingress-nginx-v1

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

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

    nginx-ingress-controller.yaml

    ③  相关信息

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

    ④    部署Ingress Controller使用私网SLB

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

    ⑤  无法访问Ingress Controller自己

    ⑥  Ingress Pod中无法保留源IP

    ⑦  Ingress规则没有生效

    ⑧  Nginx Ingress Controller

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

    ⑨  使用Nginx Ingress Controller时注意事项

    ⑩  修改ingress日志格式

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

    做日志切割 

    Nginx Ingress高级用法

    Nginx Ingress FAQ

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

    ①  阿里云使用Flannel网络插件

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

    ②

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

    各种场景的描述

    Cloud Controller Manager  CCM

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

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

    三  EDAS相关

    EDAS 创建应用后复用CLB 

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

    EDAS'共享注册中心'地址

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

    application.propertites 配置信息

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

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

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

  • 相关阅读:
    ubuntu 20.04安装开发环境总结_安装python
    【SpringCloud】微服务技术栈入门7 - DSL使用
    Win11怎么显示固定应用?
    C++类的六个默认成员函数(总结)
    【图论】图文详解Tarjan算法有向图缩点
    LeetCode2562
    xen-trap
    Python爬虫——Scrapy 简介和安装
    Spring Security 在登录时如何添加图形验证码
    期货开户流程和手续费如何调整
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/134297895
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号