#事前準備
GKEクラスタ作成します。
機能として「Cloud Run for Anthosの有効化」にチェックをつけます
#External
クラスタ外からアクセス可能なサービスを作成します。
作成したGKEクラスタを指定します。
接続として外部を指定します。
サンプルのコンテナイメージ(gcr.io/cloudrun/hello)を指定します。
接続を確認します。外部からの接続は、Istio Ingress Gatewayを経由して行います。
デプロイしたサービスのURLの横の!マークをクリックします。curlコマンドが表示されるのでCloud shellなどで実行します。
または、
GKEの管理画面のサイドバーから「Service と Ingress」を選択し、Istio-ingressのエンドポイント(External IP)を確認する。
Hostヘッダーに作成したCloud RunサービスのURLを指定し、接続先IPアドレスにIstio-ingressのエンドポイント(External IP)を指定します。Portの指定は不要です。
$ curl -v -H "Host: XXX.default.example.com" http://XXX.XXX.XXX.XXX
* Expire in 0 ms for 6 (transfer 0x555f9647bfb0)
* Trying XXX.XXX.XXX.XXX...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x555f9647bfb0)
* Connected to XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) port 80 (#0)
> GET / HTTP/1.1
> Host: hello-external.default.example.com
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 200 OK
< content-type: text/html; charset=utf-8
< date: Wed, 08 Jul 2020 08:59:31 GMT
< x-envoy-upstream-service-time: 2819
< server: istio-envoy
< transfer-encoding: chunked
<
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Congratulations | Cloud Run</title>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="preload" as="font">
<link
-略-
</body>
</html>
* Connection #0 to host XXX.XXX.XXX.XXX left intact
#Internal
クラスタ外からアクセス可能なサービスを作成します。
作成したGKEクラスタを指定します。
接続として内部を指定します。
*先程のサービスをコピーして作っています。
デプロイしたサービスのURLの横の!マークをクリックします。curlコマンドが表示されるのでCloud shellなどで実行します。
または、
接続を確認します。クラスタ内からの接続のため、Podを起動してCurlを実行します。
Urlは、Cloud RunサービスのURLを指定します。
$ gcloud container clusters get-credentials <Cluster name> --zone <Zone name>
$ kubectl run curl --image=radial/busyboxplus:curl -i --tty --rm
$ curl http://XXX.default.svc.cluster.local
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Congratulations | Cloud Run</title>