在AWS上安装kubernetes遇到了挺多问题的,主要是网络问题,受限于aws的各种安全机制。

推荐使用kops安装。新版本安装可以使用local模式,不需要对dns做额外配置。如果用非local模式,需要配合route 53,并创建一个域名用来绑定kubernetes集群。这里的域名可以是internal也可以是external。

如果是使用自定义的域名,要注意dns更新的机制。虽然aws route 53的dns更新是很快的,但是ttl默认设置的时间还是很长的,貌似要两天。所以如果改了dns,可能要两天才能生效,或者提前修改ttl,然后再更改dns。

还是local的模式好用,不需要配置dns,kops使用aws的elb做网关。

接下来要解决的问题是vpc。aws上不同的应用可能属于不同的vpc,不同的vpc之间是不能互相访问的。比如生产的数据库的vpc=sg-01,而kubernetes自己的vpc=sg-02。这时候kubernetes内的pod是无法访问DB的。

这里需要再vpc中加入peer connection,将两个vpc合并起来,并在各自vpc的route table上加上对方的路由解析。最后需要enable dns解析!我就是这一步漏掉了,导致pod无法访问db。理论上这时候pod就可以访问不同vpc的db了。