2016-09-27 3 views
1

포드가 서로 통신하도록 AWS에서 플란넬 0.5를 설정하려고합니다. 나는 누구의 역할 정책 이 AmazonVPCFullAccess이다 AIM, 세 "아마존 EC2"인스턴스를 생성 https://coreos.com/blog/introducing-flannel-0.5.0-with-aws-and-gce/AWS의 kubernetes 설치 플란넬

  1. 에서 가이드를 따라 갔다. AmazonVPCFullAccess에는 모든 권한이 포함됩니다. 내 VPC는 ​​K8S, 플란넬를 설치하고이를 구성 세 개의 인스턴스

  2. 은 "172.31.0.0/16"

  3. 줘은 "인스턴스에 대한 소스/목적지 체크인"입니다.

  4. 명령에 의해 "AWS-VPC"와 같은 유형을 설정합니다 : "172.31.0.0/20","Backend": etcdctl이 /atomic.io/network/config '{ "네트워크"로 설정

    { "유형": "AWS-VPC"}} '

  5. 서비스 시작 및 만들 K8S RC

  6. 그럼 내가 얻을 오류의/var가/로그/메시지 :

9 월 27 일 15:18:54 ip-172-31-0-242 flanneld : I0927 15 : 18 : 54.023391 02400 etcd.go : 129] 현재 IP (172.31.1)에 대한 임대 (172.31.1.0/24)를 찾았습니다. I0927 15 : 18 : 54.024120 02,400 etcd.go :

구월 27 15시 18분 54초 IP-172-31-0-242 flanneld 재사용) 0.242 84] 서브넷리스 취득 : 172.31.1.0/24

9 월 27 일 15:18:54 ip-172-31-0-242 flanneld : I0927 15 : 18 : 54.389834 02400 awsvpc.go : 106] 경고 - 소스 대상 확인을 사용하지 못함 :이 작업을 수행 할 수있는 권한이 없습니다. . (UnauthorizedOperation)

구월 27 15시 18분 54초 IP-172-31-0-242 flanneld : I0927 15 : 18 : 54.389882 02,400 awsvpc.go : 116] RouteRouteTableID : RTB-9893a9f1

구월 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를 추가 할 수 없습니다. "

로그가 입력 구성 것을 보여준다 (InvalidParameterValue) 경로 테이블 RTB-9893a9f1 로컬 경로 172.31.0.0/16보다 172.31.1.0/24 대한 더 구체적인 경로를 생성 할 수없는 ws-vpc "가 작동합니다. 그리고 Flannel은 적절한 AWS 라우트 테이블 "rtb-9893a9f1"을 얻습니다. 이는 AIM 역할 구성이 작동 함을 의미합니다.

하지만 로그에 "UnauthorizedOperation"및 "InvalidParameterValue"가 표시됩니다 ... 나는 지금이 사실을 전혀 모릅니다!

[루트 @ IP-172- : BTW

는 K8S, etcd와 플란넬 시작 후 IAM 역할을 설정하고 AWS-VPC를 입력하지 않고 , 라우팅 테이블은 인터페이스 플란넬 포함 31-14-47 ~] # 경로 -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 도커 0

경로에는 인터페이스 플란넬이 있지만, 플란넬은 작동하지 않습니다. 이유는 분명합니다. AWS는 한 인스턴스의 내부 경로 테이블을 따르지 않습니다. 내가 AmazonVPCFullAccess 역할과 AIM을하는 것은 보증이 있지만

그러나 AIM에 역할과 유형을 설정 한 후, 플란넬, UnauthorizedOperation 및 InvalidParameterValue 제외 입은 인터페이스 더 이상을 추가 할 수 없습니다

답변

1

문제가 해결되었습니다. 아래의 경고가 무시 될 수

첫 번째 문제. 이것은 flannel awsvpc.go가 "m.disableSrcDestCheck (instanceID, ec2c)"를 호출하는 동안 발생하며 정보 수준의 로그 일뿐입니다.

log.Infof는 ("경고 - 해제 소스 대상 검사 실패 : %의 V", ERR) 배경은 그 플란넬은 "인스턴스에 대한 소스/목적지 체크인"여부를 확인하다

있다 무능하거나 아닙니다. 로그에 "소스 destionation 검사를 비활성화하기 위해 aws 콘솔로 이동하십시오"라고 말할 수 있다면 훨씬 더 좋을 것이라고 말해야합니다.

경고 발신지 대상 확인 실패 :이 작업을 수행 할 수있는 권한이 없습니다. (무단 조작)

위의 로그는 실제로 심각하지 않지만, 이것은 내가 실수로 정책을 구성하고 privielges에 너무 많은 시간을 소비했다고 생각했습니다.

두 번째 문제는의 오류 "요청 제한이 초과"

때문에 너무 많은 AWS API 시도이다. 경로 테이블 당 50 개 이상의 항목을 초과 할 수있는 조건은 여러 가지가 있습니다. 잠시 동안 플란넬을 멈 추면 aws API가 서비스를 다시 제공합니다. 또는 aws api는 항상 요청을 거부합니다.

세 번째 문제는

마지막으로, 플란넬 파괴의 근본 원인은 경로 테이블의 충돌이다. 다른 서브넷을 할당하면 문제가 해결됩니다. Flannel 로그가 "InvalidParameter"라고 표시됩니다. 처음에는 ... 최초의 "UnauthorizedOperation"에 의해 오해와 특권 정책을 변경하려했다

network.go : 경로 172.31를 추가 할 수 없습니다 : 71] 네트워크 (유형 AWS-VPC)를 초기화하지 못했습니다 .1.0/24 : 경로 테이블 rtb-9893a9f1 (InvalidParameterValue)의 로컬 경로 172.31.0.0/16보다 더 구체적인 경로 172.31.1.0/24을 만들 수 없습니다.