LoginSignup
2
3

More than 3 years have passed since last update.

IBM Cloud Private (ICP) のローカル環境をラクに構築する

Posted at

はじめに

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 のパスワードもここで指定しています。

Vagrantfile
# 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 に以下の行を追記します。

/etc/hosts
192.168.27.100  mycluster.icp

ブラウザからダッシュボードの URL https://192.168.27.100:8443 を指定し、上の admin とパスワードでログインします。
icp-login1.png

ログインできない場合は下のトラブルシューティングも参照ください。

ICP 環境の停止、再開、削除

ICP 環境を停止、再開、アンインストールするには、インストールに使用したディレクトリでvagrant コマンドを実行します。

停止: vagrant halt
再開: vagrant up
削除: vagrant destroy
master ノードへのログイン: vagrant ssh

ICP クライアント環境の構築

構築した ICP に対して kubectlhelm コマンドを利用するには、個々にインストールする必要があります。以下の手順に従ってインストールしてください。

  • 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

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3