はじめに
Vagrant と VirtualBox を利用した IBM Cloud Private ローカル環境構築を紹介します。vagrant up
一発で VirualBox 上の Ubuntu 16.04 と LXC コンテナを3つ作成し、ICP をインストールします。同様のインストールを Docker コンテナ + ゼロからインストールするよりもメモリ使用量を抑えられますし、手順的にラクです。
すでに別のインストール記事も公開されていますので、そちらも参照ください。
PCにICP 3.1.2 をたった3行でインストールする
https://qiita.com/yurak/items/d56575635bca0061155d
導入手順
以下のドキュメントに従って導入します。
https://github.com/IBM/deploy-ibm-cloud-private/blob/master/docs/deploy-vagrant.md
環境
- macOS 10.14.4 (Mojave)
- VirtualBox 5.2.26
- Vagrant 2.2.3
手順
VirtualBox をインストールします。
https://www.virtualbox.org/wiki/Downloads
Vagrant をインストールします。
https://www.vagrantup.com/downloads.html
GitHub からリポジトリをクローンします。
git clone https://github.com/IBM/deploy-ibm-cloud-private.git
cd deploy-ibm-cloud-private
必要に応じて Vagrantfile を編集します。
デフォルトではメモリーに 8GB を割り当てています。環境に応じて増減してください。また admin
のパスワードもここで指定しています。
# should be sufficent on laptops with 16GiB of RAM (but you won't want to run any apps
# while this vm is running)
memory = '8192'
# Default admin password - ICP 3.1.2 now requires 32 characters by default
default_admin_password = "S3cure-icp-admin-passw0rd-default"
vagrant up
で環境構築を開始します。途中、ラインセンスの確認やホスト環境の管理者パスワードを求められます。
~ $ vagrant up
################################################################################
# You must accept the terms of the Software License under which we are #
# providing the IBM Cloud Private community edition software. #
# #
# See license terms here: https://hub.docker.com/r/ibmcom/icp-inception/ #
################################################################################
Do You Accept the Terms of the Software License? [Y|n]
Y
License Terms Accepted!
:
約10分後、Ubuntu 16.04 のインストールと起動、LXC コンテナの作成と起動が完了すると以下のメッセージが表示され、IBM Cloud Private Community Edition のインストールが始まります。
==> icp: Running provisioner: shell...
icp: Running: script: wait_for_worker_nodes_to_boot
icp:
icp: Preparing nodes for IBM Cloud Private community edition cluster installation.
icp: This process will take approximately 10-20 minutes depending on network speeds.
icp: Take a break and go grab a cup of coffee, we'll keep working on this while you're away ;-)
icp: .
上のメッセージでは10〜20分後ですが、私の環境では裏で別の仕事をしていたためか 約1時間かかって、導入が完了し、IBM の最初期のロゴとログイン情報が表示されました。なおパスワードはVagrantfile
icp: Running: script: happy_dance
icp:
icp: O MMM .MM MM7
icp: ..M MMMM MMM DMMM MMM.MMMMO.
icp: M.MM MMMM..MMM MMMM.MMM.NMMMMMM.
icp: MM MM+MMM:. ,MM: MMMM MMM MMMMMM
icp: MM=.MM MMM MMM. MMMM?MMM MMM ..~ :MMM.
icp: MM..MM.MM,OMMI MMM .MMMMMMMM MMM MMMMMMM
icp: MMMM MM.NMM ~MMM MMM..MMMMMMMM MMM. OMMMMMMMM
icp: ..MM.MMNMM.MM? MMM .MMM..MMMMMMMM MMM ~MM+ ,MM
icp: .MMM.MM:MM.?MM. .MMM IMMM :MMMMMMMM MMM .MMM. .
icp: .MMMMMMMMMM.MMM .MMM~.MMMD MMMIMMMMM MMMMMM. MMM .,MMMM.
icp: NMMMMMM.MM: MM. MMM.MMM, MMM.MMMMM MMMMMM: =MMM MMMMMM
icp: ..=MM,MMM.MMM MMM. .MMM.MMM MMM.8MMMM MMM. , .MMM .MMM :
icp: MM MMM.MMM.MMM MMM MMM MMM. MMM MMMM MMM. MMMM.MMMM8.
icp: M . MMM.MMMZ7MM MM. .MMM MMM MMM. MMMM MMM. .MMMM. MMMMMM .
icp: M M.:MMMMMMM MMM.=MM MMM.MMM MMM MMMM MMM MMM .,MMMM MM
icp: M, M.7MMMMM..MMMMMMM.M ~MMM.MMM .MMM. MMMM MMM .MMM ? .MMM.M.M.
icp: MM. N MMMMMM MMM=MMMM MMM. MMM MMMM MMM. .DMM, MMMM MMMMMMMM M M
icp: MMMM. MM. MMMM..MMMMMMM MMM. MMM MMMM :MMMMMZMMMMMMMMM MMMMM .M.$M
icp: MM.MMMMM.. MMM . ,MMM8 MMM .MMM .MMM DMMMMM, MMMMM ..MM.. MM
icp: MM MM.MMMMMMM: ~MMMM? ... :IZ MM,.NNO?,.. ZMM7.. MMMMMM
icp: MM MM MM MMMMMMMMMMMM= .=MMMMMMMMMMMMNNMMMMMMMMMMMO... .8MMMMMMMMMMM
icp: MM MM .M.M: .MZMMMMMMMMMMMMMMMMMZ: . . ......:INMMMMMMMMMMMMMMMMM :MMMM
icp: MM MM..M.MM,7MM : MM .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.MMM MM :MMMM
icp: MM MM M..MM,7MM :MMMM MM.MM MM =MMM.MM: ...M .MM.. .MM.:M MMM. MM :MMMM
icp: NMMMM M..MM,7MM .:MM MM MM ..M =MM MMMM MMM .M MMM MM. M MM8~ MM :M MM
icp: $MMMMMM.MM,7MM :MMMM . MM Z.M =MM M MMMM MMM .M MMM =M.. MM +.MM .NM8
icp: .MMMMMMM+7MM ~MMMM M: MM ZM .=MM M =MMM MMM .M.MMM.MM.M. MM.MMIMMMMMM
icp: MM . MMMMMMMMMN.MM MM.MM ZM, =M . MMM MMM .M .MI MM.MM M?MMMMMMMM
icp: MMM .. 8MMMMMMMMMMMMMDOMM.~M.MMM.MMM.MMM..MM, 7MMMMMMMMMMMMM.
icp: MMMM MMM : ..,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$ .
icp: .MMMMMMMM MM$ . .. ..:$MMMMMMMMMMMMMMMN=.. . MMMMMMM.
icp: MMMMMMMM MMM MMMM MMM. .,.. . . . IMM MMMMMM MMM7. I.
icp: MMMMOMM.~MMM. MMMMM7.MMZ ,MM: .MMM .MMM MMM .MMMMMM $MM,
icp: DM M MM MMMM MMM 8 MM, OMM MMM .MMM. MMM ?MM MMMM.
icp: .MMZ MM.MM=MN MMM MM MMM .MMM MMMM MMM MMM MMMM
icp: , MM MM MM MM+ MM. MMM. MMM MMMM:MMM MMMMMM MMMM
icp: ..MM MM MM. MMI .MM= MMM MMM .MMMMMMM..MMMMMM MMM
icp: MMM7MMMMM MMM MMMMMMMM. .MMM $MMMMMMM MMM .MMMM.
icp: $M.MMMMM MMM MMMMMMMM. .MMM.MMMMMMMM.=MM~ MMM
icp: . MMMMMM MM .MMM. MMM. ZMM: MMMMMMMM MMM. IMM..
icp: M :MM MM: MMM. MMM MMM MMMMMMM MMMMMMMM
icp: MMM7MM. . MMM MMM. MMM MMMDMMM MMMMMM+
icp: MM.MMMMMMMMM MMM..MMM ?MM=~MMM.~MMMM
icp: . MMMM OMM. MMM .MMM MMM .MM= MM
icp: . M MMI MMM MM MMM..MM
icp: ..NM =MM .MM .MD.. .
icp:
icp:
icp: ###############################################################################
icp: # IBM Cloud Private community edition installation complete! #
icp: # The web console is now available at: #
icp: # #
icp: # https://192.168.27.100:8443 #
icp: # username/password is admin/S3cure-icp-admin-passw0rd-default #
icp: # #
icp: # Documentation available at: #
icp: # https://www.ibm.com/support/knowledgecenter/SSBS6K #
icp: # #
icp: # Request access to the ICP-ce Public Slack!: #
icp: # http://ibm.biz/BdsHmN #
icp: ###############################################################################
インストール完了後は /etc/hosts
に以下の行を追記します。
192.168.27.100 mycluster.icp
ブラウザからダッシュボードの URL https://192.168.27.100:8443
を指定し、上の admin とパスワードでログインします。
ログインできない場合は下のトラブルシューティングも参照ください。
ICP 環境の停止、再開、削除
ICP 環境を停止、再開、アンインストールするには、インストールに使用したディレクトリでvagrant
コマンドを実行します。
停止: vagrant halt
再開: vagrant up
削除: vagrant destroy
master ノードへのログイン: vagrant ssh
ICP クライアント環境の構築
構築した ICP に対して kubectl
や helm
コマンドを利用するには、個々にインストールする必要があります。以下の手順に従ってインストールしてください。
- ICP ダッシュボード > 左上のハンバーガーメニュー > コマンド・ライン・ツール > Cloud Private CLI
環境によっては既存の Kubernetes 環境等と衝突する場合もあります。これを避けるため、ICP 関連の CLI をまとめた Dockerfile を作成しました。参考にしてください。
IBM Cloud Private (ICP) 用の各種 CLI を含む Dockerfile を作成しました
https://qiita.com/nzenge/items/5cae9fbcba8076bd4d77
なお Docker の証明書を取得する際には root アカウントが必要ですが、ユーザー vagrant
、パスワード vagrant
を使用します。
~/ $ scp vagrant@mycluster.icp:/etc/docker/certs.d/mycluster.icp\:8500/ca.crt ~/.docker/certs.d/mycluster.icp\:8500/ca.crt
vagrant@mycluster.icp's password: ## vagrant と入力
ca.crt 100% 6433 2.0MB/s 00:00
~/ $
トラブルシューティング
Q. ダッシュボードにログインしようとするとエラー「404 Not Found」、メニューを選択すると「504 Gateway Time-out」エラーが返る。
A. おそらく ICP がまだ起動中です。しばらく待ってから再度試してみてください。頻発するようであれば Vagrnatfile 内のメモリーを増やしてください。
Q. カタログを開いても何も表示されない
A. 画面上部の「カタログ」をクリックしても何も表示されない場合があります。その際は ICP ダッシュボード > 左上のハンバーガーメニュー > 管理 > Helm リポジトリーを選択し、「リポジトリーの同期」をクリックしてください。
Q. (解決済み) LXC コンテナの作成でエラー「x509: certificate signed by unknown authority」が出力される
最初にこの Vagrantfile
を試した際はコンテナの作成でエラーが発生し、ICP のインストールを開始できませんでした。調べると以下の記事でopenssl
が欠けていることがわかり、プルリクにつなげることができました(反映済み)。ありがとうございました。
失敗: Alpine 3.5.1上でLXD 2.8を使おうと試行錯誤した
https://qiita.com/tukiyo3/items/2833e6c5cdf1b8ae9eeb