[{"data":1,"prerenderedAt":1285},["ShallowReactive",2],{"navigation_docs_en":3,"-en-shared-environments-installation":175,"-en-shared-environments-installation-surround":1280},[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":1273,"extension":1274,"links":1275,"meta":1276,"navigation":1277,"path":74,"seo":1278,"stem":75,"__hash__":1279},"docs_en/en/3.shared-environments/2.installation.md","Gefyra (Remote) Cluster Installation",{"type":179,"value":180,"toc":1265},"minimark",[181,186,199,203,207,215,364,372,375,403,406,413,417,428,436,441,469,681,688,699,706,715,721,735,742,745,770,773,965,968,972,975,978,1035,1053,1067,1261],[182,183,185],"h2",{"id":184},"prerequisites","Prerequisites",[187,188,189],"ul",{},[190,191,192,193,198],"li",{},"Gefyra is ",[194,195,197],"a",{"href":196},"/en/quick-start/installation/","available"," (at least in version 2.0.0)",[182,200,202],{"id":201},"the-installation","The Installation",[204,205,206],"p",{},"There are a couple of options for the installation procedure. Gefyra's executable ships with all required Kubernetes configs for that specific version.",[204,208,209,210,214],{},"To introspect what is going to be installed into your cluster, just run ",[211,212,213],"code",{},"gefyra install",". This command generates a list of Kubernetes objects that can either be stored for manual modification, or directly applied to the cluster.",[216,217,222],"pre",{"className":218,"code":219,"language":220,"meta":221,"style":221},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","> gefyra install\n\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: gefyra\n\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: gefyra-operator\n  namespace: gefyra\n\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\n[...]\n","sh","",[211,223,224,237,244,255,264,270,279,284,290,297,305,310,318,326,331,336,344,352],{"__ignoreMap":221},[225,226,229,233],"span",{"class":227,"line":228},"line",1,[225,230,232],{"class":231},"sMK4o",">",[225,234,236],{"class":235},"sTEyZ"," gefyra install\n",[225,238,240],{"class":227,"line":239},2,[225,241,243],{"emptyLinePlaceholder":242},true,"\n",[225,245,247,251],{"class":227,"line":246},3,[225,248,250],{"class":249},"sBMFI","apiVersion:",[225,252,254],{"class":253},"sfazB"," v1\n",[225,256,258,261],{"class":227,"line":257},4,[225,259,260],{"class":249},"kind:",[225,262,263],{"class":253}," Namespace\n",[225,265,267],{"class":227,"line":266},5,[225,268,269],{"class":249},"metadata:\n",[225,271,273,276],{"class":227,"line":272},6,[225,274,275],{"class":249},"  name:",[225,277,278],{"class":253}," gefyra\n",[225,280,282],{"class":227,"line":281},7,[225,283,243],{"emptyLinePlaceholder":242},[225,285,287],{"class":227,"line":286},8,[225,288,289],{"class":249},"---\n",[225,291,293,295],{"class":227,"line":292},9,[225,294,250],{"class":249},[225,296,254],{"class":253},[225,298,300,302],{"class":227,"line":299},10,[225,301,260],{"class":249},[225,303,304],{"class":253}," ServiceAccount\n",[225,306,308],{"class":227,"line":307},11,[225,309,269],{"class":249},[225,311,313,315],{"class":227,"line":312},12,[225,314,275],{"class":249},[225,316,317],{"class":253}," gefyra-operator\n",[225,319,321,324],{"class":227,"line":320},13,[225,322,323],{"class":249},"  namespace:",[225,325,278],{"class":253},[225,327,329],{"class":227,"line":328},14,[225,330,243],{"emptyLinePlaceholder":242},[225,332,334],{"class":227,"line":333},15,[225,335,289],{"class":249},[225,337,339,341],{"class":227,"line":338},16,[225,340,250],{"class":249},[225,342,343],{"class":253}," rbac.authorization.k8s.io/v1\n",[225,345,347,349],{"class":227,"line":346},17,[225,348,260],{"class":249},[225,350,351],{"class":253}," ClusterRole\n",[225,353,355,358,361],{"class":227,"line":354},18,[225,356,357],{"class":231},"[",[225,359,360],{"class":235},"...",[225,362,363],{"class":231},"]\n",[204,365,366,367,371],{},"Please check out the ",[194,368,370],{"href":369},"/en/quick-start/cli#install","CLI reference for that command",".",[204,373,374],{},"If the default configuration is suitable for your environment, directly apply it with:",[216,376,378],{"className":218,"code":377,"language":220,"meta":221,"style":221},"gefyra install | kubectl apply -f -\n",[211,379,380],{"__ignoreMap":221},[225,381,382,385,388,391,394,397,400],{"class":227,"line":228},[225,383,384],{"class":249},"gefyra",[225,386,387],{"class":253}," install",[225,389,390],{"class":231}," |",[225,392,393],{"class":249}," kubectl",[225,395,396],{"class":253}," apply",[225,398,399],{"class":253}," -f",[225,401,402],{"class":253}," -\n",[204,404,405],{},"That will pipe the Kubernetes configs generated by Gefyra's install command directly into the cluster context that is currently active.",[407,408,409,410,371],"note",{},"Check your active cluster context with ",[211,411,412],{},"kubectl config current-context",[182,414,416],{"id":415},"default-networking","Default networking",[204,418,419,420,427],{},"Gefyra depends on a working ",[194,421,426],{"href":422,"rel":423,"target":425},"https://www.wireguard.com/",[424],"nofollow","_blank","Wireguard VPN"," connection between the cluster and Gefyra's clients. Setting up that connection is completely managed by Gefyra and only requires little configuration from a cluster admin: that is configuring the VPN route.",[407,429,430,431,435],{},"Gefyra's default to expose its Wireguard endpoint is via a Kubernetes service of type ",[432,433,434],"strong",{},"NodePort",". However, this can only work if the Kubernetes nodes have a public (internet-routable) IP address, or at least this IP is reachable for all clients.",[204,437,438,439,371],{},"You can check out the Kubernetes service object in the output of ",[211,440,213],{},[216,442,444],{"className":218,"code":443,"language":220,"meta":221,"style":221},"gefyra install | grep \"type:\" -B21\n",[211,445,446],{"__ignoreMap":221},[225,447,448,450,452,454,457,460,463,466],{"class":227,"line":228},[225,449,384],{"class":249},[225,451,387],{"class":253},[225,453,390],{"class":231},[225,455,456],{"class":249}," grep",[225,458,459],{"class":231}," \"",[225,461,462],{"class":253},"type:",[225,464,465],{"class":231},"\"",[225,467,468],{"class":253}," -B21\n",[216,470,474],{"className":471,"code":472,"language":473,"meta":221,"style":221},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","apiVersion: v1\nkind: Service\nmetadata:\n  annotations: {}\n  labels:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  name: gefyra-stowaway-wireguard\n  namespace: gefyra\nspec:\n  ports:\n  - name: gefyra-wireguard\n    nodePort: 31820\n    port: 51820\n    protocol: UDP\n    targetPort: 51820\n  selector:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  type: NodePort\n","yaml",[211,475,476,487,496,504,514,521,531,540,550,560,569,576,583,596,607,617,627,636,643,652,661,670],{"__ignoreMap":221},[225,477,478,482,485],{"class":227,"line":228},[225,479,481],{"class":480},"swJcz","apiVersion",[225,483,484],{"class":231},":",[225,486,254],{"class":253},[225,488,489,491,493],{"class":227,"line":239},[225,490,57],{"class":480},[225,492,484],{"class":231},[225,494,495],{"class":253}," Service\n",[225,497,498,501],{"class":227,"line":246},[225,499,500],{"class":480},"metadata",[225,502,503],{"class":231},":\n",[225,505,506,509,511],{"class":227,"line":257},[225,507,508],{"class":480},"  annotations",[225,510,484],{"class":231},[225,512,513],{"class":231}," {}\n",[225,515,516,519],{"class":227,"line":266},[225,517,518],{"class":480},"  labels",[225,520,503],{"class":231},[225,522,523,526,528],{"class":227,"line":272},[225,524,525],{"class":480},"    gefyra.dev/app",[225,527,484],{"class":231},[225,529,530],{"class":253}," stowaway\n",[225,532,533,536,538],{"class":227,"line":281},[225,534,535],{"class":480},"    gefyra.dev/provider",[225,537,484],{"class":231},[225,539,530],{"class":253},[225,541,542,545,547],{"class":227,"line":286},[225,543,544],{"class":480},"    gefyra.dev/role",[225,546,484],{"class":231},[225,548,549],{"class":253}," connection\n",[225,551,552,555,557],{"class":227,"line":292},[225,553,554],{"class":480},"  name",[225,556,484],{"class":231},[225,558,559],{"class":253}," gefyra-stowaway-wireguard\n",[225,561,562,565,567],{"class":227,"line":299},[225,563,564],{"class":480},"  namespace",[225,566,484],{"class":231},[225,568,278],{"class":253},[225,570,571,574],{"class":227,"line":307},[225,572,573],{"class":480},"spec",[225,575,503],{"class":231},[225,577,578,581],{"class":227,"line":312},[225,579,580],{"class":480},"  ports",[225,582,503],{"class":231},[225,584,585,588,591,593],{"class":227,"line":320},[225,586,587],{"class":231},"  -",[225,589,590],{"class":480}," name",[225,592,484],{"class":231},[225,594,595],{"class":253}," gefyra-wireguard\n",[225,597,598,601,603],{"class":227,"line":328},[225,599,600],{"class":480},"    nodePort",[225,602,484],{"class":231},[225,604,606],{"class":605},"sbssI"," 31820\n",[225,608,609,612,614],{"class":227,"line":333},[225,610,611],{"class":480},"    port",[225,613,484],{"class":231},[225,615,616],{"class":605}," 51820\n",[225,618,619,622,624],{"class":227,"line":338},[225,620,621],{"class":480},"    protocol",[225,623,484],{"class":231},[225,625,626],{"class":253}," UDP\n",[225,628,629,632,634],{"class":227,"line":346},[225,630,631],{"class":480},"    targetPort",[225,633,484],{"class":231},[225,635,616],{"class":605},[225,637,638,641],{"class":227,"line":354},[225,639,640],{"class":480},"  selector",[225,642,503],{"class":231},[225,644,646,648,650],{"class":227,"line":645},19,[225,647,525],{"class":480},[225,649,484],{"class":231},[225,651,530],{"class":253},[225,653,655,657,659],{"class":227,"line":654},20,[225,656,535],{"class":480},[225,658,484],{"class":231},[225,660,530],{"class":253},[225,662,664,666,668],{"class":227,"line":663},21,[225,665,544],{"class":480},[225,667,484],{"class":231},[225,669,549],{"class":253},[225,671,673,676,678],{"class":227,"line":672},22,[225,674,675],{"class":480},"  type",[225,677,484],{"class":231},[225,679,680],{"class":253}," NodePort\n",[204,682,683,684,687],{},"This service will open up the port ",[432,685,686],{},"31820"," on all of your Kubernetes nodes and route VPN traffic to Gefyra.",[204,689,690,691,694,695,698],{},"If you don't want to expose Gefyra via a ",[692,693,434],"em",{}," service, or you don't have routable IPs on your Kubernetes nodes, you need to set up a ",[432,696,697],{},"UDP load balancing"," for Gefyra. Luckily, Gefyra's got you covered.",[182,700,702,703],{"id":701},"setting-up-a-udp-loadbalancer","Setting up a UDP ",[211,704,705],{},"Loadbalancer",[407,707,708,709,711,712,714],{},"Gefyra's VPN connection is established using UDP traffic. Not all cloud providers offer a UDP load balancing solution. If you can not use a ",[692,710,705],{},", you have to stick with the ",[692,713,434],{}," service.",[204,716,717,718,720],{},"To switch the load balancer service for the installation, just set the appropriate option flag for the ",[211,719,213],{}," command:",[216,722,724],{"className":218,"code":723,"language":220,"meta":221,"style":221},"gefyra install --service-type=Loadbalancer\n",[211,725,726],{"__ignoreMap":221},[225,727,728,730,732],{"class":227,"line":228},[225,729,384],{"class":249},[225,731,387],{"class":253},[225,733,734],{"class":253}," --service-type=Loadbalancer\n",[204,736,737,738,741],{},"In many cases, the external infrastructure for a Kubernetes cluster is managed via service annotations. With Gefyra you can set custom annotations easily using the ",[211,739,740],{},"--service-annotations"," as often as you need.",[204,743,744],{},"For example:",[216,746,748],{"className":218,"code":747,"language":220,"meta":221,"style":221},"gefyra install --service-type=Loadbalancer --service-annotations service.beta.kubernetes.io/aws-load-balancer-nlb-target-type=ip --service-annotations service.beta.kubernetes.io/aws-load-balancer-scheme=internet-facing\n",[211,749,750],{"__ignoreMap":221},[225,751,752,754,756,759,762,765,767],{"class":227,"line":228},[225,753,384],{"class":249},[225,755,387],{"class":253},[225,757,758],{"class":253}," --service-type=Loadbalancer",[225,760,761],{"class":253}," --service-annotations",[225,763,764],{"class":253}," service.beta.kubernetes.io/aws-load-balancer-nlb-target-type=ip",[225,766,761],{"class":253},[225,768,769],{"class":253}," service.beta.kubernetes.io/aws-load-balancer-scheme=internet-facing\n",[204,771,772],{},"will create the following service in your cluster:",[216,774,776],{"className":471,"code":775,"language":473,"meta":221,"style":221},"apiVersion: v1\nkind: Service\nmetadata:\n  annotations:\n    # see these annotations\n    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip\n    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing\n  labels:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  name: gefyra-stowaway-wireguard\n  namespace: gefyra\nspec:\n  ports:\n  - name: gefyra-wireguard\n    port: 31820\n    protocol: UDP\n    targetPort: 51820\n  selector:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  type: LoadBalancer\n",[211,777,778,786,794,800,806,812,822,832,838,846,854,862,870,878,884,890,900,908,916,924,930,938,946,955],{"__ignoreMap":221},[225,779,780,782,784],{"class":227,"line":228},[225,781,481],{"class":480},[225,783,484],{"class":231},[225,785,254],{"class":253},[225,787,788,790,792],{"class":227,"line":239},[225,789,57],{"class":480},[225,791,484],{"class":231},[225,793,495],{"class":253},[225,795,796,798],{"class":227,"line":246},[225,797,500],{"class":480},[225,799,503],{"class":231},[225,801,802,804],{"class":227,"line":257},[225,803,508],{"class":480},[225,805,503],{"class":231},[225,807,808],{"class":227,"line":266},[225,809,811],{"class":810},"sHwdD","    # see these annotations\n",[225,813,814,817,819],{"class":227,"line":272},[225,815,816],{"class":480},"    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type",[225,818,484],{"class":231},[225,820,821],{"class":253}," ip\n",[225,823,824,827,829],{"class":227,"line":281},[225,825,826],{"class":480},"    service.beta.kubernetes.io/aws-load-balancer-scheme",[225,828,484],{"class":231},[225,830,831],{"class":253}," internet-facing\n",[225,833,834,836],{"class":227,"line":286},[225,835,518],{"class":480},[225,837,503],{"class":231},[225,839,840,842,844],{"class":227,"line":292},[225,841,525],{"class":480},[225,843,484],{"class":231},[225,845,530],{"class":253},[225,847,848,850,852],{"class":227,"line":299},[225,849,535],{"class":480},[225,851,484],{"class":231},[225,853,530],{"class":253},[225,855,856,858,860],{"class":227,"line":307},[225,857,544],{"class":480},[225,859,484],{"class":231},[225,861,549],{"class":253},[225,863,864,866,868],{"class":227,"line":312},[225,865,554],{"class":480},[225,867,484],{"class":231},[225,869,559],{"class":253},[225,871,872,874,876],{"class":227,"line":320},[225,873,564],{"class":480},[225,875,484],{"class":231},[225,877,278],{"class":253},[225,879,880,882],{"class":227,"line":328},[225,881,573],{"class":480},[225,883,503],{"class":231},[225,885,886,888],{"class":227,"line":333},[225,887,580],{"class":480},[225,889,503],{"class":231},[225,891,892,894,896,898],{"class":227,"line":338},[225,893,587],{"class":231},[225,895,590],{"class":480},[225,897,484],{"class":231},[225,899,595],{"class":253},[225,901,902,904,906],{"class":227,"line":346},[225,903,611],{"class":480},[225,905,484],{"class":231},[225,907,606],{"class":605},[225,909,910,912,914],{"class":227,"line":354},[225,911,621],{"class":480},[225,913,484],{"class":231},[225,915,626],{"class":253},[225,917,918,920,922],{"class":227,"line":645},[225,919,631],{"class":480},[225,921,484],{"class":231},[225,923,616],{"class":605},[225,925,926,928],{"class":227,"line":654},[225,927,640],{"class":480},[225,929,503],{"class":231},[225,931,932,934,936],{"class":227,"line":663},[225,933,525],{"class":480},[225,935,484],{"class":231},[225,937,530],{"class":253},[225,939,940,942,944],{"class":227,"line":672},[225,941,535],{"class":480},[225,943,484],{"class":231},[225,945,530],{"class":253},[225,947,949,951,953],{"class":227,"line":948},23,[225,950,544],{"class":480},[225,952,484],{"class":231},[225,954,549],{"class":253},[225,956,958,960,962],{"class":227,"line":957},24,[225,959,675],{"class":480},[225,961,484],{"class":231},[225,963,964],{"class":253}," LoadBalancer\n",[204,966,967],{},"Please be aware that Gefyra comes with a few manually crafted presets for popular Kubernetes offering. Check out the next section to learn how you install Gefyra using an available installation preset.",[182,969,971],{"id":970},"presets","Presets",[204,973,974],{},"To make it as convenient as possible, Gefyra offers presets for widely used Kubernetes offerings, such as Google's GKE or Amazon EKS.",[204,976,977],{},"Please check available presets with:",[216,979,981],{"className":218,"code":980,"language":220,"meta":221,"style":221},"gefyra install --help | grep preset\n\n--preset TEXT               Set configs from a preset (available: aws,gke)\n",[211,982,983,999,1003],{"__ignoreMap":221},[225,984,985,987,989,992,994,996],{"class":227,"line":228},[225,986,384],{"class":249},[225,988,387],{"class":253},[225,990,991],{"class":253}," --help",[225,993,390],{"class":231},[225,995,456],{"class":249},[225,997,998],{"class":253}," preset\n",[225,1000,1001],{"class":227,"line":239},[225,1002,243],{"emptyLinePlaceholder":242},[225,1004,1005,1008,1011,1014,1017,1020,1023,1026,1029,1032],{"class":227,"line":246},[225,1006,1007],{"class":249},"--preset",[225,1009,1010],{"class":253}," TEXT",[225,1012,1013],{"class":253},"               Set",[225,1015,1016],{"class":253}," configs",[225,1018,1019],{"class":253}," from",[225,1021,1022],{"class":253}," a",[225,1024,1025],{"class":253}," preset",[225,1027,1028],{"class":235}," (available: ",[225,1030,1031],{"class":253},"aws,gke",[225,1033,1034],{"class":235},")\n",[204,1036,1037,1038,1041,1042,1045,1046,1052],{},"Currently, it's only ",[692,1039,1040],{},"aws"," and ",[692,1043,1044],{},"gke",". If you want to add another preset for another popular Kubernetes provider, please consider",[194,1047,1051],{"href":1048,"rel":1049,"target":1050},"https://github.com/gefyrahq/gefyra/issues/new?assignees=&labels=enhancement&projects=&template=feature-request.yaml",[424],"blank"," opening a ticket on GitHub","  for it.",[204,1054,1055,1058,1059,1062,1063,1066],{},[432,1056,1057],{},"Example:"," If you install Gefyra to an EKS cluster, you only have to set the preset ",[211,1060,1061],{},"gefyra install --preset aws | kubectl apply -f -",", and it will automatically create the ",[692,1064,1065],{},"Network Load Balancer"," via the required annotations on the Kubernetes service:",[216,1068,1070],{"className":471,"code":1069,"language":473,"meta":221,"style":221},"apiVersion: v1\nkind: Service\nmetadata:\n  annotations:\n    # see these annotations\n    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip\n    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing\n    service.beta.kubernetes.io/aws-load-balancer-type: nlb\n  labels:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  name: gefyra-stowaway-wireguard\n  namespace: gefyra\nspec:\n  ports:\n  - name: gefyra-wireguard\n    port: 31820\n    protocol: UDP\n    targetPort: 51820\n  selector:\n    gefyra.dev/app: stowaway\n    gefyra.dev/provider: stowaway\n    gefyra.dev/role: connection\n  type: LoadBalancer\n",[211,1071,1072,1080,1088,1094,1100,1104,1112,1120,1130,1136,1144,1152,1160,1168,1176,1182,1188,1198,1206,1214,1222,1228,1236,1244,1252],{"__ignoreMap":221},[225,1073,1074,1076,1078],{"class":227,"line":228},[225,1075,481],{"class":480},[225,1077,484],{"class":231},[225,1079,254],{"class":253},[225,1081,1082,1084,1086],{"class":227,"line":239},[225,1083,57],{"class":480},[225,1085,484],{"class":231},[225,1087,495],{"class":253},[225,1089,1090,1092],{"class":227,"line":246},[225,1091,500],{"class":480},[225,1093,503],{"class":231},[225,1095,1096,1098],{"class":227,"line":257},[225,1097,508],{"class":480},[225,1099,503],{"class":231},[225,1101,1102],{"class":227,"line":266},[225,1103,811],{"class":810},[225,1105,1106,1108,1110],{"class":227,"line":272},[225,1107,816],{"class":480},[225,1109,484],{"class":231},[225,1111,821],{"class":253},[225,1113,1114,1116,1118],{"class":227,"line":281},[225,1115,826],{"class":480},[225,1117,484],{"class":231},[225,1119,831],{"class":253},[225,1121,1122,1125,1127],{"class":227,"line":286},[225,1123,1124],{"class":480},"    service.beta.kubernetes.io/aws-load-balancer-type",[225,1126,484],{"class":231},[225,1128,1129],{"class":253}," nlb\n",[225,1131,1132,1134],{"class":227,"line":292},[225,1133,518],{"class":480},[225,1135,503],{"class":231},[225,1137,1138,1140,1142],{"class":227,"line":299},[225,1139,525],{"class":480},[225,1141,484],{"class":231},[225,1143,530],{"class":253},[225,1145,1146,1148,1150],{"class":227,"line":307},[225,1147,535],{"class":480},[225,1149,484],{"class":231},[225,1151,530],{"class":253},[225,1153,1154,1156,1158],{"class":227,"line":312},[225,1155,544],{"class":480},[225,1157,484],{"class":231},[225,1159,549],{"class":253},[225,1161,1162,1164,1166],{"class":227,"line":320},[225,1163,554],{"class":480},[225,1165,484],{"class":231},[225,1167,559],{"class":253},[225,1169,1170,1172,1174],{"class":227,"line":328},[225,1171,564],{"class":480},[225,1173,484],{"class":231},[225,1175,278],{"class":253},[225,1177,1178,1180],{"class":227,"line":333},[225,1179,573],{"class":480},[225,1181,503],{"class":231},[225,1183,1184,1186],{"class":227,"line":338},[225,1185,580],{"class":480},[225,1187,503],{"class":231},[225,1189,1190,1192,1194,1196],{"class":227,"line":346},[225,1191,587],{"class":231},[225,1193,590],{"class":480},[225,1195,484],{"class":231},[225,1197,595],{"class":253},[225,1199,1200,1202,1204],{"class":227,"line":354},[225,1201,611],{"class":480},[225,1203,484],{"class":231},[225,1205,606],{"class":605},[225,1207,1208,1210,1212],{"class":227,"line":645},[225,1209,621],{"class":480},[225,1211,484],{"class":231},[225,1213,626],{"class":253},[225,1215,1216,1218,1220],{"class":227,"line":654},[225,1217,631],{"class":480},[225,1219,484],{"class":231},[225,1221,616],{"class":605},[225,1223,1224,1226],{"class":227,"line":663},[225,1225,640],{"class":480},[225,1227,503],{"class":231},[225,1229,1230,1232,1234],{"class":227,"line":672},[225,1231,525],{"class":480},[225,1233,484],{"class":231},[225,1235,530],{"class":253},[225,1237,1238,1240,1242],{"class":227,"line":948},[225,1239,535],{"class":480},[225,1241,484],{"class":231},[225,1243,530],{"class":253},[225,1245,1246,1248,1250],{"class":227,"line":957},[225,1247,544],{"class":480},[225,1249,484],{"class":231},[225,1251,549],{"class":253},[225,1253,1255,1257,1259],{"class":227,"line":1254},25,[225,1256,675],{"class":480},[225,1258,484],{"class":231},[225,1260,964],{"class":253},[1262,1263,1264],"style",{},"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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":221,"searchDepth":239,"depth":239,"links":1266},[1267,1268,1269,1270,1272],{"id":184,"depth":239,"text":185},{"id":201,"depth":239,"text":202},{"id":415,"depth":239,"text":416},{"id":701,"depth":239,"text":1271},"Setting up a UDP Loadbalancer",{"id":970,"depth":239,"text":971},"Installing Gefyra to a remote cluster is usually slightly different to a local setup. This is because the networking aspect differs considerably between a local cluster, that might be created with overlay networks and port-forwarding, and remote clusters with cloud-specific routing components. Starting with Gefyra 2, you get good control of the cluster-side components.","md",null,{},{"title":73,"icon":19},{"title":177,"description":1273},"veExsLsK2wm2s4rb9R38r71gT8jSZVEMEL7-CI0_9h0",[1281,1283],{"title":21,"path":70,"stem":71,"description":1282,"icon":24,"children":-1},"This chapter contains guides on how to set up shared remote Kubernetes for Gefyra. These guides are usually for multiple client use cases.",{"title":77,"path":78,"stem":79,"description":1284,"icon":80,"children":-1},"Gefyra introduces the concept of Gefyra Clients. These are objects to manage and distribute access to the cluster.",1775752109073]