2020年6月11日木曜日

Windows で Eclipse Che を動かす(2020/6/11 版)

Docker Desktop(Windows版) で Eclipse Che を動かす 2020/6/11 版。

前回使っていなかったので、今回も chectl は使用しません。使ったほうが楽なはず。

前提

  • OS: Windows10 Pro
  • Docker: Docker version 19.03.8, build afacb8b
  • helm: version.BuildInfo{Version:“v3.2.3”, GitCommit:“8f832046e258e2cb800894579b1b3b50c2d83492”, GitTreeState:“clean”, GoVersion:“go1.13.12”}
  • Docker Desktop の Kubernetes 有効化済み
    • Docker Desktop の Kubernetes を使う
  • インストールする che: 7.4.0

現状確認

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

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm> kubectl get pods --all-namespaces
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
docker        compose-78f95d4f8c-67gg5                 1/1     Running   0          8m41s
docker        compose-api-6ffb89dc58-zjnb6             1/1     Running   0          8m41s
kube-system   coredns-5644d7b6d9-rlb55                 1/1     Running   0          9m58s
kube-system   coredns-5644d7b6d9-z4fx8                 1/1     Running   0          9m58s
kube-system   etcd-docker-desktop                      1/1     Running   0          8m42s
kube-system   kube-apiserver-docker-desktop            1/1     Running   0          8m48s
kube-system   kube-controller-manager-docker-desktop   1/1     Running   0          8m43s
kube-system   kube-proxy-pv8dq                         1/1     Running   0          9m58s
kube-system   kube-scheduler-docker-desktop            1/1     Running   0          9m9s
kube-system   storage-provisioner                      1/1     Running   0          8m42s
kube-system   vpnkit-controller                        1/1     Running   0          8m42s

che の環境構築

che のソースコード取得

clone。

cd ~/project
git clone https://github.com/eclipse/che.git
$CHE_SOURCE=$(pwd)

helm のインストール

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

choco install kubernetes-helm

インストール済みであればアップグレード。

choco upgrade kubernetes-helm

ingress のデプロイ

ingress をデプロイ。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.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-78f95d4f8c-67gg5                    1/1     Running     0          12m
docker          compose-api-6ffb89dc58-zjnb6                1/1     Running     0          12m
ingress-nginx   ingress-nginx-admission-create-vrgbk        0/1     Completed   0          113s
ingress-nginx   ingress-nginx-admission-patch-dvjk6         0/1     Completed   0          113s
ingress-nginx   ingress-nginx-controller-5cc4589cc8-kz9f5   1/1     Running     0          2m3s
kube-system     coredns-5644d7b6d9-rlb55                    1/1     Running     0          13m
kube-system     coredns-5644d7b6d9-z4fx8                    1/1     Running     0          13m
kube-system     etcd-docker-desktop                         1/1     Running     0          12m
kube-system     kube-apiserver-docker-desktop               1/1     Running     0          12m
kube-system     kube-controller-manager-docker-desktop      1/1     Running     0          12m
kube-system     kube-proxy-pv8dq                            1/1     Running     0          13m
kube-system     kube-scheduler-docker-desktop               1/1     Running     0          13m
kube-system     storage-provisioner                         1/1     Running     0          12m
kube-system     vpnkit-controller                           1/1     Running     0          12m

NAMESPACEingress-nginx のものが 3 つ増えている。(うち 2 つは Completed)

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-controller             LoadBalancer   10.96.64.235   localhost     80:32686/TCP,443:32705/TCP   2m58s
ingress-nginx-controller-admission   ClusterIP      10.98.91.42    <none>        443/TCP                      2m58s

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

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

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

start-process -verb runas powershell -ArgumentList netsh,interface,ipv4,add,address,Loopback,$CHE_IP

追加されたことを確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> netsh interface ipv4 show address Loopback

インターフェイスの構成 "Loopback Pseudo-Interface 1"
    DHCP 有効:                         いいえ
    IP アドレス:                           10.96.64.235
    サブネット プレフィックス:                        10.0.0.0/8 (マスク 255.0.0.0)

che のデプロイ

kubectl create namespace che
cd $CHE_SOURCE\deploy\kubernetes\helm\che
helm dependency update
helm upgrade --install che --namespace che --set global.cheWorkspacesNamespace="che" --set global.ingressDomain=${CHE_IP}.nip.io ./

アプリの確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> helm list -n che
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
che     che             1               2020-06-11 01:39:49.0499342 +0900 JST   deployed        che-0.1.0

pod の確認。

PS C:\Users\mikoto\project\che\deploy\kubernetes\helm\che> kubectl get pods --all-namespaces
NAMESPACE       NAME                                        READY   STATUS      RESTARTS   AGE
che             che-976cb79f5-zzffd                         1/1     Running     0          79s
che             devfile-registry-d9fd7f648-wblg8            1/1     Running     0          79s
che             plugin-registry-58587b799b-947tb            1/1     Running     0          79s
docker          compose-78f95d4f8c-67gg5                    1/1     Running     0          30m
docker          compose-api-6ffb89dc58-zjnb6                1/1     Running     0          30m
ingress-nginx   ingress-nginx-admission-create-vrgbk        0/1     Completed   0          19m
ingress-nginx   ingress-nginx-admission-patch-dvjk6         0/1     Completed   0          19m
ingress-nginx   ingress-nginx-controller-5cc4589cc8-kz9f5   1/1     Running     0          19m
kube-system     coredns-5644d7b6d9-rlb55                    1/1     Running     0          31m
kube-system     coredns-5644d7b6d9-z4fx8                    1/1     Running     0          31m
kube-system     etcd-docker-desktop                         1/1     Running     0          30m
kube-system     kube-apiserver-docker-desktop               1/1     Running     0          30m
kube-system     kube-controller-manager-docker-desktop      1/1     Running     0          30m
kube-system     kube-proxy-pv8dq                            1/1     Running     0          31m
kube-system     kube-scheduler-docker-desktop               1/1     Running     0          30m
kube-system     storage-provisioner                         1/1     Running     0          30m
kube-system     vpnkit-controller                           1/1     Running     0          30m

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

che にアクセス

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

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

後片付け

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

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

start-process -verb runas powershell -ArgumentList netsh,interface,ipv4,delete,address,Loopback,$CHE_IP

che の削除

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

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

ingress の削除

こちらも kubectl delete で削除。

kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.32.0/deploy/static/provider/cloud/deploy.yaml

helm の削除

choco コマンドで削除。

choco uninstall kubernetes-helm

参考資料

0 件のコメント:

コメントを投稿