{"id":3852,"date":"2018-10-25T17:15:31","date_gmt":"2018-10-25T14:15:31","guid":{"rendered":"https:\/\/www.systemcodegeeks.com\/?p=3852"},"modified":"2018-10-25T10:40:37","modified_gmt":"2018-10-25T07:40:37","slug":"ambassador-kubernetes-cluster","status":"publish","type":"post","link":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/","title":{"rendered":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio"},"content":{"rendered":"<p>I have been working with\u00a0<a href=\"https:\/\/kubernetes.io\/\">Kubernetes<\/a> in production for 2 years now. Over this time we have migrated 3 or 4 times clusters, changed techinques and tools of deployments, changed habits or pushed back to some of the hype and trends coming up every day on the kubernetes scene. I guess nothing new here, this is what almost everybody does.<\/p>\n<p>My personal take on this ever changing scene is to keep things simple &#8211; as much as possible, especially while your underlying infrastructure is changing from version to version. Kubernetes 1.4 (the first version I used in production) has the same basic constructs as version 1.7 and 1.10 currently in production, but many other other things come and go or change. When you are adapting or trying to adopt kubernetes on your org you need to rely on these simple and basic constructs that will make your transition from one version to the other painless, through with time you master more advanced and `cryptic` features. Anyway the point is, keep it simple.<\/p>\n<p><a href=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/CapturFiles-Oct-23-2018_06.49.48.png\"><img decoding=\"async\" class=\"aligncenter wp-image-3854 size-full\" src=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/CapturFiles-Oct-23-2018_06.49.48.png\" alt=\"Kubernetes cluster\" width=\"322\" height=\"300\" srcset=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/CapturFiles-Oct-23-2018_06.49.48.png 322w, https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/CapturFiles-Oct-23-2018_06.49.48-300x280.png 300w\" sizes=\"(max-width: 322px) 100vw, 322px\" \/><\/a><\/p>\n<p>On the early adoption days, we followed what felt natural based on our previous experiences. We were (still are) creating services spreading them around accomodating for the different business needs and features. Kubernetes is our golden cage and creating new services \/ apps never felt so easy. Going back to our previous experiences, while creating a new app\/ service you feel the urge to `expose` it somehow, to your private network, to some namespace, to some context. Using the service type `\u00a0<i>LoadBalancer<\/i>` while in AWS spinning ELB&#8217;s felt like total magic! At first you have a couple of services, talking to each other, exposing some public API and it was good, you were provisioning your ELB&#8217;s, you could related to the old concept a DNS entry for a specific service. Old school I know but it felt good.<\/p>\n<p>Time goes by the 2 services are 15 now, they talk to each other, they integrate. Creating some many ELB&#8217;s or Services becomes a messy and error prone business! Even within the kubernetes namespace context &#8211; dealing with some many different service entries is challenging &#8211; especially when you follow point to point integration. It was obvious that you need some kind of proxy. A step further<\/p>\n<ol>\n<li>You might need a public Inbound Proxy (Ingress)<\/li>\n<li>You might need internal proxies for your `service` mesh!\u00a0 (or mess\u00a0 haha)<\/li>\n<\/ol>\n<p>Personally I always thought that the proposed Ingress API \/ Solution from kubernetes despite the `good` intentions &#8211; was too much, overcomplicated for my over simplifying mind in its ever ending battle to keep things simple. Also,\u00a0<i><b>I never felt good with the idea to have 1 everything under the same ingress hose<\/b><\/i>. So despite having examples of things like\u00a0<a href=\"https:\/\/docs.traefik.io\/user-guide\/kubernetes\/\">Traefik<\/a> or<br \/>\n<a href=\"https:\/\/github.com\/kubernetes\/ingress-nginx\">Nginx<\/a> as the reference Ingress controllers, personally I thought that I was increasing my platform&#8217;s configuration entropy and complexity. Maybe a bit spoiled by all the nice things abstracted by Kubernetes after all this time, adding some serious config for doing something like simple never made it to my book. So yes to Ingresses and Proxies but most probably multiple and independent Ingresses within the same cluster and not one.<\/p>\n<p>On the other end internal proxies within the kubernetes network &#8211; was always something OK to do, but kubernetes with its DNS service was always easing the pain- at the end of the day everything is just a label in a `service.yml` definition.\u00a0 Internal service names change or move easily.<\/p>\n<p>One night I end up reading this\u00a0<a href=\"https:\/\/blog.getambassador.io\/kubernetes-ingress-nodeport-load-balancers-and-ingress-controllers-6e29f1c44f2d\">article<\/a> by R.Li (CEO of\u00a0<a href=\"https:\/\/github.com\/datawire\">Datawire<\/a>) and I was like `yes!! I totally agree with you`. This is how I decided to give Ambassador a go. What I really liked was the fact that<br \/>\n<a href=\"https:\/\/www.getambassador.io\/\">Ambassador<\/a> which is a kubernetes wrapper around\u00a0<a href=\"https:\/\/www.envoyproxy.io\/\">Envoy<\/a> proxy (a bit oversimplified definition apologies), takes away all the config that you would have to do using the\u00a0<a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress\/\">Kubernetes Ingress <\/a>resources, glues almost instantly on your existing deployment &#8211; being aware of your existing services and then leaving you only the task to configure its proxying rules and proxying behavior.<\/p>\n<p>So in 1 place, you get to spin a horizontally scaled L7 proxy, no news here, the same way you scale your pods you would scale Ambassador, and either you can feed it\u00a0 your proxying config or\u00a0 you can enhance your existing service definitions with metadata that Ambassaor will detect (since it talks and understands the Kubernetes API).\u00a0 Currently I prefer (the first) &#8211; adding directly to the Ambassador deployment all the configs instead of adding labels and metadata to our existing services. In away our\u00a0 Services and the pods behind our services do not have a hint that are being proxied and this gives us great freedom to play around and change configs in 1 place without risking errors or mistakes to existing pieces of the puzzle!<\/p>\n<p><a href=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/ambassador.png\"><img decoding=\"async\" class=\"aligncenter wp-image-3855 size-full\" src=\"http:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/ambassador.png\" alt=\"Kubernetes cluster\" width=\"731\" height=\"501\" srcset=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/ambassador.png 731w, https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2018\/10\/ambassador-300x206.png 300w\" sizes=\"(max-width: 731px) 100vw, 731px\" \/><\/a><\/p>\n<p>Configuring Ambassador was really easy<\/p>\n<ul>\n<li><a href=\"https:\/\/www.getambassador.io\/user-guide\/getting-started\">Pick your RBAC or NOT Helm deployment<\/a><\/li>\n<li>Provide on the same Helm Chart the service definitions that will make Ambassador visible to the users + its routing proxying table (see below)<\/li>\n<\/ul>\n<p><strong>Service definition<\/strong><\/p>\n<pre class=\"brush:php; wrap-lines:false\"> \r\n---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  name: {{.Chart.Name}}-{{.Values.env}}\r\n  annotations:\r\n    service.beta.kubernetes.io\/aws-load-balancer-internal: 0.0.0.0\/0\r\n    getambassador.io\/config:  |\r\n        ---\r\n        apiVersion: ambassador\/v0\r\n        kind:  Mapping\r\n        name:  user-service           # name of the mapping\r\n        prefix: \/user-service\/        # this is the url prefix on the main proxy url e.g my.proxy.aws\/user-service\/api\r\n        service: user-service-preprod # this is the internal kubernetes service\r\n        ---\r\n        apiVersion: ambassador\/v0\r\n        kind:  Mapping\r\n        name:  logging service\r\n        prefix: \/logging\/\r\n        service: logging-service-prod\r\n        timeout_ms: 10000            #you can define origin time outs (default is 3sec)\r\nspec:\r\n  type: LoadBalancer\r\n  ports:\r\n  - name: http\r\n    port: 8080\r\n    targetPort: 8080\r\n  - name: admin\r\n    port: 6666\r\n    targetPort: 6666\r\n  selector:\r\n    service:  {{.Chart.Name}}<\/pre>\n<h3>Overall<\/h3>\n<ul>\n<li>I like that I don&#8217;t have to deal with the Ingress resources of Kubernetes especially when it comes to internal use scenarios and shadowing internal services.<\/li>\n<li>Installing Ambassador is dead simple &#8211; especially the Helm sub charts can be easily adapted or templated for your own case.<\/li>\n<li>All you have to do is decide if\n<ul>\n<li>You will make the proxying mapping in 1 single file (like I did on the example)<\/li>\n<li>Or you will enhance your existing service definitions (kubernete services) with the same config that we added above, so that Ambassador can `discover` them through the Kubernetes API<\/li>\n<\/ul>\n<\/li>\n<li>Once you are up and running and you start doing some basic proxying things get more interesting\n<ul>\n<li>Canary deployments<\/li>\n<li>Weighted deployments controlling &#8211; the traffic weight for each service<\/li>\n<li>Re-play production or pre-production traffic to new services (shadowing etc)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>If you are looking for a really easy L7 proxy, kubernetes ready then invite Ambassador to your cluster you will be amazed with him!<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on System Code Geeks with permission by Paris Apostolopoulos, partner at our <a href=\"\/\/www.systemcodegeeks.com\/join-us\/scg\/\" target=\"_blank\" rel=\"noopener\">SCG program<\/a>. See the original article here: <a href=\"http:\/\/javapapo.blogspot.com\/2018\/10\/its-always-good-to-have-one-ambassadors.html\" target=\"_blank\" rel=\"noopener\">its always good to have one Ambassador in your Kubernetes cluster @getambassadorio<\/a><\/p>\n<p>Opinions expressed by System Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I have been working with\u00a0Kubernetes in production for 2 years now. Over this time we have migrated 3 or 4 times clusters, changed techinques and tools of deployments, changed habits or pushed back to some of the hype and trends coming up every day on the kubernetes scene. I guess nothing new here, this is &hellip;<\/p>\n","protected":false},"author":3188,"featured_media":188,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[145],"class_list":["post-3852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-kubernetes"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\" \/>\n<meta property=\"og:site_name\" content=\"System Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/systemcodegeeks\" \/>\n<meta property=\"article:author\" content=\"http:\/\/www.facebook.com\/javapapo\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-25T14:15:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paris Apostolopoulos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javapapo\" \/>\n<meta name=\"twitter:site\" content=\"@systemcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paris Apostolopoulos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\"},\"author\":{\"name\":\"Paris Apostolopoulos\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/f800d44bdf1c2de155e8c755a4069750\"},\"headline\":\"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio\",\"datePublished\":\"2018-10-25T14:15:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\"},\"wordCount\":1054,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"keywords\":[\"Kubernetes\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\",\"name\":\"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"datePublished\":\"2018-10-25T14:15:31+00:00\",\"description\":\"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.systemcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"name\":\"System Code Geeks\",\"description\":\"Operating System Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/systemcodegeeks\",\"https:\/\/x.com\/systemcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/f800d44bdf1c2de155e8c755a4069750\",\"name\":\"Paris Apostolopoulos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6ff4de48bbf21cde9c5ba6c25a50809e924db28bc320e927323dfca30d63c3ea?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6ff4de48bbf21cde9c5ba6c25a50809e924db28bc320e927323dfca30d63c3ea?s=96&d=mm&r=g\",\"caption\":\"Paris Apostolopoulos\"},\"description\":\"Paris is a senior software engineer focusing on J2EE development, loves Business process modelling and is keen on software quality challenges. He is passionate about Java and Java communities. He is a co-founder and administrator of the first Java User Group in greece(JHUG.gr) and occasional speaker on meet-ups and seminars and regular blogger. For his contributions and involvement on the Java community he has been awarded the title of Java Champion in 2007 by Sun Microsystems.\",\"sameAs\":[\"http:\/\/javapapo.blogspot.com\/\",\"http:\/\/www.facebook.com\/javapapo\",\"http:\/\/gr.linkedin.com\/in\/javaneze\/\",\"https:\/\/x.com\/javapapo\"],\"url\":\"https:\/\/www.systemcodegeeks.com\/author\/paris-apostolopoulos\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026","description":"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/","og_locale":"en_US","og_type":"article","og_title":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026","og_description":"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.","og_url":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/","og_site_name":"System Code Geeks","article_publisher":"https:\/\/www.facebook.com\/systemcodegeeks","article_author":"http:\/\/www.facebook.com\/javapapo","article_published_time":"2018-10-25T14:15:31+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","type":"image\/jpeg"}],"author":"Paris Apostolopoulos","twitter_card":"summary_large_image","twitter_creator":"@javapapo","twitter_site":"@systemcodegeeks","twitter_misc":{"Written by":"Paris Apostolopoulos","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#article","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/"},"author":{"name":"Paris Apostolopoulos","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/f800d44bdf1c2de155e8c755a4069750"},"headline":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio","datePublished":"2018-10-25T14:15:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/"},"wordCount":1054,"commentCount":0,"publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","keywords":["Kubernetes"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/","url":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/","name":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio - System Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","datePublished":"2018-10-25T14:15:31+00:00","description":"Interested to learn about Kubernetes cluster? Check our article explaining how to use ambassador in your Kubernetes cluster for an easy L7 proxy.","breadcrumb":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#primaryimage","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemcodegeeks.com\/devops\/ambassador-kubernetes-cluster\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.systemcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.systemcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Its always good to have one Ambassador in your Kubernetes cluster @getambassadorio"}]},{"@type":"WebSite","@id":"https:\/\/www.systemcodegeeks.com\/#website","url":"https:\/\/www.systemcodegeeks.com\/","name":"System Code Geeks","description":"Operating System Developers Resource Center","publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.systemcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.systemcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/systemcodegeeks","https:\/\/x.com\/systemcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/f800d44bdf1c2de155e8c755a4069750","name":"Paris Apostolopoulos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6ff4de48bbf21cde9c5ba6c25a50809e924db28bc320e927323dfca30d63c3ea?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6ff4de48bbf21cde9c5ba6c25a50809e924db28bc320e927323dfca30d63c3ea?s=96&d=mm&r=g","caption":"Paris Apostolopoulos"},"description":"Paris is a senior software engineer focusing on J2EE development, loves Business process modelling and is keen on software quality challenges. He is passionate about Java and Java communities. He is a co-founder and administrator of the first Java User Group in greece(JHUG.gr) and occasional speaker on meet-ups and seminars and regular blogger. For his contributions and involvement on the Java community he has been awarded the title of Java Champion in 2007 by Sun Microsystems.","sameAs":["http:\/\/javapapo.blogspot.com\/","http:\/\/www.facebook.com\/javapapo","http:\/\/gr.linkedin.com\/in\/javaneze\/","https:\/\/x.com\/javapapo"],"url":"https:\/\/www.systemcodegeeks.com\/author\/paris-apostolopoulos\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/3852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/users\/3188"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/comments?post=3852"}],"version-history":[{"count":0,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/3852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media\/188"}],"wp:attachment":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media?parent=3852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/categories?post=3852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/tags?post=3852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}