在本地环境(Win7)上运行Kubernetes
Minikube 是什么意思?
-
- ローカル環境で動作可能なKubernetes(Win/Mac/Linux…)
-
- Dockerホストが別途必要(Docker for Windows…)
-
- ハイパーバイザーが別途必要(Hyper-V、VirtualBox…)
Minikube用のVMイメージの作成は不要
安装
Docker for Windowsインストール
(省略)
VirtualBoxインストール
(省略)
minikube.exeダウンロード
https://github.com/kubernetes/minikube/releases
minikube-windows-amd64.exeをダウンロード
保存先パスを環境変数PATHに追加
ファイル名を「minikube.exe」にリネームし、任意のフォルダに保存(例:c:\minikube)
Kubernetesクラスタの作成
ハイパーバイザーをVirtualBoxに設定
minikube config set vm-driver virtualbox
创建 Kubernetes 集群
minikube start
确认状态
minikube status
打开仪表盘(浏览器)
minikube dashboard
在Minikube上部署(创建Pod)。
kubectl.exeダウンロード
最新バージョンの確認
https://storage.googleapis.com/kubernetes-release/release/stable.txt
2018.05.28時点で「v1.10.3」
ダウンロード
下記URLのバージョンのところを最新のものに書き換える
https://storage.googleapis.com/kubernetes-release/release/v1.10.3/bin/windows/amd64/kubectl.exe
minikube.exeと同じフォルダに保存してパスを通す(例:c:\minikube)
deployment.yml作成
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-sample
spec:
replicas: 2 // 同じ仕様のPodを2個起動する
template:
metadata:
labels:
app: deployment-sample // Service作成時に指定するラベル名
spec:
containers: // Podに含めるコンテナイメージの設定
- name: nginx
image: nginx:1.1
- name: myapp
image: myapp:1.1
- ymlの内容を登録(Podのデプロイ、起動)
kubectl apply -f deployment-sample.yml
CI/CDの流れ
- 全体構成イメージ
検証環境(Kubernetes)へデプロイ
開発環境(ローカル)
Gitのdevブランチにpush
CIサーバ
devブランチをチェックアウト
ビルド・単体テスト
Dockerイメージの作成(docker build)
イメージをDockerレジストリに登録(docker push)
検証環境にデプロイ(kubectl apply)
DockerレジストリからDockerイメージを取得
Pod作成・起動
(Integration Test実行)
テストに失敗したらデプロイをロールバック(kubectl rollout)
デプロイ後のイメージ
すでにDeploymentが存在する状態でkubectl applyを実行すると、新しいDeployment(Pod)が作成される
新旧バージョンが混在した期間を経て、最終的に新バージョンに切り替わる(ローリングアップデート)
本番環境(Kubernetes)へデプロイ
開発環境(ローカル)
devブランチをmasterブランチにマージ
CIサーバ
masterブランチをチェックアウト
ビルド・単体テスト
Dockerイメージの作成(docker build)
イメージをDockerレジストリに登録(docker push)
本番環境にデプロイ(kubectl apply)
DockerレジストリからDockerイメージを取得
Pod作成・起動
リリースに失敗したらデプロイをロールバック(kubectl rollout)
问题或挑战
-
- Dockerイメージのバージョン付け方
そもそもつけるものなのかどうか
docker buildとdeployment.ymlのバージョンをCIで更新する??
本番環境へのデプロイはローリングアップデートでいいのか?
ブルーグリーンとかカナリヤの場合はどうやる?
ブルーグリーンの場合は、新VerのPodに旧Verと異なるラベルを付与する
Dockerイメージ毎回作ると容量の問題は?
どういうNWの動きになってるの?
请提供更多的信息。
Minikube
Kubernetes超入門 with java
minikubeで始めるカンタンKubernetes(Windows 10用)
minikubeとVirtualBoxで手元でKubernetesを試す
Minikube ではじめる Kubernetes 入門
minikubeでローカルのdocker imageを使う
Kubernetes
k8s pod 概要について自習ノート
SpringBootをKubernetes上で動かしてみる
Kubernetesのチュートリアルをやる
Kubernetesアンチパターン
kubernetes学習その3 スケールとかB/Gデプロイとか
Kubernetes(CI/CD)
オペレーションとルールを統一化し、Kubernetesを使った変化に強いインフラを構築
Kubernetes Deploymentを理解する
Kubernetes: Deployment の仕組み
マイクロサービスの設計: 継続的インテグレーション
Helm(k8sのパッケージマネージャ)
Kubernetes: パッケージマネージャHelm
Helm を使って Kubernetes を管理する
Kubernetes のパッケージマネジャー helm の導入と使い方
Kubernetes関連の便利ツール: Helm