LoginSignup
1
1

More than 5 years have passed since last update.

Introduction to docker kubernetes and redhat openshift

Posted at

redhat社によるIntroduction to docker,kubernetes and RedHat openshiftという研修を受けてきたので内容のまとめ

研修概要

研修環境ではクローズドな環境でopenshiftが構築されており、
ハンズオン形式で手順に沿ってコマンドをうっていくと
docker,kubernetes,openshiftの基本について確認できる研修でした

以下研修で学んだことをまとめていきます。

コンテナ

プロセスを仮想OSっぽく動かす技術

OSの上にコンテナ基盤が動作し、その上でコンテナプロセスが起動する
コンテナプロセスにはNICと仮想DISKが紐付けられ、普通のOSのようにログインもできる

仮想OSから無駄な機能を切り離し、必要な機能だけ残して取り回しを良くした感じ

物理環境や仮想OSに比べて以下の利点がある

  • ライブラリの更新が他コンテナ、基盤OSに影響を与えない
  • 仮想OSに比べオーバヘッドが少ない
  • コンテナイメージのエコシステムがあり、目的にあったコンテナイメージ(webコンテナ、dbコンテナ)が公開されているリポジトリからダウンロードしてすぐに利用することができる

Docker

Docker社が開発したコンテナエンジン
コンテナエンジンのデファクトスタンダード

アーキテクチャ

DockerサーバはOS上でデーモンとして実行される
Dockerサーバに対してRESTful APIを発行することでコンテナイメージのビルド、起動、ダウンロードを行える

RESTful APIを解析すれば独自のツールをつくれる
それを行ってるのがkubernetesやopenshift

コンテナとLinuxカーネル

以下のカーネル標準機能を用い、コンテナプロセスがアクセスできるリソースを制限し、コンテナを形成する

  • 名前空間
  • 制御グループ
  • SELinux

Dockerコンテナイメージ

アプリケーションライブラリとアプリケーションを含むランタイム環境から構成される、読み取り専用のテンプレート
コンテナの作成に使用される
イメージは作成、更新、ダウンロードしてすぐに使用できる

Dockerコンテナイメージは複数の層で構成される
コンテナを変更する際は既存の層を変更することなく、新しい層が追加される
追加された層は、変更を実施した実施中のコンテナから新規イメージを生成しない限り破棄される

新規イメージの作成方法

作成方法は以下の2つ

  • 実行中のコンテナに変更を行い、変更したコンテナからコンテナイメージを作成する
  • Dockerfileからビルドする

コンテナを直接変更する手段を取るとレイヤが増加し、コンテナイメージのサイズが大きくなってしまうため、非推奨とされる
Dockerfileではレイヤ数をコントロールできるため、こちらが推奨

kubernetes

複数のノードによってクラスタを構成し、その上でコンテナを動作させるためのマネジメントツール
分散キーバリューストアのEtcdにより構成情報と状態情報を保存し、コンテナやその他リソースを管理する
docker

 構成要素

マスター

kubernetesクラスタ内の作業負荷と通信を管理するサーバー

ノード

kubernetesクラスタを構成するサーバー

ラベル

任意のkubernetesリソースに割り当てることができるキー/値のペア

ポッド

リソースを共有するコンテナの集合

サービス

ポッドプールにアクセスするためのIPとポートの組み合わせ

レプリケーションコントローラ

ポッドの水平方向へのスケールをコントロールする定義
AWSでいうAuto Scailing のルール

永続ボリューム(PV)

ポッドに割り当てるネットワークストレージ
コンテナは停止すると削除されるため、永続データはポッドに割り当てた永続ボリュームに保存する

OpenShift

RedHat社製
Docker + kubernetesのコンテナインフラストラクチャに機能を追加し、本番PaaSプラットフォームを提供する
WebUIやCI/CDのための機能がkubernetesに追加される

 構成要素

デプロイ設定

複数のポッドをデプロイするための設定
ローリングアップデートなどを制御する

ビルド設定

Gitサーバ上のソースコードからコンテナをビルドするための設定
デプロイ設定と合わせてCI/CDを提供する

ルート

OpenShiftで構成されるアプリケーションに対してアクセスするためのアクセスポイントDNSホスト名

ネットワーキング

OpenShiftではネットワークがSDNで制御され、ポッドから外へのアクセスやポッドの外からのアクセスがポッドの内部のコンテナが増減しても割り当てた静的なIPアドレスでアクセスできる

ハンズオン

docker,kubernetes,openshiftの基本事項をおさえたあと
ハンズオンで実際にコマンドを打たせてもらえました

RedHat社の研修でしたが、dockerやkubernetesの操作についても基本から実施でき、
dockerに触ったことがない人がイメージを掴むにはとてもよい研修でした

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1