OpenShift のインストール

インストール手順を以下に示します。 
casp1032jp
分散 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 ファイルを作成します。
    は <
    マスタ ノードのホスト名>
    に置き換え、 は <
    ワーカー ノードのホスト名>
    で置き換えてください。
    <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
インストール後
  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"]
    }
    注:
    は「
    マスタ ノードのホスト名」
    で置き換えます。
    ローカル 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
一般コマンド
  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