Conf42 Cloud Native 2022 - Online

Simpler and more flexible Kubernetes Ingress: Apache APISIX Ingress

Video size:

Abstract

This session mainly shares the use and architecture of Apache APISIX Ingress.

The audience can learn about the design of Apache APISIX Ingress from this sharing. Through some practical cases, it will introduce how to simplify user configuration , it is applicable to more complex cloud requirements.

The outline of this sharing is as follows:

  • About Wei
  • Introduce the design of Apache APISIX Ingress
  • Explain the simplicity in combination with specific scenarios
  • Combine the case to illustrate the benefits of architectural flexibility
  • Outlook

Summary

  • Apache API six Ingress controller is another ingress controller implementation based on Apache API six. Controller is used to calculate and synchronize restores configuration between Kubernetes and Apisix cluster. Welcome to watch the project and get more future information.
  • Apache API Six Ingress controller will be released in June 2021. Using API six ingredients has nature advantages. The declarative configuration is more readable and complex scenarios can be defined in a single result. If you want to add more features, just add plugins.
  • Apache API six ingress does not combine controller and proxy like other ingresses. The advantage of this is that you can deploy them together or separately. More and more enterprise customers are using API six for production environments. That's what keeps our open source project going.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hello everyone, this is Jin Wei. I'm very happy to introduce the Apache API six Ingress project. This is a simpler and easier kubernetes ingress have something about myself. I'm Apache API six PMC, Apache Skywalking committee, and the founder of Apache API Six Ingress controller. So what is Apache API six Ingress controller? It is another ingress controller implementation based on Apache API six, and it supports declarative configuration which can be configured through native ingress results or through custom results definition. We call it CRD. This picture tells us that the Apache API six Ingress controller is usually deployed at the age of the cluster, serving as a cluster entry and forwarding business request to the services. Well, we also need to introduce Apache API six. It is a high performance four dynamic real time API gateway and it is also a top level project of Apache foundation. This is the architecture diagram of Apache API six, and the left part show us Apache API six how to process business traffic with rich plugin functions. On the right is the controller plan of Apache API six. Here we mainly focus on admin APIs, through which ingress controller synchronize results to Apache API six. Okay, let's talk about the working mechanism of Apache API six Ingress controller. The Apache API six Ingress controller watches events from the Kubernetes API server, something like secret endpoints and Ingress in kubernetes, as well as custom results definition such as API six root API six, upstream API six tls and so on. And then the channel resource objects are covered, compared, and finally the results are synchronized to a patch API six cluster by invoking admin APIs. So this diagram fully shows the relationship between Ingress controller and Apache API six. Apache API six Ingress controller is used as a controller plan to calculate and synchronize restores configuration between Kubernetes and Apisix cluster. Well, what can we do with Apache Apisix in grace? I list many important features here such as dynamic configuration service discovery, flexible load balancing strategies, out of the box, health checks, traffic split and more than 70 official plugins, as well as the configuration of custom plugins, ability and so on. Welcome to watch the project and get more future information. Let me show the path of Apache API six Ingress controller in 2019. I wrote the first line of project and donated to the Apache foundation in December 2020 after half a year of community polishing. The first GA version was released in June 2021. Until the last version 1.4 release, Apache API Six Ingress has been used by more and more enterprises and working in production environments. Much has been learned along the way and soon we will be raising version 1.5 in midmain. This is contribute growth curve of the Apache API Six Ingress controller and its steady growth shows that the project has maintained a good level of activity. Well, there is a question I think you will ask. We know that there are many ingress implementations in kubernetes, but why we still create another ingress based on API six? Of course, as a gateway with excellent performance, Apache API six is necessary to implement ingress in order to help users to use it on Kubernetes platform. Apart from that, we certainly have other reasons that are why I recommend API six ingress to you. First. All configurations of API six take effect dynamically and there is no need to reload when the configuration is changed. Compared with some other ingress implementations, using API six ingredients has nature advantages. Apache API six ingredients is easier to use, the declarative configuration is more readable and complex scenarios can be defined in a single result. This example shows that an API is assigned to different upstream according to weights. Of course that certain condition must be made. Here we can see that the complete traffic split configuration are delivered into two parts, match and back end. The match part defines the root matching rules and the backend part defines the weight between upstreams. The whole configuration is very easy to read. Third, API six have strong scalability following the above configuration. If you want to add some features to this API, such as the ability to support cross domain and URIW, we can use plugins to empower the API. If you want to add more features, just add plugins. I'd like to say that the design of the plugin is very compatible with the declarative configuration and because of the in cap solution of plugin, you do not need to write code slaved in declarative configuration and no longer need to pay attention to these code logics. The only thing need to be case about is some simple variables which is more general and more readable. Okay, let's come back and talk about the flexibility of the architecture of Apache API six. Ingress controller Apache API six ingress does not combine controller and proxy like other ingresses. The advantage of this is that you can deploy them together or separately. When Ingress controller and API six are deployed together, they are used to handle ingress requests to a single Kubernetes cluster, no different from traditional Kubernetes ingress. You can also deploy them separately. This is awesome. As shown on the right, API six cluster is deployed outside the Kubernetes clusters and can manage the traffic on multiple Kubernetes clusters. In this way all resources be managed in unified API cluster and also reduce one traffic forwarding. The only thing you need to care about is the networking between the Kubernetes clusters. Here are some complaints using Apache API six more and more enterprise customers are using Apache API six for production environments. More and more user are adopting Apache API six Ingress solutions. That's what keeps our open source project going. Okay, I'd like to share with you the future plans of Apache API six Ingress controller. We are supporting the Kubernetes Gateway API and we are also preparing to support a new scenarios which is to support cluster deployment without etCD. I think users who mind etcd being stateful will be happy to hear about that. Why we made such changes because this needs from the community are very reasonable and this is the driving force for the project to continue. Okay, the above is the whole content of this sharing. Looking forward to build a patch API six community together with you. See you next time.
...

Wei Jin

Software Engineer @ API7

Wei Jin's LinkedIn account Wei Jin's twitter account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)