[{"data":1,"prerenderedAt":837},["ShallowReactive",2],{"navigation_docs_en":3,"-en-remote-k8s-eks":175,"-en-remote-k8s-eks-surround":832},[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":825,"extension":826,"links":827,"meta":828,"navigation":829,"path":101,"seo":830,"stem":102,"__hash__":831},"docs_en/en/4.remote-k8s/3.eks.md","Getting started with Gefyra and Elastic Kubernetes Service (EKS)",{"type":179,"value":180,"toc":819},"minimark",[181,186,209,217,221,229,278,281,318,334,353,359,365,383,393,396,429,473,477,482,531,538,543,570,710,742,750,765,774,791,795,801,815],[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://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html",[198],"nofollow","_blank","aws"," command installed and configured",[190,203,204,205,208],{},"Follow the ",[194,206,207],{"href":17},"installation"," of Gefyra for your preferred platform",[210,211,212,213,216],"p",{},"Additionally, you need an account for the Amazon Web Services including the permission to create a new cluster. Make sure your ",[214,215,200],"code",{}," is using the right project configuration and/or profile.",[182,218,220],{"id":219},"setup-a-cluster","Setup a cluster",[187,222,223],{},[190,224,225,226,228],{},"The easiest way to create a new cluster is using ",[214,227,200],{},":",[230,231,236],"pre",{"className":232,"code":233,"language":234,"meta":235,"style":235},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","aws eks create-cluster --name gefyra --kubernetes-version 1.22 --role-arn arn:aws:iam::111122223333:role/myAmazonEKSClusterRole --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1\n","sh","",[214,237,238],{"__ignoreMap":235},[239,240,243,246,250,253,256,259,262,266,269,272,275],"span",{"class":241,"line":242},"line",1,[239,244,200],{"class":245},"sBMFI",[239,247,249],{"class":248},"sfazB"," eks",[239,251,252],{"class":248}," create-cluster",[239,254,255],{"class":248}," --name",[239,257,258],{"class":248}," gefyra",[239,260,261],{"class":248}," --kubernetes-version",[239,263,265],{"class":264},"sbssI"," 1.22",[239,267,268],{"class":248}," --role-arn",[239,270,271],{"class":248}," arn:aws:iam::111122223333:role/myAmazonEKSClusterRole",[239,273,274],{"class":248}," --resources-vpc-config",[239,276,277],{"class":248}," subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1\n",[210,279,280],{},"This may take a long time. You can check the cluster status with:",[230,282,284],{"className":232,"code":283,"language":234,"meta":235,"style":235},"> aws eks describe-cluster --name gefyra --query \"cluster.status\"\n\n\"ACTIVE\"\n",[214,285,286,305,312],{"__ignoreMap":235},[239,287,288,292,296,299,302],{"class":241,"line":242},[239,289,291],{"class":290},"sMK4o",">",[239,293,295],{"class":294},"sTEyZ"," aws eks describe-cluster --name gefyra --query ",[239,297,298],{"class":290},"\"",[239,300,301],{"class":248},"cluster.status",[239,303,304],{"class":290},"\"\n",[239,306,308],{"class":241,"line":307},2,[239,309,311],{"emptyLinePlaceholder":310},true,"\n",[239,313,315],{"class":241,"line":314},3,[239,316,317],{"class":245},"\"ACTIVE\"\n",[187,319,320,327],{"start":307},[190,321,322,323,326],{},"Depending on your way of creating the cluster, you may have to add a ",[214,324,325],{},"NodeGroup"," to  the cluster, so you can actually run workloads.",[190,328,329,330,333],{},"Pull the ",[214,331,332],{},"kubectl"," configuration to connect to the cluster, with:",[230,335,337],{"className":232,"code":336,"language":234,"meta":235,"style":235},"aws eks update-kubeconfig --name gefyra\n",[214,338,339],{"__ignoreMap":235},[239,340,341,343,345,348,350],{"class":241,"line":242},[239,342,200],{"class":245},[239,344,249],{"class":248},[239,346,347],{"class":248}," update-kubeconfig",[239,349,255],{"class":248},[239,351,352],{"class":248}," gefyra\n",[210,354,355,356,358],{},"Now you should be able to run any ",[214,357,332],{}," command in that cluster.",[187,360,362],{"start":361},4,[190,363,364],{},"Apply some workload, for example from the testing directory of this repo:",[230,366,368],{"className":232,"code":367,"language":234,"meta":235,"style":235},"kubectl apply -f https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello_dd.yaml\n",[214,369,370],{"__ignoreMap":235},[239,371,372,374,377,380],{"class":241,"line":242},[239,373,332],{"class":245},[239,375,376],{"class":248}," apply",[239,378,379],{"class":248}," -f",[239,381,382],{"class":248}," https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello_dd.yaml\n",[187,384,386],{"start":385},5,[190,387,388,392],{},[389,390,391],"strong",{},"Important:"," before Gefyra can connect from outside the cluster, you must set the security group of the nodes to allow UDP traffic on port 31820.",[210,394,395],{},"Find out the security group of the cluster. Then, create the required inbound traffic rule:",[230,397,399],{"className":232,"code":398,"language":234,"meta":235,"style":235},"> aws eks describe-cluster --name gefyra --query \"cluster.resourcesVpcConfig.clusterSecurityGroupId\"\n\n\u003Csecurity-group-id>\n",[214,400,401,414,418],{"__ignoreMap":235},[239,402,403,405,407,409,412],{"class":241,"line":242},[239,404,291],{"class":290},[239,406,295],{"class":294},[239,408,298],{"class":290},[239,410,411],{"class":248},"cluster.resourcesVpcConfig.clusterSecurityGroupId",[239,413,304],{"class":290},[239,415,416],{"class":241,"line":307},[239,417,311],{"emptyLinePlaceholder":310},[239,419,420,423,426],{"class":241,"line":314},[239,421,422],{"class":290},"\u003C",[239,424,425],{"class":294},"security-group-id",[239,427,428],{"class":290},">\n",[230,430,432],{"className":232,"code":431,"language":234,"meta":235,"style":235},"aws ec2 authorize-security-group-ingress --group-id \"\u003Csecurity-group-id>\" --protocol udp --port 31820  --cidr 0.0.0.0/0\n",[214,433,434],{"__ignoreMap":235},[239,435,436,438,441,444,447,450,453,455,458,461,464,467,470],{"class":241,"line":242},[239,437,200],{"class":245},[239,439,440],{"class":248}," ec2",[239,442,443],{"class":248}," authorize-security-group-ingress",[239,445,446],{"class":248}," --group-id",[239,448,449],{"class":290}," \"",[239,451,452],{"class":248},"\u003Csecurity-group-id>",[239,454,298],{"class":290},[239,456,457],{"class":248}," --protocol",[239,459,460],{"class":248}," udp",[239,462,463],{"class":248}," --port",[239,465,466],{"class":264}," 31820",[239,468,469],{"class":248},"  --cidr",[239,471,472],{"class":248}," 0.0.0.0/0\n",[182,474,476],{"id":475},"running-gefyra","Running Gefyra",[187,478,479],{},[190,480,481],{},"At first, we need a host IP of one of our nodes. You can get\nthem by running",[230,483,485],{"className":232,"code":484,"language":234,"meta":235,"style":235},"kubectl get nodes -o wide |  awk {'print $1\" \" $2 \" \" $7'} | column -t\n",[214,486,487],{"__ignoreMap":235},[239,488,489,491,494,497,500,503,506,509,512,515,518,520,523,525,528],{"class":241,"line":242},[239,490,332],{"class":245},[239,492,493],{"class":248}," get",[239,495,496],{"class":248}," nodes",[239,498,499],{"class":248}," -o",[239,501,502],{"class":248}," wide",[239,504,505],{"class":290}," |",[239,507,508],{"class":245},"  awk",[239,510,511],{"class":248}," {",[239,513,514],{"class":290},"'",[239,516,517],{"class":248},"print $1\" \" $2 \" \" $7",[239,519,514],{"class":290},[239,521,522],{"class":248},"}",[239,524,505],{"class":290},[239,526,527],{"class":245}," column",[239,529,530],{"class":248}," -t\n",[210,532,533,534,537],{},"Pick one of them from the ",[214,535,536],{},"EXTERNAL-IP"," column.",[187,539,540],{"start":307},[190,541,542],{},"Now you can run",[230,544,546],{"className":232,"code":545,"language":234,"meta":235,"style":235},"gefyra up --host \u003CIP>\n",[214,547,548],{"__ignoreMap":235},[239,549,550,553,556,559,562,565,568],{"class":241,"line":242},[239,551,552],{"class":245},"gefyra",[239,554,555],{"class":248}," up",[239,557,558],{"class":248}," --host",[239,560,561],{"class":290}," \u003C",[239,563,564],{"class":248},"I",[239,566,567],{"class":294},"P",[239,569,428],{"class":290},[187,571,572,707],{"start":314},[190,573,574,575,580,617,622,652,661,682,691],{},"Run a local Docker image with Gefyra to make it part of the cluster.",[187,576,577],{},[190,578,579],{},"Build your Docker image with a local tag, for example from the testing directory:",[230,581,583],{"className":232,"code":582,"language":234,"meta":235,"style":235},"cd testing/images/ && docker build -f Dockerfile.local . -t pyserver\n",[214,584,585],{"__ignoreMap":235},[239,586,587,591,594,597,600,603,605,608,611,614],{"class":241,"line":242},[239,588,590],{"class":589},"s2Zo4","cd",[239,592,593],{"class":248}," testing/images/",[239,595,596],{"class":290}," &&",[239,598,599],{"class":245}," docker",[239,601,602],{"class":248}," build",[239,604,379],{"class":248},[239,606,607],{"class":248}," Dockerfile.local",[239,609,610],{"class":248}," .",[239,612,613],{"class":248}," -t",[239,615,616],{"class":248}," pyserver\n",[187,618,619],{"start":307},[190,620,621],{},"Execute Gefyra's run command:",[230,623,625],{"className":232,"code":624,"language":234,"meta":235,"style":235},"gefyra run -i pyserver -N mypyserver -n default\n",[214,626,627],{"__ignoreMap":235},[239,628,629,631,634,637,640,643,646,649],{"class":241,"line":242},[239,630,552],{"class":245},[239,632,633],{"class":248}," run",[239,635,636],{"class":248}," -i",[239,638,639],{"class":248}," pyserver",[239,641,642],{"class":248}," -N",[239,644,645],{"class":248}," mypyserver",[239,647,648],{"class":248}," -n",[239,650,651],{"class":248}," default\n",[187,653,654],{"start":314},[190,655,656,660],{},[657,658,659],"em",{},"Exec"," into the running container and look around. You will find the container to run within your Kubernetes cluster.",[230,662,664],{"className":232,"code":663,"language":234,"meta":235,"style":235},"docker exec -it mypyserver bash\n",[214,665,666],{"__ignoreMap":235},[239,667,668,671,674,677,679],{"class":241,"line":242},[239,669,670],{"class":245},"docker",[239,672,673],{"class":248}," exec",[239,675,676],{"class":248}," -it",[239,678,645],{"class":248},[239,680,681],{"class":248}," bash\n",[187,683,684],{"start":361},[190,685,686,687,690],{},"Print out the website of the cluster service ",[657,688,689],{},"hello-nginx"," from within the cluster.",[230,692,694],{"className":232,"code":693,"language":234,"meta":235,"style":235},"wget -O- hello-nginx\n",[214,695,696],{"__ignoreMap":235},[239,697,698,701,704],{"class":241,"line":242},[239,699,700],{"class":245},"wget",[239,702,703],{"class":248}," -O-",[239,705,706],{"class":248}," hello-nginx\n",[190,708,709],{},"Create a bridge to intercept the traffic to the cluster application with the one running locally:",[230,711,713],{"className":232,"code":712,"language":234,"meta":235,"style":235},"gefyra bridge -N mypyserver -n default --port 80:8000 --target deploy/hello-nginxdemo/hello-nginx\n",[214,714,715],{"__ignoreMap":235},[239,716,717,719,722,724,726,728,731,733,736,739],{"class":241,"line":242},[239,718,552],{"class":245},[239,720,721],{"class":248}," bridge",[239,723,642],{"class":248},[239,725,645],{"class":248},[239,727,648],{"class":248},[239,729,730],{"class":248}," default",[239,732,463],{"class":248},[239,734,735],{"class":248}," 80:8000",[239,737,738],{"class":248}," --target",[239,740,741],{"class":248}," deploy/hello-nginxdemo/hello-nginx\n",[187,743,744],{"start":385},[190,745,746,747,228],{},"List all running ",[657,748,749],{},"bridges",[230,751,753],{"className":232,"code":752,"language":234,"meta":235,"style":235},"gefyra list --bridges\n",[214,754,755],{"__ignoreMap":235},[239,756,757,759,762],{"class":241,"line":242},[239,758,552],{"class":245},[239,760,761],{"class":248}," list",[239,763,764],{"class":248}," --bridges\n",[187,766,768],{"start":767},6,[190,769,770,773],{},[657,771,772],{},"Unbridge"," the local container and reset the cluster to its original state:",[230,775,777],{"className":232,"code":776,"language":234,"meta":235,"style":235},"gefyra unbridge -N mypybridge\n",[214,778,779],{"__ignoreMap":235},[239,780,781,783,786,788],{"class":241,"line":242},[239,782,552],{"class":245},[239,784,785],{"class":248}," unbridge",[239,787,642],{"class":248},[239,789,790],{"class":248}," mypybridge\n",[182,792,794],{"id":793},"cleaning-up","Cleaning up",[210,796,797,798],{},"Remove Gefyra's components from the cluster with ",[214,799,800],{},"gefyra down",[802,803,804,808,809,814],"card",{},[805,806,807],"template",{"v-slot:title":235},"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,810,813],{"href":811,"rel":812,"target":199},"https://forms.gle/AWT9NparpTVk8E978",[198],"feedback form",".",[816,817,818],"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 pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":235,"searchDepth":307,"depth":307,"links":820},[821,822,823,824],{"id":184,"depth":307,"text":185},{"id":219,"depth":307,"text":220},{"id":475,"depth":307,"text":476},{"id":793,"depth":307,"text":794},"This guide will show you how to use Gefyra for the remote development of a Kubernetes application running on Elastic Kubernetes Service (EKS).","md",null,{},{"icon":103,"title":100},{"title":177,"description":825},"0JPX3fcG2FyRmfyoueq6HU0vpvWHTS4PRCquyV2VJx8",[833,835],{"title":95,"path":96,"stem":97,"description":834,"icon":98,"children":-1},"This guide will show you how to use Gefyra for the remote development of a Kubernetes Application running in the Google Kubernetes Engine (GKE).",{"title":105,"path":106,"stem":107,"description":836,"icon":47,"children":-1},"This guide will show you how to use Gefyra for the remote development of a Kubernetes application running on MetaKube.",1775752112179]