マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

2.0.0.2 から Docker Desktop for Windowsにリネーム

がサポートされるようになった。

  • 2021/8/31発表、
    • 2021/8/31から開始
    • 2022/1/31までが猶予期間

詳細

インストール

有償化

回避

参考

機能

Desktop with integrated Kubernetes

ローカルのDocker for WindowsK8sが動作する。

Docker Desktop WSL2 Backend

  • WSL2はVM上で動くようになったのでDockerが安定して動作するようになった。
    (Linuxのファンクションコールに強く依存するDockerなどはWSL(1)で動作しなかった。)

動確

K8s

有効化と有効化の確認

  • 有効化された事を確認する。
>kubectl get componentstatuses
Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

↓ ↓ ↓

>kubectl get componentstatuses
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

K8sダッシュボードをデプロイ

  • デプロイの実行
    >kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
    secret/kubernetes-dashboard-certs created
    serviceaccount/kubernetes-dashboard created
    role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
    rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
    deployment.apps/kubernetes-dashboard created
    service/kubernetes-dashboard created
  • デプロイの確認
    >kubectl get deployment --namespace=kube-system -l k8s-app=kubernetes-dashboard
    NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
    kubernetes-dashboard   1/1     1            1           23s
  • ローカルホストからKubernetesダッシュボードにアクセスするプロキシを起動
    >kubectl proxy
    Starting to serve on 127.0.0.1:8001

※ このコマンド(プロキシ)は、実行状態のままにしておく。

  • 初期設定手順がLinuxコマンドなのでWSLに移動する。
  • 初めに、以下の手順で、WSLでkubectlを利用できるようにする。
  • WSLのターミナルからkubectlのインストール。
    $ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
    $ chmod +x kubectl
    $ sudo mv kubectl /usr/local/bin/kubectl
  • kube configファイルをコピー
    $ mkdir ~/.kube
    $ cp /mnt/c/Users/<username>/.kube/config ~/.kube
  • kubectlの実行確認
    $ kubectl version
    Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:07:57Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
  • 以下のLinuxコマンドを実行してTokenを生成する。
    $ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep oke-admin | awk '{print $1}')
  • 改めて、ダッシュボードにアクセスする。
  • 生成されたTokenを入力してサインインする。
    • ちなみに、このToken、分析してみると、RS256のJWSでした。
    • ただし、K8sは、Resource Serverではないと言う事で、
      このTokenはOAuth2/OIDCのTokenではないらしい。
      K8sダッシュボードにサインイン
  • ダッシュボードの表示を確認する。
    K8sダッシュボードの表示

アプリケーションのデプロイ

  • 以下のようにスタックをデプロイするらしい。
    docker stack deploy --compose-file docker-compose.yml mystack
  • 下記の参考サイトの情報から、
    以下のようにdocker-compose.ymlを作成した。
    • C:\<current_directory>\docker-compose.ymlに作成。
    • ポートはIISがインストールされているので8888に変更。
      version: '3.3'
      
      services:
        web:
          build: web
          image: dockerdemos/lab-web
          volumes:
           - "/C:/<current_directory>/web/static/:/static"
          ports:
           - "8888:80"
      
        words:
          build: words
          image: dockerdemos/lab-words
          deploy:
            replicas: 1
            endpoint_mode: dnsrr
            resources:
              limits:
                memory: 24M
              reservations:
                memory: 24M
      
        db:
          build: db
          image: dockerdemos/lab-db
  • 実際に、スタックをデプロイしてみる。
    >docker stack deploy --compose-file docker-compose.yml mystack
    Ignoring unsupported options: build
    
    service "web": build is ignored
    service "words": build is ignored
    service "db": build is ignored
    Waiting for the stack to be stable and running...
    words: Ready            [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
    web: Ready              [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
    db: Ready               [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
    
    Stack mystack is stable and running
  • 以下のアドレスにアクセスしてみるとアプリが起動する。
    • 画面に表示される単語が時間で切替わる。
    • これは、WebAPI経由でDBから取得しているらしい。

      http://localhost:8888/

  • 以下のコマンドでpodが確認できる。
    >kubectl get pod
    NAME                     READY   STATUS    RESTARTS   AGE
    db-5ff65ccc84-d5z6l      1/1     Running   0          63m
    web-79fd4ff54f-rqlkh     1/1     Running   0          63m
    words-76f98fb794-6rvvf   1/1     Running   1          63m
  • 以下のコマンドでデプロイしたスタックを確認できる。
    >docker stack ls
    NAME                SERVICES            ORCHESTRATOR        NAMESPACE
    mystack             3                   Kubernetes          default
  • 最後に、デプロイしたスタックを削除する。
    docker stack rm mystack
  • スタックをデプロイしてみる。
    >docker stack deploy --compose-file docker-compose.yaml mystack
    Ignoring unsupported options: build
    
    Igninoring deprecated options:
    
    container_name: Setting the container name is not supported.
    
    service "azure-vote-back": container_name is deprecated
    service "azure-vote-front": container_name is deprecated
    service "azure-vote-front": build is ignored
    Waiting for the stack to be stable and running...
    azure-vote-back: Ready          [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
    azure-vote-front: Ready         [pod status: 1/1 ready, 0/1 pending, 0/1 failed]
    
    Stack mystack is stable and running
    build is ignored(docker build のセクションが無視されるの)で、
      azure-vote-frontが、Pendingのままになることがあるので注意
  • デプロイしたスタックを削除する。
    docker stack rm mystack

その他

WSL2 backend

コチラ

Windows Serverコンテナ

コチラ

参考

新規サポートの追加要素

K8s

K8s on Docker Desktop for Windows

WSL2

Windows Serverコンテナ

docker.com

Blog

Docker Documentation

Publickey

CL LAB

クリエーションライン株式会社 #docker

@IT

Qiita

K8s

WSL2

開発基盤部会 Wiki

Docker

Dockerコンポーズ

Kompose

Compose on Kubernetes


Tags: :Windows, :Hyper-V, :仮想化, :コンテナ


添付ファイル: fileenable.png 490件 [詳細] filedashboard.png 510件 [詳細] filelogin.png 541件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-07-27 (木) 11:58:26 (268d)