【发布时间】:2017-02-05 09:20:03
【问题描述】:
我正在尝试在 AWS 上设置 Flannel 0.5,以便让 pod 相互通信。 我按照https://coreos.com/blog/introducing-flannel-0.5.0-with-aws-and-gce/的指南进行操作
使用 AIM 创建了三个“Amazon EC2”实例,其角色策略 是 AmazonVPCFullAccess。 AmazonVPCFullAccess 包括所有权限。我的 VPC 是“172.31.0.0/16”
禁用“实例的源/目标检查” 三个实例
- 安装 k8s、flannel 并配置它们。
- 通过命令将类型设置为“aws-vpc”:
etcdctl 设置 /atomic.io/network/config '{"网络":"172.31.0.0/20","后端": {“类型”:“aws-vpc”}}'
启动服务并创建k8s rc
然后我在 /var/log/messages 中收到错误:
Sep 27 15:18:54 ip-172-31-0-242 flanneld: I0927 15:18:54.023391 02400 etcd.go:129] 找到当前 IP (172.31.0.242) 的租约 (172.31.1.0/24) ),重用
Sep 27 15:18:54 ip-172-31-0-242 flanneld: I0927 15:18:54.024120 02400 etcd.go:84] 获得子网租约:172.31.1.0/24
Sep 27 15:18:54 ip-172-31-0-242 flanneld: I0927 15:18:54.389834 02400 awsvpc.go:106] 警告 - 禁用源目标检查失败:您无权执行此操作。 (未经授权的操作)
9 月 27 日 15:18:54 ip-172-31-0-242 flanneld: I0927 15:18:54.389882 02400 awsvpc.go:116] RouteRouteTableID: rtb-9893a9f1
Sep 27 15:18:54 ip-172-31-0-242 flanneld: E0927 15:18:54.511297 02400 network.go:71] 无法初始化网络(类型 aws-vpc):无法添加路由 172.31.1.0/24:无法在路由表 rtb-9893a9f1 (InvalidParameterValue) 中为 172.31.1.0/24 创建比本地路由 172.31.0.0/16 更具体的路由
日志显示类型配置“aws-vpc”有效。 Flannel 获得了正确的 AWS 路由表“rtb-9893a9f1”,这意味着 AIM 角色配置也可以工作。
但是日志显示“UnauthorizedOperation”和“InvalidParameterValue”... 我现在对此一无所知!
顺便说一句, 不设置IAM角色,输入aws-vpc,启动k8s、etcd和flannel后,路由表包含接口flannel:
[root@ip-172-31-14-47 ~]# route -n 内核IP路由表
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.31.0.1 0.0.0.0 UG 0 0 0 eth0
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 法兰绒0
172.31.14.0 0.0.0.0 255.255.255.0 U 0 0 0 码头工人0
虽然路由有接口flannel,但是flannel不能工作。原因很清楚:AWS 不遵循一个实例的内部路由表。
但是设置了AIM角色和类型后,flannel不能再添加接口了,遇到UnauthorizedOperation和InvalidParameterValue的异常,虽然我已经保证了AIM具有角色 AmazonVPCFullAccess
【问题讨论】:
标签: amazon-web-services kubernetes aim flannel