全て想像ですが
読み方はケーツと読みます、半端ねーてす、あるいは半端ネース
ケツが扱う最小単位がPodで1つの機能を持つ(Podは1つ以上のコンテナを含む)
ReplicaSetは複数のPodを組み合わせてアプリを実現する
DeploymentはReplicaSetを管理、アップデートの際は新規ReplicaSetを作成してバージョン更新を行う
ServiceはDeploymentに対してIPアドレスやLBを設定してサービス提供する
クラスターはServiceが複数動く環境、1つのMasterと複数のNodeから構成され
Nodeはコンテナを動かす為のサーバ、MasterはNodeを管理しスケジューリングやオートスケールを行う
■流れ
GKEでクラスタを作成
Kubectrlをインスコ
KubectlでPodを立ち上げ>Deploymentができる、複数Podの起動も
読み方はケーツと読みます、半端ねーてす、あるいは半端ネース
ケツが扱う最小単位がPodで1つの機能を持つ(Podは1つ以上のコンテナを含む)
ReplicaSetは複数のPodを組み合わせてアプリを実現する
DeploymentはReplicaSetを管理、アップデートの際は新規ReplicaSetを作成してバージョン更新を行う
ServiceはDeploymentに対してIPアドレスやLBを設定してサービス提供する
クラスターはServiceが複数動く環境、1つのMasterと複数のNodeから構成され
Nodeはコンテナを動かす為のサーバ、MasterはNodeを管理しスケジューリングやオートスケールを行う
Docker
Immutableインフラ(不変の)でDockerfileの方を変える、Dockerイメージは可搬性をもたらす
コンテナはOS上のDockerEngine上に配置する(複数配置できる、Dockerfileさえあれば再現可)
なおVMはOSをもシミュレート
1部: はじめに|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
2部: Dockerfile の基礎|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
3部: Docker Compose|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
Dockerのチュートリアル - とほほのWWW入門 (tohoho-web.com)
Dockerコマンド - とほほのWWW入門 (tohoho-web.com)
コンテナ設計方針をまとめてみた - Qiita
社内のDockerfileのベストプラクティスを公開します│FORCIA CUBE│フォルシア株式会社
Docker完全に理解した | IIJ Engineers Blog
ボリュームマウント=DockerEngine上にボリュームを作りコンテナにマウント(操作が面倒で仮使用や永続ファイル用)
バインドマウント=LinuxOS上のファイルやディレクトリをマウント(ファイル編集が多い場合)
dockerfile(イメージを作る)、docker compose(yamlで一括でコンテナ/nw/volを作る)
1部: はじめに|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
2部: Dockerfile の基礎|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
3部: Docker Compose|実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本 (zenn.dev)
Dockerのチュートリアル - とほほのWWW入門 (tohoho-web.com)
Dockerコマンド - とほほのWWW入門 (tohoho-web.com)
コンテナ設計方針をまとめてみた - Qiita
社内のDockerfileのベストプラクティスを公開します│FORCIA CUBE│フォルシア株式会社
Docker完全に理解した | IIJ Engineers Blog
ボリュームマウント=DockerEngine上にボリュームを作りコンテナにマウント(操作が面倒で仮使用や永続ファイル用)
バインドマウント=LinuxOS上のファイルやディレクトリをマウント(ファイル編集が多い場合)
dockerfile(イメージを作る)、docker compose(yamlで一括でコンテナ/nw/volを作る)
dockerfile: dockerイメージを作る→コンテナ(アプリ)になる
docker composer: コンテナを作る、NWやボリュームも作る→1台に詰めて作る
マニフェスト: k8sを作る→複数台になる
Dockerfileによるビルド - とほほのWWW入門 (tohoho-web.com)
Docker Compose - とほほのWWW入門 (tohoho-web.com)
Dockerfileによるビルド - とほほのWWW入門 (tohoho-web.com)
Docker Compose - とほほのWWW入門 (tohoho-web.com)
流れ
Dockerfile(設定)とアプリをdocker build/pushし
DockerレジストリにDockerイメージを作成
GKEにデプロイ(deploymentファイル.yml/serviceファイル.ymlをkubectrl create)
レプリケーションコントローラ:Pod数、オートスケールをdeployment fileで設定
サービス定義:ノードのproxyデーモンが複数Podに負荷分散
ノードがクラスタ内のPod同士に振分けるクラスタIP
LBが振分ける外部IP、
K8s
クラスタリング(複数サーバを束ねる)
コールドスタンバイ、ホットスタンバイ(フェイルオーバ)
オーケストレーション…NW、Storage、スケジュール、IP、ルーティング、負荷分散、監視、デプロイ
構成
etcd(kvs形式のconfig)
マスターサーバ
レジストリサーバ(コンテナレジストリ:GCSに保存)
ノード>Pod>コンテナ(webサーバ)、コンテナ(ログ収集)、仮想NIC
ノード、ノード…
GKE
コンソールで設定+kubectrl
コンソール:GCE、ストレージ、タスクキュー、BQ、cloudSQL、cloudDataStore、cloudソースレポジトリ、StackDriverLogging、StackDriverMonitoring、StackDriverTrace、CloudPlatform、BigTable、Pub/Sub、サービスコントロール、サービス管理
■流れ
GKEでクラスタを作成
Kubectrlをインスコ
KubectlでPodを立ち上げ>Deploymentができる、複数Podの起動も
Kubectlでサービス公開設定
【GCP入門編・第7回】Google Container Engine (GKE) での Docker イメージの立ち上げ方 | 株式会社トップゲート (topgate.co.jp)
サービスアカウント作成
ネームスペース、kubeサービスアカウント作成
サービスアカウントとKubeサービスアカウント紐づけ(gcloudとbubectlの両方)
Yamlで機能を宣言しKubectlでデプロイ
時間の掛かっていた処理をクラスタ構成で並列処理させて早く終わらすとか
VMからOSを抜いてアプリを入れたものがコンテナ、ドッカ―がOS以下を手配
Dockerがコンテナを管理、k8sがそのDockerをオーケストレーション
【GCP入門編・第7回】Google Container Engine (GKE) での Docker イメージの立ち上げ方 | 株式会社トップゲート (topgate.co.jp)
サービスアカウント作成
ネームスペース、kubeサービスアカウント作成
サービスアカウントとKubeサービスアカウント紐づけ(gcloudとbubectlの両方)
Yamlで機能を宣言しKubectlでデプロイ
Pod(論理ホスト/インスタンスみたいな)
一意のIPが自動的に割り当てられる
Pod内のコンテナはlocalhostで互いに通信、コンテナ間で共有するストレージ
Podを直接作成は非推奨
CPU/メモリの最小と最大を設定
Workload identityでServiceAccountとケツのサービスアカウントを紐づけ認証
k8sのsecretはPw/Oauthトークン/SSH key等を含むオブジェクト(base64エンコード生)
使う方法3種類:コンテナにマウント、コンテナの環境変数、Pod生成時にケツがpull
どこに置くか、どう暗号化するか、gitに置かない等の考慮が必要
=========時間の掛かっていた処理をクラスタ構成で並列処理させて早く終わらすとか
VMからOSを抜いてアプリを入れたものがコンテナ、ドッカ―がOS以下を手配
Dockerがコンテナを管理、k8sがそのDockerをオーケストレーション
複数台でまとめたクラスターで故障があっても切り替え可用性を保つ
そのクラスターをnamespaceで分割し複数チームで利用することも可
稼働中にサーバ追加のスケールをしたりロールバックできる
podにIPを割り振ったり、DNS名を振ったり、負荷分散したり
自動デプロイでコンテナイメージをサーバ群へ展開する
Dockerのホスト管理、コンテナのスケジューリング、ローリングアップデート、死活監視、ログ管理等々
masterとworkerで構成されmaster3台、worker2台~位のサーバ要る
Externalname>LoadBalancer>NodePort>ClusterIP
コンテナにはストレージを置かず外部に持たせた方が良いかも
ユーザ管理も必要
Dockerはアプリイメージという感じ、それらを束ね管理するのがケーツ
https://www.kagoya.jp/howto/rentalserver/kubernetes/
https://udemy.benesse.co.jp/development/system/kubernetes.html
=========
↓実際のアプリがないとイメージ沸かん
クイックスタート: 言語に固有のアプリのデプロイ | Kubernetes Engine ドキュメント | Google Cloud
コンテナ化されたウェブ アプリケーションのデプロイ | Kubernetes Engine | Google Cloud
Cloud buildを使用してアプリをコンテナイメージにパッケージ化
GKEでクラスタを作成、コンテナイメージをクラスタにデプロイ
↓手始め?
GKEでnginxを外部アクセス可能にするまで - Qiita
Kubernetesでのコンポーネント間の通信をまとめる - Qiita
GCP におけるコンテナ入門 ~Kubernetes の何がすごい!? | クラウドエース株式会社 (cloud-ace.jp)
GKE

=========
その前にアプリがPHPならこれを参照
PHP のドキュメント | Google Cloud
PHP スタートガイド | Google Cloud
Firestore でのセッション処理 | PHP | Google Cloud 複数インスタンスのsession管理にはFirestore
PHP でのユーザーの認証 | Google Cloud IAP(Identity-Aware Proxy)
PHP を使用したバックグラウンド処理 | Google Cloud
Cloud run(コンテナ化アプリのスケールできる実行、CICDで自動Terraform applyできる?)
Pub/Sub(イベントドリブンでメッセージングとデータ取り込み)
=========
↓実際のアプリがないとイメージ沸かん
クイックスタート: 言語に固有のアプリのデプロイ | Kubernetes Engine ドキュメント | Google Cloud
コンテナ化されたウェブ アプリケーションのデプロイ | Kubernetes Engine | Google Cloud
Cloud buildを使用してアプリをコンテナイメージにパッケージ化
GKEでクラスタを作成、コンテナイメージをクラスタにデプロイ
↓手始め?
GKEでnginxを外部アクセス可能にするまで - Qiita
Kubernetesでのコンポーネント間の通信をまとめる - Qiita
GCP におけるコンテナ入門 ~Kubernetes の何がすごい!? | クラウドエース株式会社 (cloud-ace.jp)
GKE
=========
その前にアプリがPHPならこれを参照
PHP のドキュメント | Google Cloud
PHP スタートガイド | Google Cloud
Firestore でのセッション処理 | PHP | Google Cloud 複数インスタンスのsession管理にはFirestore
PHP でのユーザーの認証 | Google Cloud IAP(Identity-Aware Proxy)
PHP を使用したバックグラウンド処理 | Google Cloud
Cloud run(コンテナ化アプリのスケールできる実行、CICDで自動Terraform applyできる?)
Pub/Sub(イベントドリブンでメッセージングとデータ取り込み)