OpenShift のインストール
インストール手順を以下に示します。
casp1032jp
分散 SpectroSERVER への OpenShift Docker インストール
注
: 少なくとも 2 つの VM (1 つはマスタ ノード VM として、もう 1 つはワーカー ノードとして)があることを確認してください。後で VM 数をスケーリングできます。前提条件
- すべてのマシンに Red Hat Subscription Manager があることを確認してください。以下のリポジトリが有効であることを確認してください。リポジトリを有効化するには、以下のコマンドを実行します。
- subscription-manager config --rhsm.manage_repos =1
- rhel-7-server-extras-rpms/x86_64subscription-manager repos --enable=rhel-7-server-rpms
- rhel-7-server-rpms/7Server/x86_64subscription-manager repos --enable=rhel-7-server-extras-rpms
- rhel-7-server-rt-rpms/7Server/x86_64subscription-manager repos --enable=rhel-7-server-optional-rpms
インストール手順
必須
: Openshift クラスタに含まれているすべての VM 上の root_pwd が同じである必要があります。Openshift は任意のノード/VM にコンテナを作成できるため、すべての VM のパスワードが同じである必要があります。インストール手順を以下に示します。
- DNS (Domain Name Server、ドメイン ネーム サーバ)「<LOCALIP>」を /etc/resolv.conf フォルダに追加します。 ここでは、LocalIPは DNS サーバ IP を指します。すでに設定されている場合は、この手順をスキップします。すべてのマスタおよびワーカー ノード上の以下のサービスが有効で実行中である必要があります。
- systemctl statusNetworkManager
- systemctl statusdnsmasq
- サービスが有効ではなく、実行中でない場合、以下のコマンドを実行します。yum -y install NetworkManageryum -y install dnsmasqservice NetworkManager startservice dnsmasq start
- すべてのマスタおよびワーカ ノード ホストで以下のコマンドを実行します。yum -y updatesubscription-manager repos --enable rhel-7-server-ansible-2.5-rpmsyum -y install vim wget git net-tools bind-utils iptables-services bridge-utils bash-completion pyOpenSSL dockeryum -y install ansible
- マスタおよびワーカー ノードで docker を有効化および開始します。
- すべてのノードにアクセスするための SSH キーをセットアップします。この手順はマスタ ノードで実行します。この手順を手動で実行するか、前述のスクリプトを使用します。sed "s/#PermitRootLogin yes/PermitRootLogin yes/g" -i /etc/ssh/sshd_config ; systemctl restart sshdssh-keygenfor 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 が失敗します。
- マスタ ノードでのみ、OpenShift リリース用に Git リポジトリのクローンを作成します。cd ~ ; git clone https://github.com/openshift/openshift-ansiblecd openshift-ansiblegit checkout release-1.5
- マスタ ノードでのみ、「/etc/ansible/hosts」に hosts ファイルを作成します。注:<address>はそれぞれマスタ ノード/ワーカー ノードの IPで置き換えてください。[OSEv3:children]mastersnodesetcd[OSEv3:vars]ansible_ssh_user=rootdeployment_type=originopenshift_disable_check=docker_storagecontainerized=trueopenshift_release=v1.5openshift_image_tag=v1.5.0osm_cluster_network_cidr=10.163.0.0/16enable_excluders=falseopenshift_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>
- マスタ ノードでのみ、以下の Ansible playbook インストール コマンドを実行します。ansible-playbook -i /etc/ansible/hosts ~/openshift-ansible/playbooks/byo/config.yml
- URL 「https://<masterhostname>:8443」(8443 はデフォルトのポート番号)を使用して OpenShift UI にログインし、認証情報 admin/admin または system/admin を入力します。独自の root 認証情報を作成する場合は、マスタで以下のコマンドを実行し、root の新しいパスワードを設定します。htpasswd /etc/origin/master/htpasswd root
インストール後
- Openshift UI を使用するか、Openshift マスタに対して以下のコマンドを発行することで、Openshift でプロジェクトを作成します。oc new-project <projectname>
- Spectrum イメージをプッシュでき、クラスタ全体でグローバルにアクセスできるように、Openshift クラスタにローカル docker イメージ リポジトリを作成します。OpenShift にローカル docker リポジトリを作成するには、マスタ ノードで以下のコマンドを実行します。vi /etc/docker/daemon.json{"insecure-registries" : ["master.com:5000"]}ローカル dokcer リポジトリをロールアウト/作成する方法oc rollout latest docker-registry
- Spectrum イメージを同じ docker レジストリにプッシュするには、前述の手順で作成された docker レジストリのサービス IP が必要です。作成された docker ローカル レジストリのサービス IP を取得します。この手順は、OpenShift でサービス取得コマンドを実行するのに必要です。oc login -u system:adminoc project <project-name>ip = oc get svc -n default | grep docker-registry|awk '{print $2;}'
- docker レジストリ IP を取得した後、ユーザ定義の認証情報を使用して、openshift ログインを実行します。その後、docker レジストリにログインする必要があります。oc login -u <username>:<pwd>レジストリ サービスにログインします。docker login -u openshift -p $(oc whoami -t) <ip>:5000
- ログイン後、イメージのタグを作成し、ローカル docker リポジトリにイメージをプッシュします。docker tag spectrumspectroserverimage <ip>:5000/<project-name>/ssocsimage docker push <ip>:5000/<project-name>/spectrumspectroserverimage
- ROOT user*** としてのイメージの実行を許可するように設定を変更するためのコマンドこの手順は、イメージを実行するために必要です。ここで「admin」は、メインの管理者権限です。oc login -u system:adminoadm policy add-scc-to-group anyuid system:authenticated
一般コマンド
- OpenShift のコンテナ詳細を取得するには、以下のコマンドを実行します。oc get podsNAME READY STATUS RESTARTS AGEblog-django-py-1-5bv76 1/1 Running 0 3dcommand-demo 1/1 Running 0 2ht3image-1-4991j 1/1 Running 0 4h
- openshift コンテナにログインするコマンドoc exec -it command-demo – sh