今回はRancherからVULTR APIを使ってDokerホストを追加し、DockerホストをRancerの管理下に置いていきます。
VULTRは、DigitalOceanと同じようにAPI経由でサーバを起動したりすることが出来ます。
Rancherはデフォルトでは
- Custom(自前で用意する)
- Amazon EC2
- Azure
- DigitalOcean
が用意されていますが、一度設定を行うことで他のクラウドプロバイダも利用することが出来ます。VULTRの他に、SoftLayer・Packetなども利用可能です。
VULTRのAPIを有効化
VULTRはデフォルトでAPIが無効になっています。
[Account] > [API] からAPIを有効化します。
Your API KEY が APIキーになります。
APIのアクセス制限
念のためAPIのアクセス元を制限しましょう。
Access ControllからRancher Serverが稼働しているホストのIPアドレスを入れ、/(スラッシュ)以降に32
を入力します。
こうすることにより、Rancher ServerのホストからのAPI呼び出し以外はすべてリジェクトされます。
RancherにVULTRクラウドプロバイダを有効化
VULTRのDocker Machineを有効化します。
Rancher Serverのナビゲーションから、Infrastracture > Hosts
を選択します。
まだホストが存在しないので、上の画像のように表示されます。
Add Host
でホストを追加します。
このように、CUSTOM / Amazon EC2 / Azure / Digital Ocean しかありませんので、4つクラウドプロバイダ・アイコンの下に小さくあるManage available machine drivers
をクリックしてください。
一番下にさりげなーくvultr
がありますので、vultrの右上にあるActivate
ボタンを押します。
少し待っているとActive
になります。
もう一度、Infrastracture > Hosts
からAdd Host
を選ぶと、
このようにOther
が増えています。また、Driverがvultr
になっています。
RancherからDockerホストを追加する
それでは、Add Host
から実際にホストを追加してみましょう。
項目 | 入力内容 | 備考 |
---|---|---|
Name | (Host名) | 任意 |
Driver* | vultr | そのまま |
apiKey | (VULTR側のAPI KEY) | VULTR側のAPI KEYを入力してください |
osId | 179 | CoreOS。 OS一覧から選択可能 |
planId | 94 | 2048 MB RAM,45 GB SSD,3.00 TB BW。プラン一覧から選択可能 |
priavateNetWorking | オン | Private Networkに入れるかどうか |
pxeScript | 0 | そのまま |
regionId | 25 | Tokyo。リージョン一覧から選択可能 |
sshUser | root | そのまま |
userdata | (空白) | そのまま |
APIの詳細は、VULTR API Referenceを参考にしてください。
Labelsはホスト起動後でも変更可能ですが、例えば
Key | Value | |
---|---|---|
env | production | 環境は? |
tier | web | どの層か?(web, worker, db, lb(ロードバランサ)等) |
を入れておくと、後々ホストが増えてきたときに、AホストではXコンテナを起動する、BホストではXコンテナを起動しない等の細かいスケジューリングが可能です。
スケジューリングについては、以降詳しくご紹介させていただきます。
すべての準備が出来ました!CREATE
を押してホストを起動してください。
しばらくすると、Rancherにホストが追加されます。
VULTR側でもホストが追加されています。
また、RancherはSSHキーをホスト毎に作ってVULTRホストにアクセスしています。
このように、VULTRでも比較的簡単にDockerホストを登録することが出来ました。
Rancher側からホストを削除するとどうなるか?
試してみるまでは、VULTR側は手動でDestroyする必要があると予想していましたが、予想に反して、Rancher側からホストを削除するとVULTR側のホストもキレイにDestroyされるようです!
次回予告
次回からはRancherの基本構成であるStack
を構成していきたいと思います。