1 阿里云ecs不支持keepalived vip

1.1 场景描述

本来计划用keepalived配合nginx做VIP漂移,用以反代多台master的apiserver的6443端口,结果部署了vip后,该VIP在其他ecs上访问不到,以为是自己的问题搞了好久搞不定,经工单咨询阿里云工程师,明确告知ecs不支持vip

截图如下:

所以只能只用SLB来实现了,但是slb也有坑,详见解决办法

1.2 解决办法和结论

  1. 阿里云不能使用vip,要用vip只能走slb
  2. slb已经没有免费的了,都要收费,包括内网slb
  3. 不支持手动指定slb的IP地址,所以之前生成的api证书之类的重新弄吧
  4. 要反代https(apiserver),只能用slb的四层反代
  5. slb四层TCP反代(7443),不能直接反代到服务提供者上(即apiserver:6443)
  6. 只能将 tcp反代,先代理到另一个ecs上,ecs再用nginx之类代理到apiserver
  7. 即slb(tcp:7443)-->nginx(tcp:7443)-->apiserver(https:6443)

    (nginx和apiserver不能是同一个机器)

2 阿里云ecs不支持flannel的gw模式

2.1 场景描述

后端node节点不多,且都在同一个vpc下面,计划直接用flannel的host-gw模式来实现容器跨节点通信

选择原因如下:

  1. flannel简单好用,node节点又不多
  2. gw模式只是增加了路由转发条目,性能极高
  3. node节点都在同一个vpc下面,想着二层互通,正好满足gw模式的要求

兴冲冲的开始拿两台ecs部署验证,部署过程很简单,路由条目也自动添加了,但是就是不能互相ping通,又是一顿自我检查没找出原因,工单求助阿里

主要截图如下

2.2 结论和解决办法

2.2.1 结论:

阿里云同一vpc下的ecs,二层不互通

2.2.2 办法1:添加路由

按工程师的要求,在阿里云的路由表中添加了到各容器网段的路由指向后,pod间通信成功,但是问题在于

  1. 添加一个node节点就得来改一次路由表
  2. 路由表是全局生效的,路由器下所有ecs都能访问pod
  3. 要想不全局访问,就得在用安全组来控制

基于上诉问题,最终放弃了改方案

2.2.3 办法2:vxlan模式

gw模式走不通后,只好用flannel的vxlan模式,虽说有性能损耗,但通过压测工具实测,也没有网传的30%-40%的损耗,大概在5%-10%区间,能接受

至此在阿里云ecs部署k8s的两大坑就踩完了

有用请点个推荐,谢了您呢

用阿里云ecs部署kubernetes/K8S的坑(VIP、slb、flannel、gw模式)的更多相关文章

  1. 阿里云ECS安装Kubernetes问题收集与解答

    问题1 kubernetes pod启动报错open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such fil ...

  2. 阿里云ECS部署ES

    背景 最近越来越多的公司把业务搬迁到云上,公司也有这个计划,自己抽时间在阿里云和Azure上做了一些小的尝试,现在把阿里云上部署ES和kibana记录下来.为以后做一个参考,也希望对其他人有帮助. 这 ...

  3. 部署:阿里云ECS部署Docker CE

    1 部署阿里云ECS,选择CentOS操作系统,并启动实例: 2 部署Docker CE: a.检查centos版本: $ cat /etc/redhat-release CentOS Linux r ...

  4. Kubernetes实战总结 - 阿里云ECS自建K8S集群

    一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9b ...

  5. 阿里云ECS部署Redis主备哨兵集群遇到的问题

    一.部署 详细部署步骤:https://blog.csdn.net/lihongtai/article/details/82826809 Redis5.0版本需要注意的参数配置:https://www ...

  6. ECS7天实践进阶训练营Day2:基于阿里云ECS部署MediaWiki

    一.概述 MediaWiki是全球最著名的开源Wiki程序,运行于PHP+MySQL环境,MediaWiki从2002年被作为维基百科的系统软件,并由大量其他应用实例(例如萌娘百科),因此MediaW ...

  7. 阿里云上部署kafka--遇到的坑

    阿里云防火墙关闭,并且配置规则.不然会导致访问不到服务. 问题一: Caused by: java.net.UnknownHostException: iZuf68tztea6l5ccdz7wemZ: ...

  8. Linux学习笔记之阿里云ECS部署LAMP环境

    LAMP指Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件.它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有 ...

  9. 阿里云ECS部署maven项目

    1.配置JDK和tomcat: https://www.cnblogs.com/congcongdi/p/11227771.html 2.使用eclipse打包项目 在项目上点击右键-->run ...

随机推荐

  1. Os-hackNos-特权文件提权

    一 信息收集 netdiscover -i eth0 -r 10.10.10.0/24 扫描ip nmap -sP 192.168.43.0/24 扫描开放的端口 使用"-sP"选 ...

  2. 超详细 安装VMware Workstation,并安装WIN10操作系统连接外网 步骤指导

    首先下载VMware Workstation15.1版本,我保存在迅雷链接里面,下载速度非常可观. 链接:https://pan.xunlei.com/s/VMRSt6hHMZXEmPZCm6gJcG ...

  3. MongoDB查询优化--explain,慢日志

    引入 与Mysql数据库一样,MongoDB也有自己的查询优化工具,explain和慢日志 explain shell命令格式 db.collection.explain().<method(. ...

  4. 获取html中某些标签的值

    一.获取单选按钮radio的值 <!doctype html> <html lang="en"> <head> <meta charset ...

  5. 基于scrapy框架的分布式爬虫

    分布式 概念:可以使用多台电脑组件一个分布式机群,让其执行同一组程序,对同一组网络资源进行联合爬取. 原生的scrapy是无法实现分布式 调度器无法被共享 管道无法被共享 基于 scrapy+redi ...

  6. Java并发包源码学习系列:阻塞队列BlockingQueue及实现原理分析

    目录 本篇要点 什么是阻塞队列 阻塞队列提供的方法 阻塞队列的七种实现 TransferQueue和BlockingQueue的区别 1.ArrayBlockingQueue 2.LinkedBloc ...

  7. Python+Selenium+Unittest实现PO模式web自动化框架(2)

    1.Common目录下的具体模块讲解. 2.basepage.py basepage.py模块里面是封装的对元素的操作.例如:查找元素.点击元素.文本输入等等. # --^_^-- coding:ut ...

  8. ArchLinux安装后所需要的环境和工具

    ArchLinux安装后所需要的环境和工具 工具: Dolphin 文件管理器 ntfs-3G 移动硬盘挂载 octopi 实时检查更新 KDE Connect 手机电脑远程连接 DBeaver Co ...

  9. 前序遍历 排序 二叉搜索树 递归函数的数学定义 return 递归函数不能定义为内联函数 f(x0)由f(f(x0))决定

    遍历二叉树   traversing binary tree 线索二叉树 threaded binary tree 线索链表 线索化 1. 二叉树3个基本单元组成:根节点.左子树.右子树 以L.D.R ...

  10. 强制杀死进程后,进程相关的socket未必发送RST

    强制杀死进程后,进程相关的socket未必发送RST