CentOS 7
Sponsored Link

OpenShift Origin 3.6 : インストール
2017/11/12
 
Red Hat OpenShift のオープンソース実装である OpenShift Origin のインストールです。
当例では以下のような環境を例に OpenShift クラスターを構成します。
-----------+-----------------------------------------------------------+------------
           |10.0.0.30                    |10.0.0.51                    |10.0.0.52
+----------+-----------+      +----------+-----------+      +----------+-----------+
|  [  dlp.srv.world ]  |      | [ node01.srv.world ] |      | [ node02.srv.world ] |
|     (Master Node)    |      |    (Compute Node)    |      |    (Compute Node)    |
|     (Compute Node)   |      |                      |      |                      |
+----------------------+      +----------------------+      +----------------------+

 
構築にあたっては、下記のシステム要件を満たしている必要があります。
  * Master とするノードは 16G 以上のメモリー搭載
  * 全ノードで Docker Direct LVM を使用するため、物理ボリュームに空き領域が必要 (専用のボリュームグループを作成)
[1] OpenShift クラスター構成時に Ansible 内部で使用される専用の SSH 接続ユーザーを作成し、Sudo による管理者権限を付与しておきます。全ノードで実施します。
[root@dlp ~]#
useradd origin

[root@dlp ~]#
passwd origin

[root@dlp ~]#
echo -e 'Defaults:origin !requiretty\norigin ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/openshift

[root@dlp ~]#
chmod 440 /etc/sudoers.d/openshift

# Firewalld 稼働中の場合は SSH 許可

[root@dlp ~]#
firewall-cmd --add-service=ssh --permanent

[root@dlp ~]#
firewall-cmd --reload

[2] Master ノード上で、作成した専用の SSH 接続ユーザーでログインし、SSH 鍵 (ノンパスフレーズ) を設定しておきます。
[origin@dlp ~]$
ssh-keygen -q -N ""

Enter file in which to save the key (/home/origin/.ssh/id_rsa):
[origin@dlp ~]$
vi ~/.ssh/config
# 新規作成 ( 各ノードと接続ユーザーを定義する )

Host dlp
    Hostname dlp.srv.world
    User origin
Host node01
    Hostname node01.srv.world
    User origin
Host node02
    Hostname node02.srv.world
    User origin

[origin@dlp ~]$
chmod 600 ~/.ssh/config
# 他ノードに鍵を転送

[origin@dlp ~]$
ssh-copy-id node01

origin@node01.srv.world's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node01'"
and check to make sure that only the key(s) you wanted were added.

# 同様に全ノードに鍵を転送

[origin@dlp ~]$
ssh-copy-id node02

[3] OpenShift Origin 3.6 リポジトリと Docker をインストールし、Docker 用のボリュームグループを作成して LVM シンプールをセットアップします。全ノードで実施します。
[root@dlp ~]#
yum -y install centos-release-openshift-origin36 docker
[root@dlp ~]#
vgcreate vg_origin01 /dev/sdb1

Volume group "vg_origin01" successfully created
[root@dlp ~]#
echo VG=vg_origin01 >> /etc/sysconfig/docker-storage-setup

[root@dlp ~]#
systemctl start docker-storage-setup docker

[root@dlp ~]#
systemctl enable docker

[4] Master ノード上で、作成した専用ユーザーでログインし、OpenShift クラスター インストーラーを実行します。
[origin@dlp ~]$
sudo yum -y install atomic-openshift-utils
[origin@dlp ~]$
mkdir -p ~/.config/openshift

[origin@dlp ~]$
vi ~/.config/openshift/installer.cfg.yml
version: v1 
variant: origin
ansible_ssh_user: origin
ansible_log_path: /tmp/ansible.log
hosts:
- ip: 10.0.0.30
  hostname: dlp.srv.world
  public_ip: 10.0.0.30
  public_hostname: dlp.srv.world
  master: true
  node: true
  containerized: false
  connect_to: 10.0.0.30
- ip: 10.0.0.51
  hostname: node01.srv.world
  public_ip: 10.0.0.51
  public_hostname: node01.srv.world
  node: true
  connect_to: 10.0.0.51
- ip: 10.0.0.52
  hostname: node02.srv.world
  public_ip: 10.0.0.52
  public_hostname: node02.srv.world
  node: true
  connect_to: 10.0.0.52

[origin@dlp ~]$
atomic-openshift-installer -u install

*** Installation Summary ***

Hosts:
- 10.0.0.30
  - OpenShift master
  - OpenShift node (Unscheduled)
- 10.0.0.51
  - OpenShift node (Dedicated)
- 10.0.0.52
  - OpenShift node (Dedicated)

Total OpenShift masters: 1
Total OpenShift nodes: 3

NOTE: Add a total of 3 or more masters to perform an HA installation.

Gathering information from hosts...
................

................
10.0.0.30                  : ok=562  changed=118  unreachable=0    failed=0
10.0.0.51                  : ok=247  changed=60   unreachable=0    failed=0
10.0.0.52                  : ok=247  changed=60   unreachable=0    failed=0
localhost                  : ok=9    changed=0    unreachable=0    failed=0

The installation was successful!

If this is your first time installing please take a look at the Administrator
Guide for advanced options related to routing, storage, authentication, and
more:

http://docs.openshift.com/enterprise/latest/admin_guide/overview.html

# 動作確認

[origin@dlp ~]$
oc get nodes

NAME               STATUS                     AGE       VERSION
dlp.srv.world      Ready,SchedulingDisabled   26m       v1.6.1+5115d708d7
node01.srv.world   Ready                      26m       v1.6.1+5115d708d7
node02.srv.world   Ready                      26m       v1.6.1+5115d708d7
[5] Openshift クラスター内部のサブネットは非暗号化を許可するよう Docker の設定を変更しておきます。全ノードで実施します。
[root@dlp ~]#
vi /etc/sysconfig/docker
# 4行目:追記

OPTIONS='
--insecure-registry 172.30.0.0/16
--selinux-enabled .....
[root@dlp ~]#
systemctl restart docker

[6] Master ノードのスケジューリングを有効化し、各ノードの役割が分かるようにラベルを付与しておきます。(region=*** zone=***)
[origin@dlp ~]$
oadm manage-node dlp.srv.world --schedulable=true

NAME            STATUS    AGE       VERSION
dlp.srv.world   Ready     23h       v1.6.1+5115d708d7

[origin@dlp ~]$
oc get nodes

NAME               STATUS    AGE       VERSION
dlp.srv.world      Ready     23h       v1.6.1+5115d708d7
node01.srv.world   Ready     23h       v1.6.1+5115d708d7
node02.srv.world   Ready     23h       v1.6.1+5115d708d7

[origin@dlp ~]$
oc label node dlp.srv.world region=infra zone=default

node "dlp.srv.world" labeled
[origin@dlp ~]$
oc label node node01.srv.world region=primary zone=east

node "node01.srv.world" labeled
[origin@dlp ~]$
oc label node node02.srv.world region=primary zone=west

node "node02.srv.world" labeled
[origin@dlp ~]$
oc get nodes --show-labels=true

NAME             STATUS AGE VERSION     LABELS
dlp.srv.world    Ready  23h v1.6.1...   beta.kuber...hostname=dlp.srv.world,region=infra,zone=default
node01.srv.world Ready  23h v1.6.1...   beta.kuber...hostname=node01.srv.world,region=primary,zone=east
node02.srv.world Ready  23h v1.6.1...   beta.kuber...hostname=node02.srv.world,region=primary,zone=west
 
Tweet