2019年8月2日金曜日

Windows で Eclipse Che を動かす

Windows の Docker Desktop(with Kubernetes)に Eclipse Che をデプロイした - mikoto2000 の日記 でとりあえず動くようにした。

今回は、手順を整理して後片付けの方法を追加。

前提

  • OS: Windows10 Pro
  • Docker: Docker version 19.03.1, build 74b1e89
  • helm: v2.14.2
  • Docker Desktop の Kubernetes 有効化済み
    • Docker Desktop の Kubernetes を使う
  • インストールする che: 7.0.0-rc-4.0

現状確認

Docker Desktop の Kubernetes をリセットした直後の状態を確認。

PS C:\Users\mikoto\project> kubectl get pods --all-namespaces
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
docker        compose-6c67d745f6-c2pvf                 1/1     Running   0          39m
docker        compose-api-57ff65b8c7-pnbwk             1/1     Running   0          39m
kube-system   coredns-fb8b8dccf-vt5p9                  1/1     Running   0          40m
kube-system   coredns-fb8b8dccf-wz7s7                  1/1     Running   0          40m
kube-system   etcd-docker-desktop                      1/1     Running   0          39m
kube-system   kube-apiserver-docker-desktop            1/1     Running   0          39m
kube-system   kube-controller-manager-docker-desktop   1/1     Running   0          40m
kube-system   kube-proxy-lbnfv                         1/1     Running   0          40m
kube-system   kube-scheduler-docker-desktop            1/1     Running   0          40m

うん、こんなもんでしょう。

che の環境構築

che のソースコード取得

clone して checkout。

cd ~/project
git clone https://github.com/eclipse/che.git
cd che
git checkout -b 7.0.0-rc-4.0 refs/tags/7.0.0-rc-4.0
$CHE_SOURCE=$(pwd)

helm のインストール

Chocolatey でインストール。PowerShell を管理者で開いて下記コマンドを実行。

choco install kubernetes-helm

tiller のデプロイ

kubectl apply して helm init

cd $CHE_SOURCE\deploy\kubernetes\helm\che
kubectl apply -f .\tiller-rbac.yaml
helm init --service-account tiller --wait

pod が増えているのを確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> kubectl get pods --all-namespaces
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
docker        compose-6c67d745f6-c2pvf                 1/1     Running   0          41m
docker        compose-api-57ff65b8c7-pnbwk             1/1     Running   0          41m
kube-system   coredns-fb8b8dccf-vt5p9                  1/1     Running   0          42m
kube-system   coredns-fb8b8dccf-wz7s7                  1/1     Running   0          42m
kube-system   etcd-docker-desktop                      1/1     Running   0          41m
kube-system   kube-apiserver-docker-desktop            1/1     Running   0          41m
kube-system   kube-controller-manager-docker-desktop   1/1     Running   0          42m
kube-system   kube-proxy-lbnfv                         1/1     Running   0          42m
kube-system   kube-scheduler-docker-desktop            1/1     Running   0          42m
kube-system   tiller-deploy-7f656b499f-7dblh           1/1     Running   0          13s

tiller っぽいのが増えてる。

ingress のデプロイ

ingress をデプロイ。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml

pod の確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> kubectl get pods --all-namespaces
NAMESPACE       NAME                                        READY   STATUS    RESTARTS   AGE
docker          compose-6c67d745f6-c2pvf                    1/1     Running   0          42m
docker          compose-api-57ff65b8c7-pnbwk                1/1     Running   0          42m
ingress-nginx   nginx-ingress-controller-86449c74bb-8tfdn   1/1     Running   0          65s
kube-system     coredns-fb8b8dccf-vt5p9                     1/1     Running   0          43m
kube-system     coredns-fb8b8dccf-wz7s7                     1/1     Running   0          43m
kube-system     etcd-docker-desktop                         1/1     Running   0          42m
kube-system     kube-apiserver-docker-desktop               1/1     Running   0          42m
kube-system     kube-controller-manager-docker-desktop      1/1     Running   0          43m
kube-system     kube-proxy-lbnfv                            1/1     Running   0          43m
kube-system     kube-scheduler-docker-desktop               1/1     Running   0          43m
kube-system     tiller-deploy-7f656b499f-7dblh              1/1     Running   0          86s

NAMESPACEingress-nginx のものが二つ増えている。

ingress が提供するサービスの IP アドレスをメモ。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> kubectl get services --namespace ingress-nginx
NAME            TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   LoadBalancer   10.101.143.26   localhost     80:31131/TCP,443:31708/TCP   79s

TYPELoadBalancerCLUSTER-IP をメモする。この場合は 10.101.143.26。 以降は $CHE_DOMAIN にメモした IP を設定したこととして進める。

ループバックアドレスの設定

Powershell を管理者権限で開いて、 netsh コマンドでループバックアドレスを追加する。

netsh interface ipv4 add address Loopback 10.101.143.26

che のデプロイ

cd $CHE_SOURCE\deploy\kubernetes\helm\che
helm dependency update
helm upgrade --install che --namespace che --set cheImage=eclipse/che-server:7.0.0-rc-4.0 --set global.cheWorkspacesNamespace="che" --set global.ingressDomain=${CHE_DOMAIN}.nip.io ./

pod の確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> kubectl get pods --all-namespaces
NAMESPACE       NAME                                        READY   STATUS    RESTARTS   AGE
che             che-8845cb9c4-rgl4h                         1/1     Running   0          29s
che             devfile-registry-974dd957f-4l9bf            1/1     Running   0          29s
che             plugin-registry-75bfd884cf-6lbc5            1/1     Running   0          29s
docker          compose-6c67d745f6-c2pvf                    1/1     Running   0          48m
docker          compose-api-57ff65b8c7-pnbwk                1/1     Running   0          48m
ingress-nginx   nginx-ingress-controller-86449c74bb-8tfdn   1/1     Running   0          7m18s
kube-system     coredns-fb8b8dccf-vt5p9                     1/1     Running   0          49m
kube-system     coredns-fb8b8dccf-wz7s7                     1/1     Running   0          49m
kube-system     etcd-docker-desktop                         1/1     Running   0          48m
kube-system     kube-apiserver-docker-desktop               1/1     Running   0          48m
kube-system     kube-controller-manager-docker-desktop      1/1     Running   0          49m
kube-system     kube-proxy-lbnfv                            1/1     Running   0          49m
kube-system     kube-scheduler-docker-desktop               1/1     Running   0          49m
kube-system     tiller-deploy-7f656b499f-7dblh              1/1     Running   0          7m39s

NAMESPACEche のものが 3 つ増えている。

che にアクセス

http://che-che.${CHE_DOMAIN}.nip.io にアクセスすると、 che の画面が開く。

start http://che-che.${CHE_DOMAIN}.nip.io

後片付け

ループバックアドレスの削除

管理者権限で開いた Powershell で以下のコマンドを実行。

netsh interface ipv4 delete address Loopback $CHE_DOMAIN

che の削除

helm delete --purge で削除できる。

cd $CHE_SOURCE\deploy\kubernetes\helm\che
helm delete --purge che

ingress の削除

こちらも kubectl delete で削除。

kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml
kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

tiller の削除

これで Kubernetes 上の tiller も消えるっぽい。

helm reset --force

helm の削除

choco コマンドで削除。

choco uninstall kubernetes-helm

参考資料

0 件のコメント:

コメントを投稿