[{"data":1,"prerenderedAt":1462},["ShallowReactive",2],{"navigation_docs_en":3,"-en-quick-start-getting-started":175,"-en-quick-start-getting-started-surround":1457},[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":21,"body":177,"description":1450,"extension":1451,"links":1452,"meta":1453,"navigation":1454,"path":22,"seo":1455,"stem":23,"__hash__":1456},"docs_en/en/1.quick-start/3.getting-started.md",{"type":178,"value":179,"toc":1429},"minimark",[180,197,202,224,228,236,241,263,305,319,336,340,358,362,386,401,405,409,425,435,439,444,496,1133,1141,1145,1178,1197,1205,1225,1241,1248,1252,1285,1288,1300,1307,1315,1318,1333,1336,1344,1359,1362,1374,1377,1381,1384,1396,1400,1412,1425],[181,182,183,187,188,196],"p",{},[184,185,186],"strong",{},"Important:"," This getting started guide for ",[189,190,195],"a",{"href":191,"rel":192,"target":194},"https://minikube.sigs.k8s.io/",[193],"nofollow","_blank","Minikube"," requires Gefyra in version >=2.0.0+.",[198,199,201],"h2",{"id":200},"prerequisites","Prerequisites",[203,204,205,215],"ol",{},[206,207,208,209,214],"li",{},"Minikube is ",[189,210,213],{"href":211,"rel":212,"target":194},"https://minikube.sigs.k8s.io/docs/start/",[193],"installed"," (at least in version v1.26.1)",[206,216,217,218,223],{},"Gefyra is ",[189,219,222],{"href":220,"rel":221,"target":194},"https://gefyra.dev/installation",[193],"available"," (at least in version 2.0.0)",[198,225,227],{"id":226},"creating-a-local-kubernetes-cluster-with-minikube","Creating a local Kubernetes cluster with Minikube",[181,229,230],{},[231,232],"img",{"alt":61,"className":233,"src":235},[234],"w-full","https://gefyra.dev/img/minikube2.gif",[237,238,240],"h3",{"id":239},"_1-create-a-local-kubernetes-cluster-with-minikube-by-running","1. Create a local Kubernetes cluster with Minikube by running:",[242,243,248],"pre",{"className":244,"code":245,"language":246,"meta":247,"style":247},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","minikube start\n","bash","",[249,250,251],"code",{"__ignoreMap":247},[252,253,256,259],"span",{"class":254,"line":255},"line",1,[252,257,61],{"class":258},"sBMFI",[252,260,262],{"class":261},"sfazB"," start\n",[181,264,265,267,268,272,273,276,277,280,281,286,287,290,291,294,295,294,298,294,301,304],{},[184,266,186],{}," the following example does not ",[269,270,271],"em",{},"fully"," work with ",[249,274,275],{},"--driver=qemu"," since ",[249,278,279],{},"minikube service"," is not currently\nimplemented with the qemu2 driver. See ",[189,282,285],{"href":283,"rel":284,"target":194},"https://github.com/kubernetes/minikube/issues/14146",[193],"this GitHub issue"," for details.",[288,289],"br",{},"\nTested drivers are: ",[269,292,293],{},"docker",", ",[269,296,297],{},"kvm2",[269,299,300],{},"kvm",[269,302,303],{},"virtualbox",". Others are potentially working, but are not tested.",[181,306,307,308,311,312,315,316,318],{},"After some time of downloading the required resources, the cluster will be running. You may enable the required\naddons based on your requirements. The ",[249,309,310],{},"kubectl"," context is immediately set to this cluster. You can check if\n",[249,313,314],{},"kubectl config current-context"," is set to ",[249,317,61],{},".",[242,320,324],{"className":321,"code":322,"language":323,"meta":247,"style":247},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kubectl config current-context\n","sh",[249,325,326],{"__ignoreMap":247},[252,327,328,330,333],{"class":254,"line":255},[252,329,310],{"class":258},[252,331,332],{"class":261}," config",[252,334,335],{"class":261}," current-context\n",[237,337,339],{"id":338},"_2-apply-some-workload-for-example-from-the-testing-directory-from-gefyra","2. Apply some workload, for example from the testing directory from Gefyra:",[242,341,343],{"className":321,"code":342,"language":323,"meta":247,"style":247},"kubectl apply -f https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello.yaml\n",[249,344,345],{"__ignoreMap":247},[252,346,347,349,352,355],{"class":254,"line":255},[252,348,310],{"class":258},[252,350,351],{"class":261}," apply",[252,353,354],{"class":261}," -f",[252,356,357],{"class":261}," https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello.yaml\n",[237,359,361],{"id":360},"_3-check-the-output-of-the-deployed-app-with","3. Check the output of the deployed app with:",[242,363,365],{"className":321,"code":364,"language":323,"meta":247,"style":247},"kubectl expose deployment hello-nginxdemo --type=NodePort --port=80\n",[249,366,367],{"__ignoreMap":247},[252,368,369,371,374,377,380,383],{"class":254,"line":255},[252,370,310],{"class":258},[252,372,373],{"class":261}," expose",[252,375,376],{"class":261}," deployment",[252,378,379],{"class":261}," hello-nginxdemo",[252,381,382],{"class":261}," --type=NodePort",[252,384,385],{"class":261}," --port=80\n",[242,387,389],{"className":321,"code":388,"language":323,"meta":247,"style":247},"minikube service hello-nginxdemo\n",[249,390,391],{"__ignoreMap":247},[252,392,393,395,398],{"class":254,"line":255},[252,394,61],{"class":258},[252,396,397],{"class":261}," service",[252,399,400],{"class":261}," hello-nginxdemo\n",[198,402,404],{"id":403},"running-gefyra","Running Gefyra",[237,406,408],{"id":407},"_1-set-up-gefyra-with-your-minikube-cluster","1. Set up Gefyra with your Minikube cluster:",[242,410,412],{"className":321,"code":411,"language":323,"meta":247,"style":247},"gefyra up --minikube\n",[249,413,414],{"__ignoreMap":247},[252,415,416,419,422],{"class":254,"line":255},[252,417,418],{"class":258},"gefyra",[252,420,421],{"class":261}," up",[252,423,424],{"class":261}," --minikube\n",[181,426,427,430,431,434],{},[184,428,429],{},"Important",": The ",[249,432,433],{},"--minikube"," switch detects all required connection parameters from your local cluster. The connection won't work\nif this switch is missing when working with Minikube.",[237,436,438],{"id":437},"_2-run-a-local-docker-container-with-gefyra-in-order-to-connect-it-with-the-cluster","2. Run a local Docker container with Gefyra in order to connect it with the cluster.",[440,441,443],"h4",{"id":442},"_21-build-a-simple-docker-image-with-a-local-tag-save-the-following-two-files-in-a-directory-on-your-disk","2.1 Build a simple Docker image with a local tag. Save the following two files in a directory on your disk.",[242,445,450],{"className":446,"code":447,"filename":448,"language":449,"meta":247,"style":247},"language-dockerfile shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","FROM ubuntu\n# run a server on port 8000\nRUN apt update && apt install -y iproute2 iputils-ping python3 traceroute wget curl\nCOPY local.py local.py\nCMD python3 local.py\n","Dockerfile","dockerfile",[249,451,452,462,469,478,487],{"__ignoreMap":247},[252,453,454,458],{"class":254,"line":255},[252,455,457],{"class":456},"sbssI","FROM",[252,459,461],{"class":460},"sTEyZ"," ubuntu\n",[252,463,465],{"class":254,"line":464},2,[252,466,468],{"class":467},"sHwdD","# run a server on port 8000\n",[252,470,472,475],{"class":254,"line":471},3,[252,473,474],{"class":456},"RUN",[252,476,477],{"class":460}," apt update && apt install -y iproute2 iputils-ping python3 traceroute wget curl\n",[252,479,481,484],{"class":254,"line":480},4,[252,482,483],{"class":456},"COPY",[252,485,486],{"class":460}," local.py local.py\n",[252,488,490,493],{"class":254,"line":489},5,[252,491,492],{"class":456},"CMD",[252,494,495],{"class":460}," python3 local.py\n",[497,498,499],"code-collapse",{},[242,500,505],{"className":501,"code":502,"filename":503,"language":504,"meta":247,"style":247},"language-py shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import http.server\nimport signal\nimport socket\nimport socketserver\nimport sys\nfrom datetime import datetime\n\nif sys.argv[1:]:\n  port = int(sys.argv[1])\nelse:\n  port = 8000\n\nclass MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler):\n  def do_GET(self):\n      self.send_response(200)\n      self.send_header(\"Content-type\", \"text/html\")\n      self.end_headers()\n      hostname = socket.gethostname()\n      now = datetime.utcnow()\n      self.wfile.write(\n            bytes(\n              f\"\u003Chtml>\u003Cbody>\u003Ch1>Hello from Gefyra. It is {now} on\"\n              f\" {hostname}.\u003C/h1>\u003C/body>\u003C/html>\".encode(\"utf-8\")\n            )\n      )\n\nmy_handler = MyHttpRequestHandler\nserver = socketserver.ThreadingTCPServer((\"\", port), my_handler)\n\ndef signal_handler(signal, frame):\n  try:\n      if server:\n            server.server_close()\n  finally:\n      sys.exit(0)\n\nsignal.signal(signal.SIGINT, signal_handler)\ntry:\n  while True:\n      sys.stdout.flush()\n      server.serve_forever()\nexcept KeyboardInterrupt:\n  pass\n\nserver.server_close()\n","local.py","py",[249,506,507,523,530,537,544,551,565,572,595,625,634,644,649,677,694,713,746,759,777,795,813,821,842,876,882,888,893,904,939,944,966,974,985,998,1006,1024,1029,1053,1061,1070,1087,1100,1111,1117,1122],{"__ignoreMap":247},[252,508,509,513,516,519],{"class":254,"line":255},[252,510,512],{"class":511},"s7zQu","import",[252,514,515],{"class":460}," http",[252,517,318],{"class":518},"sMK4o",[252,520,522],{"class":521},"swJcz","server\n",[252,524,525,527],{"class":254,"line":464},[252,526,512],{"class":511},[252,528,529],{"class":460}," signal\n",[252,531,532,534],{"class":254,"line":471},[252,533,512],{"class":511},[252,535,536],{"class":460}," socket\n",[252,538,539,541],{"class":254,"line":480},[252,540,512],{"class":511},[252,542,543],{"class":460}," socketserver\n",[252,545,546,548],{"class":254,"line":489},[252,547,512],{"class":511},[252,549,550],{"class":460}," sys\n",[252,552,554,557,560,562],{"class":254,"line":553},6,[252,555,556],{"class":511},"from",[252,558,559],{"class":460}," datetime ",[252,561,512],{"class":511},[252,563,564],{"class":460}," datetime\n",[252,566,568],{"class":254,"line":567},7,[252,569,571],{"emptyLinePlaceholder":570},true,"\n",[252,573,575,578,581,583,586,589,592],{"class":254,"line":574},8,[252,576,577],{"class":511},"if",[252,579,580],{"class":460}," sys",[252,582,318],{"class":518},[252,584,585],{"class":521},"argv",[252,587,588],{"class":518},"[",[252,590,591],{"class":456},"1",[252,593,594],{"class":518},":]:\n",[252,596,598,601,604,607,610,614,616,618,620,622],{"class":254,"line":597},9,[252,599,600],{"class":460},"  port ",[252,602,603],{"class":518},"=",[252,605,606],{"class":258}," int",[252,608,609],{"class":518},"(",[252,611,613],{"class":612},"s2Zo4","sys",[252,615,318],{"class":518},[252,617,585],{"class":521},[252,619,588],{"class":518},[252,621,591],{"class":456},[252,623,624],{"class":518},"])\n",[252,626,628,631],{"class":254,"line":627},10,[252,629,630],{"class":511},"else",[252,632,633],{"class":518},":\n",[252,635,637,639,641],{"class":254,"line":636},11,[252,638,600],{"class":460},[252,640,603],{"class":518},[252,642,643],{"class":456}," 8000\n",[252,645,647],{"class":254,"line":646},12,[252,648,571],{"emptyLinePlaceholder":570},[252,650,652,656,659,661,664,666,669,671,674],{"class":254,"line":651},13,[252,653,655],{"class":654},"spNyl","class",[252,657,658],{"class":258}," MyHttpRequestHandler",[252,660,609],{"class":518},[252,662,663],{"class":258},"http",[252,665,318],{"class":518},[252,667,668],{"class":258},"server",[252,670,318],{"class":518},[252,672,673],{"class":258},"SimpleHTTPRequestHandler",[252,675,676],{"class":518},"):\n",[252,678,680,683,686,688,692],{"class":254,"line":679},14,[252,681,682],{"class":654},"  def",[252,684,685],{"class":612}," do_GET",[252,687,609],{"class":518},[252,689,691],{"class":690},"s5tWE","self",[252,693,676],{"class":518},[252,695,697,700,702,705,707,710],{"class":254,"line":696},15,[252,698,699],{"class":460},"      self",[252,701,318],{"class":518},[252,703,704],{"class":612},"send_response",[252,706,609],{"class":518},[252,708,709],{"class":456},"200",[252,711,712],{"class":518},")\n",[252,714,716,718,720,723,725,728,731,733,736,739,742,744],{"class":254,"line":715},16,[252,717,699],{"class":460},[252,719,318],{"class":518},[252,721,722],{"class":612},"send_header",[252,724,609],{"class":518},[252,726,727],{"class":518},"\"",[252,729,730],{"class":261},"Content-type",[252,732,727],{"class":518},[252,734,735],{"class":518},",",[252,737,738],{"class":518}," \"",[252,740,741],{"class":261},"text/html",[252,743,727],{"class":518},[252,745,712],{"class":518},[252,747,749,751,753,756],{"class":254,"line":748},17,[252,750,699],{"class":460},[252,752,318],{"class":518},[252,754,755],{"class":612},"end_headers",[252,757,758],{"class":518},"()\n",[252,760,762,765,767,770,772,775],{"class":254,"line":761},18,[252,763,764],{"class":460},"      hostname ",[252,766,603],{"class":518},[252,768,769],{"class":460}," socket",[252,771,318],{"class":518},[252,773,774],{"class":612},"gethostname",[252,776,758],{"class":518},[252,778,780,783,785,788,790,793],{"class":254,"line":779},19,[252,781,782],{"class":460},"      now ",[252,784,603],{"class":518},[252,786,787],{"class":460}," datetime",[252,789,318],{"class":518},[252,791,792],{"class":612},"utcnow",[252,794,758],{"class":518},[252,796,798,800,802,805,807,810],{"class":254,"line":797},20,[252,799,699],{"class":460},[252,801,318],{"class":518},[252,803,804],{"class":521},"wfile",[252,806,318],{"class":518},[252,808,809],{"class":612},"write",[252,811,812],{"class":518},"(\n",[252,814,816,819],{"class":254,"line":815},21,[252,817,818],{"class":258},"            bytes",[252,820,812],{"class":518},[252,822,824,827,830,833,836,839],{"class":254,"line":823},22,[252,825,826],{"class":654},"              f",[252,828,829],{"class":261},"\"\u003Chtml>\u003Cbody>\u003Ch1>Hello from Gefyra. It is ",[252,831,832],{"class":456},"{",[252,834,835],{"class":612},"now",[252,837,838],{"class":456},"}",[252,840,841],{"class":261}," on\"\n",[252,843,845,847,850,852,855,857,860,862,865,867,869,872,874],{"class":254,"line":844},23,[252,846,826],{"class":654},[252,848,849],{"class":261},"\" ",[252,851,832],{"class":456},[252,853,854],{"class":612},"hostname",[252,856,838],{"class":456},[252,858,859],{"class":261},".\u003C/h1>\u003C/body>\u003C/html>\"",[252,861,318],{"class":518},[252,863,864],{"class":612},"encode",[252,866,609],{"class":518},[252,868,727],{"class":518},[252,870,871],{"class":261},"utf-8",[252,873,727],{"class":518},[252,875,712],{"class":518},[252,877,879],{"class":254,"line":878},24,[252,880,881],{"class":518},"            )\n",[252,883,885],{"class":254,"line":884},25,[252,886,887],{"class":518},"      )\n",[252,889,891],{"class":254,"line":890},26,[252,892,571],{"emptyLinePlaceholder":570},[252,894,896,899,901],{"class":254,"line":895},27,[252,897,898],{"class":460},"my_handler ",[252,900,603],{"class":518},[252,902,903],{"class":460}," MyHttpRequestHandler\n",[252,905,907,910,912,915,917,920,923,926,928,931,934,937],{"class":254,"line":906},28,[252,908,909],{"class":460},"server ",[252,911,603],{"class":518},[252,913,914],{"class":460}," socketserver",[252,916,318],{"class":518},[252,918,919],{"class":612},"ThreadingTCPServer",[252,921,922],{"class":518},"((",[252,924,925],{"class":518},"\"\"",[252,927,735],{"class":518},[252,929,930],{"class":612}," port",[252,932,933],{"class":518},"),",[252,935,936],{"class":612}," my_handler",[252,938,712],{"class":518},[252,940,942],{"class":254,"line":941},29,[252,943,571],{"emptyLinePlaceholder":570},[252,945,947,950,953,955,959,961,964],{"class":254,"line":946},30,[252,948,949],{"class":654},"def",[252,951,952],{"class":612}," signal_handler",[252,954,609],{"class":518},[252,956,958],{"class":957},"sHdIc","signal",[252,960,735],{"class":518},[252,962,963],{"class":957}," frame",[252,965,676],{"class":518},[252,967,969,972],{"class":254,"line":968},31,[252,970,971],{"class":511},"  try",[252,973,633],{"class":518},[252,975,977,980,983],{"class":254,"line":976},32,[252,978,979],{"class":511},"      if",[252,981,982],{"class":460}," server",[252,984,633],{"class":518},[252,986,988,991,993,996],{"class":254,"line":987},33,[252,989,990],{"class":460},"            server",[252,992,318],{"class":518},[252,994,995],{"class":612},"server_close",[252,997,758],{"class":518},[252,999,1001,1004],{"class":254,"line":1000},34,[252,1002,1003],{"class":511},"  finally",[252,1005,633],{"class":518},[252,1007,1009,1012,1014,1017,1019,1022],{"class":254,"line":1008},35,[252,1010,1011],{"class":460},"      sys",[252,1013,318],{"class":518},[252,1015,1016],{"class":612},"exit",[252,1018,609],{"class":518},[252,1020,1021],{"class":456},"0",[252,1023,712],{"class":518},[252,1025,1027],{"class":254,"line":1026},36,[252,1028,571],{"emptyLinePlaceholder":570},[252,1030,1032,1034,1036,1038,1040,1042,1044,1047,1049,1051],{"class":254,"line":1031},37,[252,1033,958],{"class":460},[252,1035,318],{"class":518},[252,1037,958],{"class":612},[252,1039,609],{"class":518},[252,1041,958],{"class":612},[252,1043,318],{"class":518},[252,1045,1046],{"class":521},"SIGINT",[252,1048,735],{"class":518},[252,1050,952],{"class":612},[252,1052,712],{"class":518},[252,1054,1056,1059],{"class":254,"line":1055},38,[252,1057,1058],{"class":511},"try",[252,1060,633],{"class":518},[252,1062,1064,1067],{"class":254,"line":1063},39,[252,1065,1066],{"class":511},"  while",[252,1068,1069],{"class":518}," True:\n",[252,1071,1073,1075,1077,1080,1082,1085],{"class":254,"line":1072},40,[252,1074,1011],{"class":460},[252,1076,318],{"class":518},[252,1078,1079],{"class":521},"stdout",[252,1081,318],{"class":518},[252,1083,1084],{"class":612},"flush",[252,1086,758],{"class":518},[252,1088,1090,1093,1095,1098],{"class":254,"line":1089},41,[252,1091,1092],{"class":460},"      server",[252,1094,318],{"class":518},[252,1096,1097],{"class":612},"serve_forever",[252,1099,758],{"class":518},[252,1101,1103,1106,1109],{"class":254,"line":1102},42,[252,1104,1105],{"class":511},"except",[252,1107,1108],{"class":258}," KeyboardInterrupt",[252,1110,633],{"class":518},[252,1112,1114],{"class":254,"line":1113},43,[252,1115,1116],{"class":511},"  pass\n",[252,1118,1120],{"class":254,"line":1119},44,[252,1121,571],{"emptyLinePlaceholder":570},[252,1123,1125,1127,1129,1131],{"class":254,"line":1124},45,[252,1126,668],{"class":460},[252,1128,318],{"class":518},[252,1130,995],{"class":612},[252,1132,758],{"class":518},[440,1134,1136,1137,1140],{"id":1135},"_22-build-it-by-running-docker-build-f-dockerfile-t-pyserver-in-your-directory","2.2 Build it by running ",[249,1138,1139],{},"docker build -f Dockerfile . -t pyserver"," in your directory.",[440,1142,1144],{"id":1143},"_23-execute-gefyras-run-command","2.3 Execute Gefyra's run command:",[242,1146,1148],{"className":244,"code":1147,"language":246,"meta":247,"style":247},"gefyra run -d -i pyserver -N mypyserver -n default\n",[249,1149,1150],{"__ignoreMap":247},[252,1151,1152,1154,1157,1160,1163,1166,1169,1172,1175],{"class":254,"line":255},[252,1153,418],{"class":258},[252,1155,1156],{"class":261}," run",[252,1158,1159],{"class":261}," -d",[252,1161,1162],{"class":261}," -i",[252,1164,1165],{"class":261}," pyserver",[252,1167,1168],{"class":261}," -N",[252,1170,1171],{"class":261}," mypyserver",[252,1173,1174],{"class":261}," -n",[252,1176,1177],{"class":261}," default\n",[181,1179,1180,1182,1183,1186,1187,1190,1191],{},[184,1181,429],{},": ",[249,1184,1185],{},"gefyra run"," is just a wrapper for ",[249,1188,1189],{},"docker run"," (with additional flags), yet it also applies Gefyra's networking\nconfiguration to connect the container with Kubernetes. Check out ",[189,1192,1194,1195],{"href":1193},"/en/quick-start/cli#run","the docs for ",[249,1196,1185],{},[237,1198,1200,1201,1204],{"id":1199},"_3-exec-into-the-running-container-and-look-around-you-will-find-the-container-to-run-within-your-kubernetes-cluster","3. ",[269,1202,1203],{},"Exec"," into the running container and look around. You will find the container to run within your Kubernetes cluster.",[242,1206,1208],{"className":321,"code":1207,"language":323,"meta":247,"style":247},"docker exec -it mypyserver bash\n",[249,1209,1210],{"__ignoreMap":247},[252,1211,1212,1214,1217,1220,1222],{"class":254,"line":255},[252,1213,293],{"class":258},[252,1215,1216],{"class":261}," exec",[252,1218,1219],{"class":261}," -it",[252,1221,1171],{"class":261},[252,1223,1224],{"class":261}," bash\n",[242,1226,1228],{"className":321,"code":1227,"language":323,"meta":247,"style":247},"wget -O- hello-nginx\n",[249,1229,1230],{"__ignoreMap":247},[252,1231,1232,1235,1238],{"class":254,"line":255},[252,1233,1234],{"class":258},"wget",[252,1236,1237],{"class":261}," -O-",[252,1239,1240],{"class":261}," hello-nginx\n",[181,1242,1243,1244,1247],{},"will print out the website of the cluster service ",[269,1245,1246],{},"hello-nginx"," from within the cluster. 🚀",[237,1249,1251],{"id":1250},"_4-create-a-bridge-to-redirect-the-traffic-from-the-cluster-application-to-the-one-running-locally","4. Create a bridge to redirect the traffic from the cluster application to the one running locally:",[242,1253,1255],{"className":321,"code":1254,"language":323,"meta":247,"style":247},"gefyra bridge -N mypyserver -n default --ports 80:8000 --target deploy/hello-nginxdemo/hello-nginx\n",[249,1256,1257],{"__ignoreMap":247},[252,1258,1259,1261,1264,1266,1268,1270,1273,1276,1279,1282],{"class":254,"line":255},[252,1260,418],{"class":258},[252,1262,1263],{"class":261}," bridge",[252,1265,1168],{"class":261},[252,1267,1171],{"class":261},[252,1269,1174],{"class":261},[252,1271,1272],{"class":261}," default",[252,1274,1275],{"class":261}," --ports",[252,1277,1278],{"class":261}," 80:8000",[252,1280,1281],{"class":261}," --target",[252,1283,1284],{"class":261}," deploy/hello-nginxdemo/hello-nginx\n",[181,1286,1287],{},"Check out the locally running server serving the cluster by refreshing the address from:",[242,1289,1290],{"className":321,"code":388,"language":323,"meta":247,"style":247},[249,1291,1292],{"__ignoreMap":247},[252,1293,1294,1296,1298],{"class":254,"line":255},[252,1295,61],{"class":258},[252,1297,397],{"class":261},[252,1299,400],{"class":261},[181,1301,1302,1303,1306],{},"It shows you a different message: ",[249,1304,1305],{},"Hello from Gefyra. It is ...",". Yes, that is really coming from your local container! 😎",[237,1308,1310,1311,1314],{"id":1309},"_5-list-all-running-bridges","5. List all running ",[269,1312,1313],{},"bridges",":",[181,1316,1317],{},"You can list all currently active bridges with:",[242,1319,1321],{"className":321,"code":1320,"language":323,"meta":247,"style":247},"gefyra list --bridges\n",[249,1322,1323],{"__ignoreMap":247},[252,1324,1325,1327,1330],{"class":254,"line":255},[252,1326,418],{"class":258},[252,1328,1329],{"class":261}," list",[252,1331,1332],{"class":261}," --bridges\n",[181,1334,1335],{},"You will find all local containers that are currently linked into the cluster serving requests.",[237,1337,1339,1340,1343],{"id":1338},"_6-unbridge-the-local-container-and-reset-the-cluster-to-its-original-state","6. ",[269,1341,1342],{},"Unbridge"," the local container and reset the cluster to its original state:",[242,1345,1347],{"className":321,"code":1346,"language":323,"meta":247,"style":247},"gefyra unbridge --all\n",[249,1348,1349],{"__ignoreMap":247},[252,1350,1351,1353,1356],{"class":254,"line":255},[252,1352,418],{"class":258},[252,1354,1355],{"class":261}," unbridge",[252,1357,1358],{"class":261}," --all\n",[181,1360,1361],{},"Check out the original response from:",[242,1363,1364],{"className":321,"code":388,"language":323,"meta":247,"style":247},[249,1365,1366],{"__ignoreMap":247},[252,1367,1368,1370,1372],{"class":254,"line":255},[252,1369,61],{"class":258},[252,1371,397],{"class":261},[252,1373,400],{"class":261},[181,1375,1376],{},"The cluster is now reset to its inital state again.",[198,1378,1380],{"id":1379},"cleaning-up","Cleaning up",[181,1382,1383],{},"Remove Gefyra's components from the cluster and your local Docker host with:",[242,1385,1387],{"className":321,"code":1386,"language":323,"meta":247,"style":247},"gefyra down\n",[249,1388,1389],{"__ignoreMap":247},[252,1390,1391,1393],{"class":254,"line":255},[252,1392,418],{"class":258},[252,1394,1395],{"class":261}," down\n",[198,1397,1399],{"id":1398},"deleting-the-minikube-cluster","Deleting the Minikube cluster",[242,1401,1403],{"className":321,"code":1402,"language":323,"meta":247,"style":247},"minikube delete\n",[249,1404,1405],{"__ignoreMap":247},[252,1406,1407,1409],{"class":254,"line":255},[252,1408,61],{"class":258},[252,1410,1411],{"class":261}," delete\n",[1413,1414,1415,1419,1420,318],"card",{},[1416,1417,1418],"template",{"v-slot:title":247},"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 ",[189,1421,1424],{"href":1422,"rel":1423,"target":194},"https://forms.gle/AWT9NparpTVk8E978",[193],"feedback form",[1426,1427,1428],"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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s5tWE, html code.shiki .s5tWE{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":247,"searchDepth":464,"depth":464,"links":1430},[1431,1432,1437,1448,1449],{"id":200,"depth":464,"text":201},{"id":226,"depth":464,"text":227,"children":1433},[1434,1435,1436],{"id":239,"depth":471,"text":240},{"id":338,"depth":471,"text":339},{"id":360,"depth":471,"text":361},{"id":403,"depth":464,"text":404,"children":1438},[1439,1440,1441,1443,1444,1446],{"id":407,"depth":471,"text":408},{"id":437,"depth":471,"text":438},{"id":1199,"depth":471,"text":1442},"3. Exec into the running container and look around. You will find the container to run within your Kubernetes cluster.",{"id":1250,"depth":471,"text":1251},{"id":1309,"depth":471,"text":1445},"5. List all running bridges:",{"id":1338,"depth":471,"text":1447},"6. Unbridge the local container and reset the cluster to its original state:",{"id":1379,"depth":464,"text":1380},{"id":1398,"depth":464,"text":1399},"This guide describes the usage of Gefyra for the local development of a Kubernetes application running in Minikube.","md",null,{},{"icon":24},{"title":21,"description":1450},"_8nl78NTDXa9BbHmur_UL7qQjCpWSqVbYt1UmR_AUTc",[1458,1460],{"title":16,"path":17,"stem":18,"description":1459,"icon":19,"children":-1},"Gefyra is tested under Windows, MacOS and Linux. The command line tool can be installed with a binary executable. Please find your preferred operating system below.",{"title":26,"path":27,"stem":28,"description":1461,"icon":29,"children":-1},"Gefyra's Docker Desktop Extension allows you to run containers on your local machine and connect them to Kubernetes-based resources. It is a great way to test a new service in the cluster or write code that depends on Kubernetes resources.",1775752109073]