在AWS

时间:2016-09-27 16:25:58

标签: amazon-web-services kubernetes aim flannel

我试图在AWS上设置Flannel 0.5,以便让pod相互通信。 我按照https://coreos.com/blog/introducing-flannel-0.5.0-with-aws-and-gce/

的指南进行了操作
  1. 创建了三个" Amazon EC2" AIM的实例,其角色策略 AmazonVPCFullAccess 。 AmazonVPCFullAccess包括所有私有权。我的VPC是" 172.31.0.0/16"

  2. Diable" Source / Destination检查实例"为了 三个实例

  3. 安装k8s,法兰绒并配置它们。
  4. 将类型设置为" aws-vpc"按命令:
      

    etcdctl设置   /atomic.io/network/config' {" Network":" 172.31.0.0/20"," Backend":   {"输入":" aws-vpc"}}'

  5. 启动服务并创建k8s rc

  6. 然后我在/ var / log / messages中遇到错误:

  7.   

    Sep 27 15:18:54 ip-172-31-0-242 flanneld:I0927 15:18:54.023391 02400 etcd.go:129]找到当前IP的租约(172.31.1.0/24)(172.31.0.242) ),重用

         

    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]警告 - 禁用源目的地检查失败:您无权获得执行此操作。 (UnauthorizedOperation)

         

    Sep 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.0.0/16创建172.31.1.0/24的更具体路由

    日志显示类型配置" aws-vpc"作品。 Flannel获得了正确的AWS路由表" rtb-9893a9f1",这意味着AIM角色配置也可以使用。

    但是日志说" UnauthorizedOperation"和" InvalidParameterValue" ... 我现在不知道这个!

    顺便说一句, 没有设置IAM角色并键入aws-vpc ,启动k8s,etcd和flannel之后,路由表包含了法兰绒界面:

      

    [root @ ip-172-31-14-47~] #route -n   内核IP路由表

         

    目标网关Genmask标志指标参考使用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 flannel0

         

    172.31.14.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0

    虽然路线有法兰绒接口,但法兰绒不起作用。原因很清楚:AWS不遵循一个实例的内部路由表。

    设置AIM角色和类型之后,法兰绒不能再添加界面,除了 UnauthorizedOperation和InvalidParameterValue 之外,虽然我保证了AIM角色 AmazonVPCFullAccess

1 个答案:

答案 0 :(得分:1)

问题已解决。

第一期

以下警告可以忽略。当法兰绒awsvpc.go调用“m.disableSrcDestCheck(instanceID,ec2c)”时,会发生这种情况,并且它只是信息级日志。

  

log.Infof(“警告 - 禁用源目标检查失败:%v”,错误)

背景是法兰检查是否已禁用“实例的源/目标检查”。我们不得不说如果日志可以提到“请访问aws控制台以禁用源代码检查”应该会好得多。

  

警告 - 禁用源目标检查失败:您无权执行此操作。 (UnauthorizedOperation)

虽然上面的日志实际上并不严重,但这误导了我,我认为配置策略时犯了一个错误,并花了太多时间在私有网上。

第二期

“超出请求限制”的错误是因为aws API重试次数太多。 “超出限制”有许多可能的条件,超过每个路径表的50个条目。 在停止法兰绒一段时间后,aws api再次提供服务。或者aws api总是拒绝请求。

第三期

最后,破坏法兰绒的根本原因是路线表冲突。分配另一个子网后,问题得以解决。法兰绒日志是正确的,它说“InvalidParameter”。起初,我被第一个“UnauthorizedOperation”误导,并试图改变特权政策......

  

network.go:71]无法初始化网络(类型为aws-vpc):无法添加路由172.31.1.0/24:无法为本地路由172.31.0.0/16创建172.31.1.0/24的更具体路由在路由表rtb-9893a9f1(InvalidParameterValue)