LoginSignup
9
16

More than 5 years have passed since last update.

Docker for Windows で Kubernetes(1)

Last updated at Posted at 2018-08-08

Laptopを新調したので、改めてDocker for Windowsを Win 10 Pro に入れてみる。ここでは以下まで。

  1. 入れる
  2. Dashboard出す

環境

  • Surface Laptop ( Win 10 Pro )

about_docker.PNG

Docker for Windows インストール

ダウンロードして、エグゼたたくだけ(Hyper-V有効化も同時に)

kubernetes 有効化

ボタン押すだけ

PS C:\data> kubectl cluster-info
Kubernetes master is running at https://localhost:6445
KubeDNS is running at https://localhost:6445/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

PS C:\data> kubectl get node -o wide
NAME                 STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION         CONTAINER-RUNTIME
docker-for-desktop   Ready     master    1d        v1.10.3   <none>        Docker for Windows   4.9.93-linuxkit-aufs   docker://18.6.0

PS C:\data> kubectl get pod -o wide --all-namespaces
NAMESPACE     NAME                                         READY     STATUS    RESTARTS   AGE       IP             NODE
docker        compose-7447646cf5-bzn6g                     1/1       Running   0          1d        10.1.0.2       docker-for-desktop
docker        compose-api-6fbc44c575-h5slr                 1/1       Running   0          1d        192.168.65.3   docker-for-desktop
kube-system   etcd-docker-for-desktop                      1/1       Running   0          1d        192.168.65.3   docker-for-desktop
kube-system   kube-apiserver-docker-for-desktop            1/1       Running   0          1d        192.168.65.3   docker-for-desktop
kube-system   kube-controller-manager-docker-for-desktop   1/1       Running   0          1d        192.168.65.3   docker-for-desktop
kube-system   kube-dns-86f4d74b45-hlz9s                    3/3       Running   0          1d        10.1.0.4       docker-for-desktop
kube-system   kube-proxy-2s5j7                             1/1       Running   0          1d        192.168.65.3   docker-for-desktop
kube-system   kube-scheduler-docker-for-desktop            1/1       Running   0          1d        192.168.65.3   docker-for-desktop

Dashboard

デプロイ

PS C:\> kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

ローカル(Docker for Windowsを入れたLaptop)からブラウザアクセスするために以下を実施。

PS C:\data\dashboard> kubectl proxy
Starting to serve on 127.0.0.1:8001

へアクセス。

Service Account 作成と、ClusterRoleのバインディング

admin-user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
PS C:\data\dashboard> kubectl apply -f .\admin-user.yaml
serviceaccount "admin-user" created

Docker for Windows の kubernetes では Cluster 内に一般的なツールのロールが存在している。これを使用して、作ったSAのロールバインディングのみを作成できる。

clusterrolebind.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system
PS C:\data\dashboard> kubectl apply -f .\clusterrolebind.yaml
clusterrolebinding.rbac.authorization.k8s.io "admin-user" created
PS C:\data\dashboard> kubectl -n kube-system describe secret admin-user-token-4pcz5
Name:         admin-user-token-4pcz5
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=admin-user
              kubernetes.io/service-account.uid=47da24c7-9ad4-11e8-962d-00155d001201

Type:  kubernetes.io/service-account-token

Data
====
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6Ii <略> _5ztb06m8VPnfKm1OAA

上記の token: の部分をコピーして Kubernetes Dashboard ログインポップアップの Token に入力して、Sign in する。

vm_resource.PNG

デフォルトのVMだと、2vCPU,2GB Memoryで稼働している。上記はApp PodはDashboard以外はなにも動かしていない状態。このあと動かすとするとちょっとCPUが苦し気か・・・・

k8s が起動しない・・・問題-1

2018/9/11現在

まだきっかけが不明だが、kubernetesが starting ...のままスタックしてしまうことがある。この状態だと起動していないことになる。ネットワーク周りが引っかかってるなとおもいつつ、Github見てみたら、やはり同じ現象にはまっていた人が何人もいて、ワークアラウンドを提示していた人がいたので、それを参考にしてみた。

ワークアラウンド手順

  • Settings -> Reset ->「Reset to factory defaults...」
    • Dockerが動いているMobyLinuxVMが一度消えるので、ダウンロード済みのイメージ等全部消えるので注意
  • ファイアウォールを無効化
  • 再度、Enable Kubernetes

これで起動するようになる。
この後(あとじゃなくてもいいけど)vpnkit.exe をFirewallで許可アプリに設定する。

k8s が起動しない・・・問題-2

問題-1のワークアラウンドを実施しても、PC再起動後に、同様の減少になっている場合がある。

ワークアラウンド手順

暫定ではあるが、このときDockerはrunningだがCLIからデーモンにうまくつながらない状態になっているのであれば、DockerをRestartしてみて、きちんとデーモンへのアクセスも確認した後に、k8sをRestartするとrunningになる事がある。

9
16
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
9
16