Shohhei1126's Blog

Kubernetes Operations (kops) でAWSの既存のリソースを使う

既存のVPCやSubnetなどの追加は kops create cluster コマンドにオプションで指定できる。

セキュリティグループは追加されるだけなので自動で作成されるセキュリティグループを外すことはできなかった。複数指定する場合はカンマ区切りで。

kops create cluster \
    --zones=ap-northeast-1a \
    --node-size t2.micro \
    --master-size t2.micro \
    --vpc {VPC ID} \
    --image {AMI ID} \
    --master-security-groups {SG ID} \
    --node-security-groups {SG ID} \
    cluster01.k8s003.shohhei1126.jp

見たまんまなので特に補足はなし。

自動で作成されるセキュリティグループのSSHポートが現状22固定で変更出来ないので --admin-access {CIDR} で制限するしかなさそう。

https://github.com/kubernetes/kops/blob/1.6.2/pkg/model/external_access.go#L55

HTTPSのポートも制限されるけど仕方ない。

※ 2017/08/07追記

apiとsshそれぞれ個別に指定できた。

$ kops version
Version 1.7.0-alpha.1 (git-ada0feb)
$ kops edit cluster
  kubernetesApiAccess:
  - **.**.**.**/24
  ...
  sshAccess:
  - **.**.**.**/24

Subnetはクラスタ作成後 kops edit cluster で変更。

$ kops edit cluster cluster01.k8s003.shohhei1126.jp
  ...
  subnets:
  - cidr: 192.168.10.0/24 // 消す 
    id: {Subnet ID} // 追加
    name: ap-northeast-1a
    type: Public
    zone: ap-northeast-1a

最後に以下でクラスタを作成する。

$ kops update cluster cluster01.k8s003.shohhei1126.jp --yes

2017/08/07追記

本番運用している既存環境にkops当てるのはやっぱり不安が残る。

後から確認出来るように --v オプションでkopsのデバッグログをファイルに吐くとよいかも。

$ kops update cluster cluster01.k8s003.shohhei1126.jp --v=100 --yes 2> update_cluster.log 

stgerrに出るので 2> を使う。

--v=100 と大きい値指定してるけどどこまで使われているのか分からなかったのでこうしてます。(ソース見ると12か13くらいまでは確認できた)