OpenShift Origin 3.6 : インストール2017/11/23 |
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 クラスター構成/管理用ユーザーを作成し、root権限が行使できるよう Sudo の設定をしておきます。当例では [origin] ユーザーを作成して進めます。 |
[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] | 全ノードで、OpenShift Origin 3.6 リポジトリと Docker をインストールし、Docker 用のボリュームグループを作成して LVM シンプールをセットアップします。 |
[root@dlp ~]#
[root@dlp ~]# yum -y install centos-release-openshift-origin36 docker 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 [root@dlp ~]# systemctl enable docker |
[3] | Master ノードで、作成したクラスター管理用ユーザーでログインし、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 |
[4] | Master ノードで、作成したクラスター管理用ユーザーでログインし、OpenShift クラスター構成用の Ansible Playbook を実行してクラスターをセットアップします。 |
# 最終行に追記 [OSEv3:children] masters nodes [OSEv3:vars] # 作成した管理ユーザーを指定 ansible_ssh_user=origin ansible_become=true openshift_deployment_type=origin # 認証は HTPasswd を使用 openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/.htpasswd'}] openshift_master_default_subdomain=apps.srv.world # クラスター内部のサブネットは非暗号化を許可 openshift_docker_insecure_registries=172.30.0.0/16 [masters] dlp.srv.world openshift_schedulable=true containerized=false [etcd] dlp.srv.world [nodes] # ラベルは任意のものを指定 [region: ***, zone: ***] dlp.srv.world openshift_node_labels="{'region': 'infra', 'zone': 'default'}" node01.srv.world openshift_node_labels="{'region': 'primary', 'zone': 'east'}" openshift_schedulable=true node02.srv.world openshift_node_labels="{'region': 'primary', 'zone': 'west'}" openshift_schedulable=true ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml 2017-11-23 19:17:14,120 p=1889 u=root | PLAY [Create initial host groups for localhost] 2017-11-23 19:17:14,127 p=1889 u=root | TASK [include_vars] **************************** ................ ................ PLAY RECAP ********************************************************************* dlp.srv.world : ok=643 changed=177 unreachable=0 failed=0 localhost : ok=12 changed=0 unreachable=0 failed=0 node01.srv.world : ok=246 changed=66 unreachable=0 failed=0 node02.srv.world : ok=246 changed=66 unreachable=0 failed=0 # 動作確認 [origin@dlp ~]$ oc get nodes NAME STATUS AGE VERSION dlp.srv.world Ready 19m v1.6.1+5115d708d7 node01.srv.world Ready 19m v1.6.1+5115d708d7 node02.srv.world Ready 19m v1.6.1+5115d708d7 # ラベルも合わせて表示 [origin@dlp ~]$ oc get nodes --show-labels=true NAME STATUS AGE VERSION LABELS dlp.srv.world Ready 28m v1.6.1+... beta.kuber...hostname=dlp.srv.world,region=infra,zone=default node01.srv.world Ready 28m v1.6.1+... beta.kuber...hostname=node01.srv.world,region=primary,zone=east node02.srv.world Ready 28m v1.6.1+... beta.kuber...hostname=node02.srv.world,region=primary,zone=west |
Sponsored Link |