在本地环境(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
01.png

CI/CDの流れ

    全体構成イメージ
02.png

検証環境(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)が作成される
新旧バージョンが混在した期間を経て、最終的に新バージョンに切り替わる(ローリングアップデート)

03.png

本番環境(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

广告
将在 10 秒后关闭
bannerAds