ポッドが相互に通信できるようにするために、AWS で Flannel 0.5 をセットアップしようとしています。https://coreos.com/blog/introducing-flannel-0.5.0-with-aws-and-gce/のガイドに従いました
ロールポリシーがAmazonVPCFullAccessである AIM を使用して 3 つの「Amazon EC2」インスタンスを作成しました。AmazonVPCFullAccess にはすべての権限が含まれます。私の VPC は「172.31.0.0/16」です
3 つのインスタンスの「インスタンスのソース/宛先チェック」を無効にします。
- k8s、フランネルをインストールして構成します。
- コマンドでタイプを「aws-vpc」に設定します。
etcdctl set /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) が見つかり、再利用
9 月 27 日 15:18:54 ip-172-31-0-242 flanneld: I0927 15:18:54.024120 02400 etcd.go: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] 警告 - ソース宛先チェックの無効化に失敗しました: この操作を実行する権限がありません。(不正操作)
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.0.0/16 よりも 172.31.1.0/24 のより具体的なルートを作成できません
ログは、タイプ構成「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 ルーティング テーブル
宛先ゲートウェイ Genmask フラグ メトリック 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 docker0
ルートにはインターフェースフランネルがありましたが、フランネルは機能しませんでした。理由は明らかです。AWS は 1 つのインスタンスの内部ルート テーブルに従いません。
しかし、AIM ロールとタイプを設定した後、Flannel はインターフェイスを追加できなくなり、 UnauthorizedOperation と InvalidParameterValueの例外に悩まされましたが、ロールAmazonVPCFullAccessを持つ AIM を保証しました。