{"id":45488,"date":"2022-03-11T07:52:53","date_gmt":"2022-03-10T22:52:53","guid":{"rendered":"https:\/\/jirak.net\/wp\/exposing-apis-in-kubernetes\/"},"modified":"2022-03-11T08:34:13","modified_gmt":"2022-03-10T23:34:13","slug":"exposing-apis-in-kubernetes","status":"publish","type":"post","link":"https:\/\/jirak.net\/wp\/exposing-apis-in-kubernetes\/","title":{"rendered":"Exposing APIs in Kubernetes"},"content":{"rendered":"<p>Exposing APIs in Kubernetes<\/p>\n<p><em>This blog is the third in our five&#8209;part series about Kubernetes networking for Microservices March&nbsp;2022: <\/p>\n<ul>\n<li>Program overview: <a href=\"https:\/\/www.nginx.com\/blog\/microservices-march-2022-kubernetes-networking\/\">Microservices March 2022: Kubernetes Networking<\/a>\n<li>Unit 1: <a href=\"https:\/\/www.nginx.com\/blog\/microservices-march-architecting-kubernetes-clusters-for-high-traffic-websites\/\">Architecting Kubernetes Clusters for High&#8209;Traffic Websites<\/a><\/li>\n<li>Unit 2: <strong>Exposing APIs in Kubernetes<\/strong>  (this post)<\/li>\n<li>Unit 3: Microservices Security Pattern in Kubernetes (coming soon)<\/li>\n<li>Unit 4: Advanced Kubernetes Deployment Strategies (coming soon)<\/li>\n<\/ul>\n<p><\/em><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2022\/03\/Microservices-March-2022-unit-2_header.svg\" alt=\"\" class=\"aligncenter size-full wp-image-69046\" \/><\/p>\n<p>Are you planning to serve API requests from Kubernetes and wondering about best practices for deploying API gateways? Then Unit&nbsp;2 is for you!<\/p>\n<p>Three activities guide you progressively from a high&#8209;level overview to practical application. We suggest you complete all three to get the best experience.<\/p>\n<ul>\n<li><a href=\"#watch-livestream\">Step 1: Watch the Livestream (1 Hour)<\/a><\/li>\n<li><a href=\"#deepen-knowledge\">Step 2: Deepen Your Knowledge (1&ndash;2 Hours)<\/a><\/li>\n<li><a href=\"#get-hands-on\">Step 3: Get Hands&#8209;On (1 Hour)<\/a><\/li>\n<\/ul>\n<h2 id=\"watch-livestream\">Step 1: Watch the Livestream (1 Hour)<\/h2>\n<p>Each Microservices March livestream provides a high&#8209;level overview of the topic featuring subject matter experts from <a target=\"_blank\" href=\"https:\/\/learnk8s.io\/\" rel=\"noopener noreferrer\">learnk8s<\/a> and NGINX. If you miss the live airing on <span>March 14 &ndash;<\/span> don\u2019t worry! You can catch it on demand.<\/p>\n<p>In this episode, we answer the question <em>\u201cHow do I expose APIs in Kubernetes?\u201d<\/em> It covers:<\/p>\n<ul>\n<li>Best practices for deploying API gateways in Kubernetes<\/li>\n<li>Authorization and authentication<\/li>\n<li>OpenID Connect (OIDC)<\/li>\n<li>Rate limiting<\/li>\n<\/ul>\n<h2 id=\"deepen-knowledge\">Step 2: Deepen Your Knowledge (1&ndash;2 Hours)<\/h2>\n<p>We expect you\u2019ll have more questions after the livestream&nbsp;&ndash; that\u2019s why we curated a collection of relevant reading and videos. This Unit\u2019s deep dive covers two topics: tool options for deploying API gateways in Kubernetes and use cases you can accomplish with these tools.<\/p>\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/blog\/how-do-i-choose-api-gateway-vs-ingress-controller-vs-service-mesh\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/12\/API-gateway-IC-service-mesh_featured.png\" alt=\"\" width=\"1000\" height=\"600\" class=\"aligncenter size-full wp-image-68445\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>Blog | <a href=\"https:\/\/www.nginx.com\/blog\/how-do-i-choose-api-gateway-vs-ingress-controller-vs-service-mesh\/\">How Do I Choose? API Gateway vs. Ingress Controller vs. Service Mesh<\/a><\/strong><br \/>\nStart by reading this blog, which guides you through the decision about which technology to use for API gateway use cases, with sample scenarios for north&#8209;south and east&#8209;west API traffic.\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/resources\/webinars\/api-gateway-use-cases-for-kubernetes\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/12\/WB-NGINX-NXM1910-APIGatewayUseCasesForKubernetes-featured-500x300-1.png\" alt=\"\" width=\"1000\" height=\"600\" class=\"aligncenter size-full wp-image-68396\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>Webinar | <a href=\"https:\/\/www.nginx.com\/resources\/webinars\/api-gateway-use-cases-for-kubernetes\/\"> API Gateway Use Cases for Kubernetes<\/a><\/strong><br \/>\nIn addition to discussing the various tools and use cases, our experts demo how you can use an Ingress controller and service mesh to accomplish API gateway use cases.\n<\/div>\n<\/div>\n<\/div>\n<p>Now that you have a good foundation in how API gateways can be deployed in Kubernetes, it\u2019s a good time to dive into common use cases. The following blogs walk through how to implement two common use cases using Kubernetes tools: identity verification and rate limiting.<\/p>\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/blog\/implementing-openid-connect-authentication-kubernetes-okta-and-nginx-ingress-controller\/\"><img decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/09\/OIDC-Kubernetes-Okta-NGINX-IC_featured.svg\" alt=\"\" class=\"aligncenter size-full wp-image-67971\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>Blog  | <a href=\"https:\/\/www.nginx.com\/blog\/implementing-openid-connect-authentication-kubernetes-okta-and-nginx-ingress-controller\/\">Implementing OpenID Connect Authentication in Kubernetes with Okta and NGINX Ingress Controller<\/a><\/strong><br \/>\nThe Ingress controller is an ideal location for centralized authentication and authorization in Kubernetes, which can help you reduce errors and increase efficiency. In this blog, we walk through how to implement single sign&#8209;on with NGINX Ingress Controller as the relaying party and Okta as the identity provider in the OIDC Authorization Code Flow.<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/blog\/how-to-use-nginx-service-mesh-for-rate-limiting\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/05\/NGINX-Service-Mesh-rate-limiting_featured.png\" alt=\"\" width=\"1000\" height=\"600\" class=\"aligncenter size-full wp-image-66632\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>Blog &#038; Video  | <a href=\"https:\/\/www.nginx.com\/blog\/how-to-use-nginx-service-mesh-for-rate-limiting\/\">How to Use NGINX Service Mesh for Rate Limiting<\/a><\/strong><br \/>\nHigh request volume can overwhelm your Kubernetes services, which is why limiting each client to a reasonable number of requests is a crucial component of your resilience strategy. In this blog and video, we demonstrate how it can take less than&nbsp;10 minutes to define and apply a rate&#8209;limiting policy using NGINX Service Mesh.\n<\/div>\n<\/div>\n<\/div>\n<h3>Bonus Research<\/h3>\n<p>If you\u2019re keen to deepen your knowledge on APIs and API gateways&nbsp;&ndash; and have more than&nbsp;1&ndash;2 hours to spend&nbsp;&ndash; then we suggest a series of additional resources:<\/p>\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/resources\/library\/real-time-api-design-operation-observation\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2021\/03\/EBOOK-NGINX-NXM707-InfoQ-Real-TimeAPIsDesign-r1-featured-500x300@2x.png\" alt=\"\" width=\"1000\" height=\"600\" class=\"aligncenter size-full wp-image-66209\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>eMagazine | <a href=\"https:\/\/www.nginx.com\/resources\/library\/real-time-api-design-operation-observation\/\">Real-Time APIs: Design, Operation, and Observation<\/a><\/strong><br \/>\nThis eMagazine addresses effective planning, architecture, and deployment of APIs for reliable flexibility.\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/resources\/library\/real-time-api-handbook\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2020\/10\/ebk-NGINX-Real-Time-API-Handbook-featured-500x300-1.png\" alt=\"\" width=\"500\" height=\"300\" class=\"aligncenter size-full wp-image-65221\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>eBook | <a href=\"https:\/\/www.nginx.com\/resources\/library\/real-time-api-handbook\/\">The NGINX Real-Time API Handbook<\/a><\/strong><br \/>\nThis eBook is a comprehensive guide to reducing latency in your applications and APIs without making any compromises. It covers trends driving real&#8209;time APIs, a practical reference architecture for any enterprise, and helpful vendor comparisons and case studies to make the business case for investing in the proper API management solution.<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"col-md-3\"><a href=\"https:\/\/www.nginx.com\/resources\/library\/api-traffic-management-101-monitoring-beyond\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2019\/08\/ebk-ORM-API-Traffic-Management-101-featured-500x300.png\" alt=\"\" width=\"500\" height=\"300\" class=\"aligncenter size-full wp-image-62950\" \/><\/a>\n<\/div>\n<div class=\"col-md-9\"><strong>eBook | <a href=\"https:\/\/www.nginx.com\/resources\/library\/api-traffic-management-101-monitoring-beyond\/\">API Traffic Management 101: From Monitoring to Managing and Beyond<\/a><\/strong><br \/>\nIn this O\u2019Reilly eBook, Mike Amundsen introduces developers and network administrators to the basic concepts and challenges of monitoring and managing API traffic. You\u2019ll learn approaches for observing and controlling external (north&#8209;south) traffic and for optimizing internal (east&#8209;west) traffic. You\u2019ll also examine the business value of good API traffic practice that connects your business goals and internal progress measurements to useful traffic monitoring, reporting, and analysis.\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p><!-- t.mauro notes: this is a hack that's required for the href tags in the final row above to work properly. Without it, only the very top 5% of the thumbnail and the area _above_ the video title can be clicked on. Below that space the cursor turns back into a regular arrow. It's as if the technology that makes a link symbol appear when you hover over the following H2 is \"reaching up\" and claiming space above it. --><\/p>\n<h2 id=\"get-hands-on\">Step 3: Get Hands On (1 Hour)<\/h2>\n<p>Even with all the best webinars and research, there\u2019s nothing quite like getting your hands on the tech. The labs will run you through common scenarios to reinforce your learning.<\/p>\n<p>In our second self&#8209;paced lab, you use NGINX Ingress Controller to implement rate limiting and prevent an API and app from getting overwhelmed by too many requests.<!-- Watch this walkthrough of the lab to see it in action and learn the \u201cwhy\u201d behind each step. --><\/p>\n<p>To access the lab, you need to <a href=\"https:\/\/www.nginx.com\/c\/microservices-march-2022-kubernetes-networking\/\">register<\/a> for Microservices March&nbsp;2022. If you\u2019re already registered, the email you received with the Unit&nbsp;2 Learning Guide includes access instructions.&lt;!&#8211; ADD A LINEBREAK ABOVE THE  TAG AND INSERT THE LAST ELEMENT OF THE YOUTUBE URL AS INDICATED:  &#8211;&gt;<\/p>\n<h2>Why Register for Microservices March?<\/h2>\n<p>While some of the activities (the livestreams and blogs) are freely available, we need to collect just a little personal information to get you setup with the full experience. <a href=\"https:\/\/www.nginx.com\/c\/microservices-march-2022-kubernetes-networking\/\">Registration<\/a> gives you:<\/p>\n<ul>\n<li>Access to four self&#8209;paced labs where you can get hands&#8209;on with the tech via common scenarios<\/li>\n<li>Membership in the Microservices March Slack channel for asking questions of the experts and networking with fellow participants<\/li>\n<li>Weekly learning guides to help you stay on top of the agenda<\/li>\n<li>Calendar invites for the livestreams<\/li>\n<\/ul>\n<h2>What\u2019s Next?<\/h2>\n<p>Unit 3: <em>Microservices Security Pattern in Kubernetes<\/em> begins on March&nbsp;21. Learn about the sidecar pattern, policies that can make your services more secure and resilient, service meshes, mTLS, and <span>end-to-end<\/span> encryption. <\/p>\n<p><a href=\"https:\/\/www.nginx.com\/c\/microservices-march-2022-kubernetes-networking\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2022\/03\/Microservices-March-2022-unit-2_footer.png\" alt=\"\" width=\"2049\" height=\"501\" class=\"aligncenter size-full wp-image-69045\" \/><\/a><\/p>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/microservices-march-exposing-apis-in-kubernetes\/\">Exposing APIs in Kubernetes<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\">NGINX<\/a>.<\/p>\n<p>Source: <a href=\"https:\/\/www.nginx.com\/blog\/microservices-march-exposing-apis-in-kubernetes\/\" target=\"_blank\" rel=\"noopener\">Exposing APIs in Kubernetes<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Exposing APIs in Kubernetes This blog is the third in our five&#8209;part series about Kubernetes networking for Microservices March&nbsp;2022: Program overview: Microservices March 2022: Kubernetes Networking Unit 1: Architecting Kubernetes Clusters for High&#8209;Traffic Websites Unit 2: Exposing APIs in Kubernetes (this post) Unit 3: Microservices Security Pattern in Kubernetes (coming soon) Unit 4: Advanced Kubernetes Deployment Strategies (coming soon) Are you planning to serve API requests from Kubernetes and wondering about best practices for deploying API gateways? Then Unit&nbsp;2 is for you! Three activities guide you progressively from a high&#8209;level overview to practical application. We suggest you complete all three to get the best experience. Step 1: Watch the Livestream (1 Hour) Step 2: Deepen Your Knowledge (1&ndash;2 Hours) Step 3: Get Hands&#8209;On (1 Hour) Step 1: Watch the Livestream (1 Hour) Each Microservices March livestream provides a high&#8209;level overview <a class=\"mh-excerpt-more\" href=\"https:\/\/jirak.net\/wp\/exposing-apis-in-kubernetes\/\" title=\"Exposing APIs in Kubernetes\">[ more&#8230; ]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[169],"tags":[652],"class_list":["post-45488","post","type-post","status-publish","format-standard","hentry","category-news","tag-nginx"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/45488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/comments?post=45488"}],"version-history":[{"count":1,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/45488\/revisions"}],"predecessor-version":[{"id":45489,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/posts\/45488\/revisions\/45489"}],"wp:attachment":[{"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/media?parent=45488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/categories?post=45488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jirak.net\/wp\/wp-json\/wp\/v2\/tags?post=45488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}