Google Container Engine (GKE)はKubernetesのクラスタを作り,Dockerコンテナを大量に上げるまで自動でやってくれたりするサービス.
VMコンテナ自体はGCEと同様に管理できます.
で,クラスタなんかもGoogle Cloud SDKのgcloudコマンドで色々と手元からCLIでできるのですが,ハマりました.
なぜか手元ではタイムアウト.次のようなメッセージが飛びます
これは,一度作ったクラスタを削除して,また同じ名前でクラスタを作成した後の操作でした.
実はこれがハマったところのポイントで,
なので,以前同じ名前でクラスタを作って,gcloudコマンドを使った事がある場合,その前の時のIPアドレスをつかってkubectlを発行するため,タイムアウトしてしまうというオチでした.
このcluster.jsonを削除してしまえば解決します.
VMコンテナ自体はGCEと同様に管理できます.
で,クラスタなんかもGoogle Cloud SDKのgcloudコマンドで色々と手元からCLIでできるのですが,ハマりました.
ハマりポイント
gcloud preview container kubectl create -f sample.json --cluster="<CLUSTER NAME>"これでsample.jsonにswagger形式で記述したクラスタが上がる……はずなのですが
なぜか手元ではタイムアウト.次のようなメッセージが飛びます
ERROR: F0326 10:43:53.728513 5117 get.go:166] Get https://130.211.179.83/api/v1beta1/pods?namespace=default: dial tcp 130.211.179.83:443: i/o timeoutkubectl get podsなど,他のkubectlのコマンドも同様にタイムアウトしてハマってました.
これは,一度作ったクラスタを削除して,また同じ名前でクラスタを作成した後の操作でした.
実はこれがハマったところのポイントで,
$HOME/.config/gcloud/kubernetes/<PROJECT>.<ZONE>.<CLUSTER NAME>/に配置されている,cluster.jsonに,
{のような形式でgcloudコマンドを通してそのプロジェクトへkubectlをする時のエンドポイントのIPアドレスがキャッシュされてました.
"endpoint": "130.211.179.83"
}
なので,以前同じ名前でクラスタを作って,gcloudコマンドを使った事がある場合,その前の時のIPアドレスをつかってkubectlを発行するため,タイムアウトしてしまうというオチでした.
このcluster.jsonを削除してしまえば解決します.