先说一句:朋友们,别拿云服务器IP地址和牙刷对比,想跑进循环就没完没了。云服务器IP,究竟是一瓶不变的矿泉水还是那种“半夜换换”,像老司机说的“巴拉巴拉”;先听听这行家是怎么说的。网上各大云计算人家也写了篇大作,结论却像动画片的剧情,除了“可变”的东西,还能听到些“固定”的信号。
以AWS的EC2实例为例,跟它的IP说话前,你需要分辨两种IP:弹性IP和私网IP。弹性IP(t 命名)是这行里的“主宰”,它可以与实例绑定和解绑,几乎像你把自己的微信号绑定到QQ一样,一旦绑定好,除非你自己拆开,否则不会跑。私网IP则是隧道里的一条小河,跑在云城内部,偶尔被同一子网里的伙伴们共享。有人把弹性IP说成“永不变”,但你得知道这条道路只是在灰色云端上通行,若你离线或者被挂掉,AWS会把它撤掉,后面就要重新申请。
进入百度百科和阿里云的官方白皮书,随手翻翻你会发现,阿里云也只承诺“弹性IP”是“可配置”而非“固化”。服务器称为“容器类似的东西”,被更新时其IP会在侧链切换。但这并不是说你不能用fixed IP去跑地面网。阿里允许你在ECS里配置“固定IP”,基本上它会把该IP在子网内部永久托管给你,除非你手动释放。俗话说,没没几条事物是“定格”的,技术里更没有绝对值。
再来把Kubernetes的Pods弹性IP顾虑扔进讨论。Pods的IP非常短命,随时可能被杀掉并生成新实例。与此相对应的是Service的ClusterIP,属于灰口刹车。它本身是“固定”的,喷到集群内,但能保持不变。只要你不干掉它的定义,它就不会掉,当然当你重启整个集群,它会按你目录的定义重建。
如果你是that你,比较看重外网访问标识,这里别担心,你可以在VPC上设立NAT网关,然后把弹性IP绑定进去,外网就像你吃饭时的菜单,那上一页点餐菜号不变,倒是你想换菜求不变。
最常被误解的地方是:我们说IP“固定”时,其实是“相对固定”。所以,如果你用的是p2、p3或psl的实例,云服务商会把你的IP全部写进《保安名单》里,别小看了这位隐形墙。当你在多租户环境里跑程序时,静态IP能在你和外部世界之间构建一座桥梁。
接触到的一个案例:我在镜像的gNodeB小实验里,先把IP拉出来做标题,结果一个流氓把它记为可随时变动的玩具。结果我在AWS上跑的容器轨迹被一脚踢去。那时我才意识到,IP不是永远“固定”,而是取决于你给它写的“敲球”规则。
看懂了,现在你可以把云服务器IP变成自己的“专属号表”。如果你想玩游戏