[{"data":1,"prerenderedAt":607},["ShallowReactive",2],{"navigation_docs_en":3,"-en-remote-k8s-gcp":175,"-en-remote-k8s-gcp-surround":602},[4,35,64,86,108,135,150],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Quick Start",false,"/en/quick-start","en/1.quick-start",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/en/quick-start/introduction","en/1.quick-start/1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/en/quick-start/installation","en/1.quick-start/2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Getting Started","/en/quick-start/getting-started","en/1.quick-start/3.getting-started","i-lucide-rocket",{"title":26,"path":27,"stem":28,"icon":29},"Docker Desktop Extension","/en/quick-start/docker-desktop-extension","en/1.quick-start/4.docker-desktop-extension","i-simple-icons-docker",{"title":31,"path":32,"stem":33,"icon":34},"CLI","/en/quick-start/cli","en/1.quick-start/5.cli","i-lucide-square-terminal",{"title":36,"path":37,"stem":38,"children":39,"page":6},"Local Environments","/en/local-environments","en/2.local-environments",[40,43,48,52,56,60],{"title":21,"path":41,"stem":42,"icon":24},"/en/local-environments/getting-started","en/2.local-environments/1.getting-started",{"title":44,"path":45,"stem":46,"icon":47},"Colima Kubernetes","/en/local-environments/colima","en/2.local-environments/2.colima","i-simple-icons-kubernetes",{"title":49,"path":50,"stem":51,"icon":29},"Docker Desktop Kubernetes (OSX)","/en/local-environments/docker-desktop-osx","en/2.local-environments/3.docker-desktop-osx",{"title":53,"path":54,"stem":55},"k3d","/en/local-environments/k3d","en/2.local-environments/4.k3d",{"title":57,"path":58,"stem":59},"kind","/en/local-environments/kind","en/2.local-environments/5.kind",{"title":61,"path":62,"stem":63},"minikube","/en/local-environments/minikube","en/2.local-environments/5.minikube",{"title":65,"path":66,"stem":67,"children":68,"page":6},"Shared Environments","/en/shared-environments","en/3.shared-environments",[69,72,76,81],{"title":21,"path":70,"stem":71,"icon":24},"/en/shared-environments/getting-started","en/3.shared-environments/1.getting-started",{"title":73,"path":74,"stem":75,"icon":19},"Installing Gefyra in a Cluster","/en/shared-environments/installation","en/3.shared-environments/2.installation",{"title":77,"path":78,"stem":79,"icon":80},"Managing Gefyra Clients","/en/shared-environments/clients","en/3.shared-environments/3.clients","i-lucide-computer",{"title":82,"path":83,"stem":84,"icon":85},"Connecting to Gefyra","/en/shared-environments/connecting","en/3.shared-environments/4.connecting","i-lucide-link",{"title":87,"path":88,"stem":89,"children":90,"page":6},"Remote K8s","/en/remote-k8s","en/4.remote-k8s",[91,94,99,104],{"title":21,"path":92,"stem":93,"icon":24},"/en/remote-k8s/getting-started","en/4.remote-k8s/1.getting-started",{"title":95,"path":96,"stem":97,"icon":98},"Google Cloud Platform (GCP)","/en/remote-k8s/gcp","en/4.remote-k8s/2.gcp","i-material-icon-theme:gcp",{"title":100,"path":101,"stem":102,"icon":103},"Elastic Kubernetes Service (EKS)","/en/remote-k8s/eks","en/4.remote-k8s/3.eks","i-simple-icons-amazoneks",{"title":105,"path":106,"stem":107,"icon":47},"SysEleven MetaKubde Kubernetes","/en/remote-k8s/sys11","en/4.remote-k8s/4.sys11",{"title":109,"path":110,"stem":111,"children":112,"page":6},"Use Cases and Demos","/en/usecases-and-demos","en/5.usecases-and-demos",[113,116,121,126,130],{"title":21,"path":114,"stem":115,"icon":24},"/en/usecases-and-demos/getting-started","en/5.usecases-and-demos/1.getting-started",{"title":117,"path":118,"stem":119,"icon":120},"Developing Go Applications with Gefyra","/en/usecases-and-demos/golang","en/5.usecases-and-demos/2.golang","i-simple-icons-go",{"title":122,"path":123,"stem":124,"icon":125},"OAuth2 Demo with a Sidecar","/en/usecases-and-demos/oauth2-demo","en/5.usecases-and-demos/3.oauth2-demo","i-devicon-plain:oauth",{"title":127,"path":128,"stem":129,"icon":98},"Remote Development on Google Kubernetes Engine","/en/usecases-and-demos/remote-gke","en/5.usecases-and-demos/4.remote-gke",{"title":131,"path":132,"stem":133,"icon":134},"Run an Ubuntu Container instance","/en/usecases-and-demos/ubuntu-in-namespace","en/5.usecases-and-demos/5.ubuntu-in-namespace","i-simple-icons-ubuntu",{"title":136,"path":137,"stem":138,"children":139,"page":6},"Technical Details","/en/technical-details","en/6.technical-details",[140,145],{"title":141,"path":142,"stem":143,"icon":144},"Architecture","/en/technical-details/architecture","en/6.technical-details/1.architecture","i-lucide-square-chevron-right",{"title":146,"path":147,"stem":148,"icon":149},"What is Gefyra?","/en/technical-details/what-is-gefyra","en/6.technical-details/2.what-is-gefyra","i-lucide-circle-question-mark",{"title":151,"path":152,"stem":153,"children":154,"page":6},"Information","/en/information","en/7.information",[155,160,165,170],{"title":156,"path":157,"stem":158,"icon":159},"Run vs. Bridge","/en/information/run-vs-bridge","en/7.information/1.run-vs-bridge","i-lucide-git-compare-arrows",{"title":161,"path":162,"stem":163,"icon":164},"What changed in Gefyra 2?","/en/information/v1-vs-v2","en/7.information/2.v1-vs-v2","i-lucide-history",{"title":166,"path":167,"stem":168,"icon":169},"Media","/en/information/media","en/7.information/3.media","i-lucide-play",{"title":171,"path":172,"stem":173,"icon":174},"About","/en/information/about","en/7.information/4.about","i-lucide-info",{"id":176,"title":177,"body":178,"description":595,"extension":596,"links":597,"meta":598,"navigation":599,"path":96,"seo":600,"stem":97,"__hash__":601},"docs_en/en/4.remote-k8s/2.gcp.md","Getting started with Gefyra and the Google Cloud Platform",{"type":179,"value":180,"toc":589},"minimark",[181,186,209,218,222,227,258,261,267,293,299,318,322,478,511,521,536,545,562,566,572,585],[182,183,185],"h2",{"id":184},"prerequisites","Prerequisites",[187,188,189,202],"ol",{},[190,191,192,193,201],"li",{},"You have the ",[194,195,200],"a",{"href":196,"rel":197,"target":199},"https://cloud.google.com/sdk/docs/install-sdk",[198],"nofollow","_blank","gcloud"," command installed",[190,203,204,205,208],{},"Follow the ",[194,206,207],{"href":17},"installation"," of Gefyra for your preferred platform",[210,211,212,213,217],"p",{},"Additionally you need an account for the Google Cloud Platform including the permission to create a new cluster. Make sure your gcloud is using the right project configuration. Googles documentation is available ",[194,214,216],{"href":196,"rel":215,"target":199},[198],"here",".",[182,219,221],{"id":220},"setup-a-cluster","Setup a cluster",[187,223,224],{},[190,225,226],{},"The easiest way to create a new cluster is using gcloud:",[228,229,234],"pre",{"className":230,"code":231,"language":232,"meta":233,"style":233},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","gcloud container clusters create spacecraft\n","sh","",[235,236,237],"code",{"__ignoreMap":233},[238,239,242,245,249,252,255],"span",{"class":240,"line":241},"line",1,[238,243,200],{"class":244},"sBMFI",[238,246,248],{"class":247},"sfazB"," container",[238,250,251],{"class":247}," clusters",[238,253,254],{"class":247}," create",[238,256,257],{"class":247}," spacecraft\n",[210,259,260],{},"This may take a few minutes, there will be 3 VM instances running a kubernetes cluster ready to serve your applications. gcloud will set your kubectl context to the created cluster, nothing to worry about!",[187,262,264],{"start":263},2,[190,265,266],{},"The last thing we need to do is open a port in the firewall. This allows gefyra to connect to the cluster using wireguard:",[228,268,270],{"className":230,"code":269,"language":232,"meta":233,"style":233},"gcloud compute firewall-rules create gefyra --allow udp:31820\n",[235,271,272],{"__ignoreMap":233},[238,273,274,276,279,282,284,287,290],{"class":240,"line":241},[238,275,200],{"class":244},[238,277,278],{"class":247}," compute",[238,280,281],{"class":247}," firewall-rules",[238,283,254],{"class":247},[238,285,286],{"class":247}," gefyra",[238,288,289],{"class":247}," --allow",[238,291,292],{"class":247}," udp:31820\n",[187,294,296],{"start":295},3,[190,297,298],{},"Apply some workload, for example from the testing directory of this repo:",[228,300,302],{"className":230,"code":301,"language":232,"meta":233,"style":233},"kubectl apply -f https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello_dd.yaml\n",[235,303,304],{"__ignoreMap":233},[238,305,306,309,312,315],{"class":240,"line":241},[238,307,308],{"class":244},"kubectl",[238,310,311],{"class":247}," apply",[238,313,314],{"class":247}," -f",[238,316,317],{"class":247}," https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello_dd.yaml\n",[182,319,321],{"id":320},"running-gefyra","Running Gefyra",[187,323,324,331,337,475],{},[190,325,326,327,330],{},"At first, we need a host IP of one of our compute instances. You can get\nthem with running ",[235,328,329],{},"gcloud compute instances list",". Pick one of them.",[190,332,333,334],{},"Now you can run ",[235,335,336],{},"gefyra up --host \u003CIP>",[190,338,339,340,345,383,388,419,428,449,459],{},"Run a local Docker image with Gefyra in order to  make it part of the cluster.",[187,341,342],{},[190,343,344],{},"Build your Docker image with a local tag, for example from the testing directory:",[228,346,348],{"className":230,"code":347,"language":232,"meta":233,"style":233},"cd testing/images/ && docker build -f Dockerfile.local . -t pyserver\n",[235,349,350],{"__ignoreMap":233},[238,351,352,356,359,363,366,369,371,374,377,380],{"class":240,"line":241},[238,353,355],{"class":354},"s2Zo4","cd",[238,357,358],{"class":247}," testing/images/",[238,360,362],{"class":361},"sMK4o"," &&",[238,364,365],{"class":244}," docker",[238,367,368],{"class":247}," build",[238,370,314],{"class":247},[238,372,373],{"class":247}," Dockerfile.local",[238,375,376],{"class":247}," .",[238,378,379],{"class":247}," -t",[238,381,382],{"class":247}," pyserver\n",[187,384,385],{"start":263},[190,386,387],{},"Execute Gefyra's run command:",[228,389,391],{"className":230,"code":390,"language":232,"meta":233,"style":233},"gefyra run -i pyserver -N mypyserver -n default\n",[235,392,393],{"__ignoreMap":233},[238,394,395,398,401,404,407,410,413,416],{"class":240,"line":241},[238,396,397],{"class":244},"gefyra",[238,399,400],{"class":247}," run",[238,402,403],{"class":247}," -i",[238,405,406],{"class":247}," pyserver",[238,408,409],{"class":247}," -N",[238,411,412],{"class":247}," mypyserver",[238,414,415],{"class":247}," -n",[238,417,418],{"class":247}," default\n",[187,420,421],{"start":295},[190,422,423,427],{},[424,425,426],"em",{},"Exec"," into the running container and look around. You will find the container to run within your Kubernetes cluster.",[228,429,431],{"className":230,"code":430,"language":232,"meta":233,"style":233},"docker exec -it mypyserver bash\n",[235,432,433],{"__ignoreMap":233},[238,434,435,438,441,444,446],{"class":240,"line":241},[238,436,437],{"class":244},"docker",[238,439,440],{"class":247}," exec",[238,442,443],{"class":247}," -it",[238,445,412],{"class":247},[238,447,448],{"class":247}," bash\n",[187,450,452],{"start":451},4,[190,453,454,455,458],{},"Print out the website of the cluster service ",[424,456,457],{},"hello-nginx"," from within the cluster.",[228,460,462],{"className":230,"code":461,"language":232,"meta":233,"style":233},"wget -O- hello-nginx\n",[235,463,464],{"__ignoreMap":233},[238,465,466,469,472],{"class":240,"line":241},[238,467,468],{"class":244},"wget",[238,470,471],{"class":247}," -O-",[238,473,474],{"class":247}," hello-nginx\n",[190,476,477],{},"Create a bridge in order to intercept the traffic to the cluster application with the one running locally:",[228,479,481],{"className":230,"code":480,"language":232,"meta":233,"style":233},"gefyra bridge -N mypyserver -n default --port 80:8000 --target deploy/hello-nginxdemo/hello-nginx\n",[235,482,483],{"__ignoreMap":233},[238,484,485,487,490,492,494,496,499,502,505,508],{"class":240,"line":241},[238,486,397],{"class":244},[238,488,489],{"class":247}," bridge",[238,491,409],{"class":247},[238,493,412],{"class":247},[238,495,415],{"class":247},[238,497,498],{"class":247}," default",[238,500,501],{"class":247}," --port",[238,503,504],{"class":247}," 80:8000",[238,506,507],{"class":247}," --target",[238,509,510],{"class":247}," deploy/hello-nginxdemo/hello-nginx\n",[187,512,514],{"start":513},5,[190,515,516,517,520],{},"List all running ",[424,518,519],{},"bridges",":",[228,522,524],{"className":230,"code":523,"language":232,"meta":233,"style":233},"gefyra list --bridges\n",[235,525,526],{"__ignoreMap":233},[238,527,528,530,533],{"class":240,"line":241},[238,529,397],{"class":244},[238,531,532],{"class":247}," list",[238,534,535],{"class":247}," --bridges\n",[187,537,539],{"start":538},6,[190,540,541,544],{},[424,542,543],{},"Unbridge"," the local container and reset the cluster to its original state:",[228,546,548],{"className":230,"code":547,"language":232,"meta":233,"style":233},"gefyra unbridge -N mypybridge\n",[235,549,550],{"__ignoreMap":233},[238,551,552,554,557,559],{"class":240,"line":241},[238,553,397],{"class":244},[238,555,556],{"class":247}," unbridge",[238,558,409],{"class":247},[238,560,561],{"class":247}," mypybridge\n",[182,563,565],{"id":564},"cleaning-up","Cleaning up",[210,567,568,569],{},"Remove Gefyra's components from the cluster with ",[235,570,571],{},"gefyra down",[573,574,575,579,580,217],"card",{},[576,577,578],"template",{"v-slot:title":233},"Please provide us with your feedback","Did everything work as expected? How was the experience of using Gefyra? We'd appreciate if you could take 2 minutes of your time to fill out our ",[194,581,584],{"href":582,"rel":583,"target":199},"https://forms.gle/AWT9NparpTVk8E978",[198],"feedback form",[586,587,588],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":233,"searchDepth":263,"depth":263,"links":590},[591,592,593,594],{"id":184,"depth":263,"text":185},{"id":220,"depth":263,"text":221},{"id":320,"depth":263,"text":321},{"id":564,"depth":263,"text":565},"This guide will show you how to use Gefyra for the remote development of a Kubernetes Application running in the Google Kubernetes Engine (GKE).","md",null,{},{"icon":98,"title":95},{"title":177,"description":595},"SXcodrCJ2hjG-N5TBhT2OW-a0UCEDAzaIStVxVG3zOk",[603,605],{"title":21,"path":92,"stem":93,"description":604,"icon":24,"children":-1},"This chapter contains guides on how to set up shared remote Kubernetes for Gefyra. These guides are for multiple clients use cases.",{"title":100,"path":101,"stem":102,"description":606,"icon":103,"children":-1},"This guide will show you how to use Gefyra for the remote development of a Kubernetes application running on Elastic Kubernetes Service (EKS).",1775752110498]