search
LoginSignup
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

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

はじめに

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

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
What you can do with signing up
3
Help us understand the problem. What are the problem?