Pivotal Knowledge Base

フォローする

Ops Managerが予期した以上 のIPアドレスを使用している、もしくは使用可能なIPアドレスが十分ではない場合がある。

事象

Ops Manager 経由で、Pivotal Cloud Foundry® もしくはサービスタイルのデプロイを試みた際に、次のエラーが表示される。" Not enough available IPs, IP cannot be allocated for 'xxxx'."

もしくは、 予期していた以上のIPアドレスをPCFが使用しているかの様に見える。

製品

Pivotal Cloud Foundry 1.3.x、1.4.x、並びに 1.5.x

原因

全てのIPアドレスをPCFが使い果たすことや、予期していた以上のIPアドレスをPivotal Cloud Foundryが使用している様に見えることについては、一般的に問題の原因は 一つではなく、いくつかの異なる原因があると考えられる。

Ops Manager上のプロダクトリソースページに列挙された、それぞれのVMに一つのIPアドレスが使用されるのは、ご推察の通りである。一つのVMに対して、一つのIPアドレスのみを使用することを想定するのが一般的かと思われる。

しかし、想定とは異なり、Ops Managerは一時的なVMであっても全てのVMにIPアドレスを割り振る。つまり、コンパイルやエランド用途の、短時間しか稼働しないVMにもIPアドレスを割り振る。また、別の言い方としては、Ops Managerがその一時VMのためのIPアドレスを確保しているとも言える。

事態を最大限に複雑化しているのはスタティック IP アドレスの扱いについてである。Ops Managerは、スタティックIPアドレスを要求する各々のVMインスタンスに対して、二つのIPアドレスを割り振る。一つ目のIPアドレスはVMのブートストラップに使用される。二つ目のIPアドレスは、VMが稼働するためのスタティックIPアドレスとして割り振られる。一つ目のブートストラップ用のIPアドレスはその後使用されることはないが、そのVMに割り当てられているため、他のVMは使用出来ない。  

事例としては、一般的にHAProxy VMが挙げられる。なぜならば、しばしユーザーによってスタティックIPアドレスが与えられるからである。しかしながら、ユーザーの入力からではなく、Ops Manager自体からスタティックIPアドレスを割り当てられるVMもある。つまり、ユーザーが想定した以上にスタティックIPアドレスが使用されることを意味する。

解決策

現時点ではPivotal Cloud Foundryによって使用されているIPアドレスを容易に確認する方法は存在しない。しかし、インストール設定ファイルを見ることで、使用しているIPアドレスを調査することは出来る。以下がその手順である。

  1. Web ブラウザより、次のURLでOps Manager GUIに移動する: https://<your-om-ip-or-dns>/debug/files
  2. `actual_installation @`という検索ワードで当該 Web ページ内検索を行う。その行の下に、Pivotal Cloud Foundryのインストール設定ファイルがある。その設定ファイルをテキストエディタにコピー&ペーストする。
  3. テキストエディタで"ips:"を検索し、IPアドレスを列挙したブロックを参照する。以下、記載例を示す。
      ips:
        nats-part-a4600306c7ba2773f6f5:
        - 10.64.37.12
        etcd_server-part-5974eedd6e5f36ef11f1:
        - 10.64.37.13
        nfs_server-part-5907c1447f30c9366c7b:
        - 10.64.37.14
        ccdb-part-26376c994b4837f08622:
        - 10.64.37.15
        ...
    このIPが記載されたブロックは以下の形式で記述されている。
      ips:
        <vm-name>:
        - ip#1
        - ip#2
        - etc..
    <next-vm-name>:
    - ip#1
    - ip#2
    - etc..

この形式の箇所を参照することで、特定のVMに割り振られたIPアドレスが分かる。また、これらを数えることで、合計で幾つのIPアドレスが割り振られているかが分かる。

このIPブロック内の、dynamic_for_staticという部分について説明する。上記の様にスタティックIPアドレスを要求するVMにIPアドレスが二つ割り当てられる。dynamic_for_staticの部分は、スタティックIPアドレスを保有しているVMのブートストラップ用のIPアドレスを記載している。

補足をすると、デプロイされたそれぞれのタイルは、それぞれが自身のIPブロックを持っている。つまり最小で二つのIPブロックを持つ。一つはDirectorタイルのためであり、もう一つはPCFタイルのためである。追加されるそれぞれのサービスタイルも同様に、それぞれがIPブロックを持つ。

影響や危険性

Ops Managerからコピーして作成したインストール設定ファイルには細心の注意を払うこと 。このファイルには、IPアドレス、プライベートキー、ユーザー名(パスワードは隠蔽されている)等の、対象環境におけるとても重要な情報が含まれている。ファイルを調査した後に必ず削除すること。

コメント

Powered by Zendesk