TL;DR
- GKE-autopilot でTelepresence を実行可能か確認し、実際に動いた
概要
GKE-autopilot でTelepresence を実行するだけのブログ
version
- macOS
- 11.5.2
- Telepresence
- 2.4.0
- GKE-autopilot
- v1.18.20-gke
Telepresence を実行する
GKE-autopilot は構築済み
ローカルへ CLI をインストールする
$ brew install datawire/blackbird/telepresence
$ telepresence status Root Daemon: Not running User Daemon: Not running
k8s へセットアップ
$ telepresence connect
実行後、 ambassador
というnamespace が作成され、Object 郡が生成される
$ kubectl get all -n ambassador NAME READY STATUS RESTARTS AGE pod/traffic-manager-6f7b5b8c4b-bhq69 1/1 Running 0 3m56s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/agent-injector ClusterIP 10.77.129.104 <none> 443/TCP 3m56s service/traffic-manager ClusterIP None <none> 8081/TCP 3m56s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/traffic-manager 1/1 1 1 3m58s NAME DESIRED CURRENT READY AGE replicaset.apps/traffic-manager-6f7b5b8c4b 1 1 1 3m58s
疎通確認
$ curl -ik https://kubernetes.default HTTP/2 403 : { "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"", "reason": "Forbidden", "details": { }, "code": 403 }
公式ドキュメントにアーキテクチャが乗っているので、そちらを見ると想像がつきやすいかもです。
Pod を走らせる
README の通りにechoserver を立てて疎通確認をする。
telepresenceio/telepresence: Local development against a remote Kubernetes or OpenShift cluster
テスト用に telepresence
というnamespace を作成し、ここでPod を走らせる
$ kubectl create ns telepresence $ kubectl ns telepresence
Deployment とService をたてる
$ kubectl create deploy hello --image=k8s.gcr.io/echoserver:1.4 $ kubectl expose deploy hello --port 80 --target-port 8080 $ kubectl get svc,deploy,po NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/hello ClusterIP 10.77.128.79 <none> 80/TCP 2m50s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/hello 1/1 1 1 3m56s NAME READY STATUS RESTARTS AGE pod/hello-6b8bb74476-nk6sz 1/1 Running 0 3m56s
疎通確認。
$ curl hello.telepresence CLIENT VALUES: client_address=10.77.1.92 command=GET real path=/ query=nil request_version=1.1 request_uri=http://hello.telepresence:8080/ SERVER VALUES: server_version=nginx: 1.10.0 - lua: 10001 HEADERS RECEIVED: accept=*/* host=hello.telepresence user-agent=curl/7.64.1 BODY:
片付け
$ telepresence uninstall --everything $ telepresence quit
まとめ
GKE-autopilot でも動いた。
単純な動作確認とはいえ、ハマらなかったので驚き