OpenShift のインストール

インストール手順を以下に示します。
casp1032
分散 SpectroSERVER への OpenShift Docker インストール
少なくとも 2 つの VM (1 つはマスタ ノード VM として、もう 1 つはワーカー ノードとして)があることを確認してください。 後で VM 数をスケーリングできます。
前提条件
  1. すべてのマシンに Red Hat Subscription Manager があることを確認してください。 以下のリポジトリが有効であることを確認してください。 リポジトリを有効化するには、以下のコマンドを実行します。
  • subscription-manager config --rhsm.manage_repos =1
  • rhel-7-server-extras-rpms/x86_64
    subscription-manager repos --enable=rhel-7-server-rpms
  • rhel-7-server-rpms/7Server/x86_64
    subscription-manager repos --enable=rhel-7-server-extras-rpms
  • rhel-7-server-rt-rpms/7Server/x86_64
    subscription-manager repos --enable=rhel-7-server-optional-rpms
インストール手順
必須
: Openshift クラスタに含まれているすべての VM 上の root_pwd が同じである必要があります。 Openshift は任意のノード/VM にコンテナを作成できるため、すべての VM のパスワードが同じである必要があります。
インストール手順を以下に示します。
  1. DNS (Domain Name Server、ドメイン ネーム サーバ)「<LOCALIP>」を /etc/resolv.conf フォルダに追加します。 ここでは、
    LocalIP
    は DNS サーバ IP を指します。 すでに設定されている場合は、この手順をスキップします。 すべてのマスタおよびワーカー ノード上の以下のサービスが有効で実行中である必要があります。
    • systemctl status
      NetworkManager
    • systemctl status
      dnsmasq
  2. サービスが有効ではなく、実行中でない場合、以下のコマンドを実行します。
    yum -y install NetworkManager
    yum -y install dnsmasq
    service NetworkManager start
    service dnsmasq start
  3. すべてのマスタおよびワーカ ノード ホストで以下のコマンドを実行します。
    yum -y update
    subscription-manager repos --enable rhel-7-server-ansible-2.5-rpms
    yum -y install vim wget git net-tools bind-utils iptables-services bridge-utils bash-completion pyOpenSSL docker
    yum -y install ansible
  4. マスタおよびワーカー ノードで docker を有効化および開始します。
  5. すべてのノードにアクセスするための SSH キーをセットアップします。 この手順はマスタ ノードで実行します。 この手順を手動で実行するか、前述のスクリプトを使用します。
    sed "s/#PermitRootLogin yes/PermitRootLogin yes/g" -i /etc/ssh/sshd_config ; systemctl restart sshd
    ssh-keygen
    for host in master.example.com \
    node1.example.com \
    node2.example.com; \
    do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
    done
    マスタから ansible playbook を実行している場合、マスタからマスタに対しても ssh-copyid を実行する必要があり、そうしないとローカルホストで playbook が失敗します。
  6. マスタ ノードでのみ、OpenShift リリース用に Git リポジトリのクローンを作成します。
    cd ~ ; git clone https://github.com/openshift/openshift-ansible
    cd openshift-ansible
    git checkout release-1.5
  7. マスタ ノードでのみ、「/etc/ansible/hosts」に hosts ファイルを作成します。
    <master.com>
    <マスタ ノードのホスト名>
    に置き換え、
    <worker.com> は
    <ワーカー ノードのホスト名>
    で置き換えてください。
    <address>
    はそれぞれ
    マスタ ノード/ワーカー ノードの IP
    で置き換えてください。
    [OSEv3:children]
    masters
    nodes
    etcd
    [OSEv3:vars]
    ansible_ssh_user=root
    deployment_type=origin
    openshift_disable_check=docker_storage
    containerized=true
    openshift_release=v1.5
    openshift_image_tag=v1.5.0
    osm_cluster_network_cidr=10.163.0.0/16
    enable_excluders=false
    openshift_master_identity_providers=[{'name': 'htpasswd_auth','login': 'true', 'challenge': 'true','kind': 'HTPasswdPasswordIdentityProvider','filename': '/etc/origin/master/htpasswd'}]
    [masters]
    <master.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<master.com> openshift_schedulable=true
    [nodes]
    <master.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<master.com> openshift_node_labels="{'region': 'infra', 'zone': 'default'}" openshift_schedulable=true
    <worker.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<worker.com> openshift_node_labels="{'region': 'primary', 'zone': 'east'}" openshift_schedulable=true
    [etcd]
    <master.com>
  8. マスタ ノードでのみ、以下の Ansible playbook インストール コマンドを実行します。
    ansible-playbook -i /etc/ansible/hosts ~/openshift-ansible/playbooks/byo/config.yml
  9. URL 「https://<masterhostname>:8443」(8443 はデフォルトのポート番号)を使用して OpenShift UI にログインし、認証情報 admin/admin または system/admin を入力します。 独自の root 認証情報を作成する場合は、マスタで以下のコマンドを実行し、root の新しいパスワードを設定します。
    htpasswd /etc/origin/master/htpasswd root
  10. Jasper レポートを起動するには、
    jdbc:mysql://<openshiftnode>:<nodeport-ephemeral port>/reporting
    コマンドを実行します。
    例: jdbc:mysql://<mastername>:45673/reporting
インストール後のタスク
以下のインストール後タスクを実行します。
  1. OpenShift UI を使用するか、OpenShift マスタに対して以下のコマンドを発行することで、OpenShift でプロジェクトを作成します。
    oc new-project <projectname>
  2. Spectrum イメージをプッシュでき、クラスタ全体でグローバルにアクセスできるように、OpenShift クラスタにローカル docker イメージ リポジトリを作成します。 OpenShift にローカル docker リポジトリを作成するには、マスタ ノードで以下のコマンドを実行します。
    vi /etc/docker/daemon.json
    {
    "insecure-registries" : ["master.com:5000"]
    }
    master.com
    」は「
    マスタ ノードのホスト名
    」で置き換えます。
    ローカル dokcer リポジトリをロールアウト/作成する方法
    oc rollout latest docker-registry
  3. Spectrum イメージを同じ docker レジストリにプッシュするには、前述の手順で作成された docker レジストリのサービス IP が必要です。 作成された docker ローカル レジストリのサービス IP を取得します。 この手順は、OpenShift でサービス取得コマンドを実行するために必要です。
    oc login -u system:admin
    oc project <project-name>
    ip = oc get svc -n default | grep docker-registry|awk '{print $2;}'
  4. docker レジストリ IP を取得した後、ユーザ定義の認証情報を使用して、OpenShift ログインを実行します。 その後、docker レジストリにログインする必要があります。
    oc login -u <username>:<pwd>
    レジストリ サービスにログインします。
    docker login -u openshift -p $(oc whoami -t) <ip>:5000
  5. ログイン後、イメージのタグを作成し、ローカル docker リポジトリにイメージをプッシュします。
    docker tag spectrumspectroserverimage <ip>:5000/<project-name>/ssocsimage docker push <ip>:5000/<project-name>/spectrumspectroserverimage
  6. ROOT user*** としてのイメージの実行を許可するように設定を変更するためのコマンド:
    この手順は、イメージを実行するために必要です。 ここで「admin」は、メインの管理者権限です。
    oc login -u system:admin
    oadm policy add-scc-to-group anyuid system:authenticated
  7. Jasper レポートを起動するには、
    jdbc:mysql://<openshiftnode>:<nodeport-ephemeral port>/reporting
    コマンドを実行します。
    例: jdbc:mysql://<mastername>:45673/reporting
一般コマンド
  1. OpenShift のコンテナ詳細を取得するには、以下のコマンドを実行します。
    oc get pods
    NAME READY STATUS RESTARTS AGE
    blog-django-py-1-5bv76 1/1 Running 0 3d
    command-demo 1/1 Running 0 2h
    t3image-1-4991j 1/1 Running 0 4h
  2. OpenShift コンテナにログインするコマンド
    oc exec -it command-demo – sh
トラブルシューティング
Q: Docker で OneClick Web アプリがサポートされていない。
A: トラブルシューティングするには、以下の手順に従います。
  1. 「docker copy <filename> <containerName:/path>」を使用して、Docker ホストからコンテナにパッケージをコピーします
  2. コンテナにファイルをコピーした後、「yum localinstall pkgName」を使用してパッケージをインストールします。 コンテナの作成時に、OneClick ポートの時と同様にポート マッピングを作成します。以下に例を示します。
    docker run -e ROOT_PASSWORD=???.qaperf184 -e MAIN_LOCATION_SERVER=719de9a39c46 -e MAIN_LOCATION_SERVER_IP=172.17.0.2
    -e TOMCAT_PORT=8080
    -p 9090:8080
    -e MASTER_NODE=docker-rh74vm2 -it 1032ocimage
    OneClick Web アプリの場合:
    docker run -e ROOT_PASSWORD=???.qaperf184 -e MAIN_LOCATION_SERVER=719de9a39c46 -e MAIN_LOCATION_SERVER_IP=172.17.0.2
    -e TOMCAT_PORT=8080
    -p 9090:8080 -p 9099:9443
    -e MASTER_NODE=docker-rh74vm2 -it 1032ocimage
    ここで、9443 は OC コンテナが作成された後に Web アプリによって使用されるポート番号です。
  3. 以下の URL を使用して Spectrum Web アプリを起動します。
    http://dockerHost:9099