OpenShift Container Platform 勉強メモ①

docker kubernetes openshift

忘れないうちにメモ。あとでまとめられたらいいな。

学習内容

  1. OpenShift Container Platformの機能
  2. OpenShift Container Platformのインストール
  3. OpenShift ネットワークの概念
  4. OpenShift CLIコマンドについて

1. OpenShift Container Platformの機能

・Dockerおよびk8s上に構築さrたコンテナアプリケーションプラットフォーム
・頑健で適用性があり、スケーラブル。
・自らOpenShiftクラスタを管理したくない場合は、パブリッククラウドプラットフォーム「RedHat OpenShift Online」を利用。
・アプリは、1つのOS内の分離されたパーティションであるコンテナとして実行
 ⇒コンテナは、セキュリティ向上、ストレージやネットワークの分離などいろんな長所あるよ。

具体的な機能

・セルフサービスプラットフォーム
 Source-to-Image(S2I)を利用して、テンプレートや独自のソースコード管理リポジトリからアプリケーションを作成可能。
・多言語対応
 Java、node.js、PHPなど様々なプログラミング言語をサポート。
DB(MySQL、PostgreSQL、MongoDB)、その他ミドルウェア(Apache httpd、Tomacat、JBoss)もサポート。
・自動化
 ソースコード、コンテナイメージが変化したときにコンテナのリビルドと再デプロイを自動的に実行するアプリケーションライフサイクル管理機能を備えている。
スケールアウト、フェイルオーバー可能
・スケーラビリティと高可用性
 コンテナのマルチテナンシーと分散型アプリケーションプラットフォームを提供しているのでオンデマンドでトラフィックの増加を処理できる柔軟性
・移植性
 作ったコンテナは他のプラットフォームでも使えるで。
・セキュリティ
 LDAPやOAuthなどの外部認証システムと統合する機能を備えている
他いろいろw

アーキテクチャ

すげーざっくりとした全体図w

Etcdとか詳しい内容はあとで教材読むこむ。

2. OpenShift Container Platformのインストール

・3.X系はAnsibleでインストール。提供されているものを使う。
・4.X系はTerraformでインストール。ローカルインストールの設定ファイルはまだ提供されていない模様。
・もろもろ用意されていた。設定の詳細は、あとで教材読み込む。

3. OpenShift ネットワークの概念

・ソフトウェア定義ネットワーク(SDN)
Dockerネットワークはホスト専用の仮想ブリッジを使用して、ホスト内のコンテナ同士なら通信可能
⇒異なるホストとは通信できない
⇒通常だったらポートマッピングで可能にする。
⇒大量のホストにコンテナがあったら、その設定するの大変。
⇒OpenShiftはソフトウェア定義ネットワーク(SDN)を使用。
⇒いくつかのネットワーク層を抽象化して、管理者がネットワークサービスを管理できるようにしたモデル。

3.5系では以下3つのSDNプラグインが設定できる。
・ovs-subnetプラグイン(デフォルト)
各ポッドが他のすべてのポッドおよびサービスと通信できるポッドネットワークを提供・
・ovs-multitenantプラグイン
他のプロジェクトのポッドとは通信できない。それ以外は↑と同じ。
・ovs-networkpolicy
管理者がカスタマイズできる。むずそう。

登場人物

ネットワークの話で出てくる登場人物
・ポッド(pod)
こいつら起動・停止の度にIP変動。アンステーボゥw
・サービス(service(svc))
ポッドを束ねている奴。LBとしての役割。IPはステーボゥw
コンテナ立ち上げると、サービスのIPが環境変数としてコンテナに埋め込まれる仕組み。
⇒ポッドのIPを意識しなくていい??
・ルート(route)
OpenShiftインスタンスの外からポッドにアクセスできるようにするための仕組み。
もちろん、セキュア(SSL)通信限定のルートも作れる。

クラスター内外のアクセスについて

外⇒内は、3つ方法があるよ。

3つ目は、ルート用意して接続するやつ。

内⇒外は、NATゲートウェイ用意されているからデレマス。

トラブルシューティング

トラブルシューティングもやった。
【問題】
とあるプロジェクトでルートが用意されているのに、ホスト名でアクセスできない!!
【シューティング】
ポッドのIP調べて、マスターノードなどからアクセスできるか調べる
⇒できる。

じゃあ、そのポッドを束ねているサービスのIP調べて、アクセスできるか調べる
⇒できない!!
⇒設定おかしくね?
⇒oc describe svc XXX!!!!およびoc describe pod XXX!!!
⇒エンドポイントnoneになっとるw
⇒見比べたら、お互いのセレクターラベルの名前が微妙に異なるw
⇒合わせる
⇒エンドポイントできる。
⇒アクセスできるようになった!!

では、ホスト名でアクセスできるようになったかな?
⇒まだできない
⇒ルートの設定おかしくね?
⇒os describe route XXX!!!!!
⇒サービス名の綴りが微妙に違うw
⇒直す。
⇒アクセスできるようになった!!!!!!!

4. OpenShift CLIコマンドについて

いろいろある。笑。AWSの勉強したいので今度まとめるw

今日は以上!!