An operator that manages Istio deployments on Kubernetes
Istio-operator is a Kubernetes operator to deploy and manage Istio resources for a Kubernetes cluster.
Istio is an open platform to connect, manage, and secure microservices and it is emerging as the
standardfor building service meshes on Kubernetes. It is built out on multiple components and a rather complex deployment scheme (20+ CRDs). Installing, upgrading and operating these components requires deep understanding of Istio.
The goal of the Istio-operator is to automate and simplify these and enable popular service mesh use cases (multi cluster federation, multiple gateways support, resource reconciliation, etc) by introducing easy higher level abstractions.
Backyards is Banzai Cloud's production ready Istio distribution. The Banzai Cloud Istio operator is a core part of Backyards, which helps with installing, upgrading and managing an Istio mesh, but Backyards provides many other components to conveniently secure, operate and observe Istio as well.
The differences are presented in this table:
| | Istio operator | Backyards | |:-------------------------:|:------------------:|:------------------:| | Install Istio | :heavycheckmark: | :heavycheckmark: | | Manage Istio | :heavycheckmark: | :heavycheckmark: | | Upgrade Istio | :heavycheckmark: | :heavycheckmark: | | Uninstall Istio | :heavycheckmark: | :heavycheckmark: | | Multi cluster support | :heavycheckmark: | :heavycheckmark: | | Multiple gateways support | :heavycheckmark: | :heavycheckmark: | | Prometheus | | :heavycheckmark: | | Grafana | | :heavycheckmark: | | Jaeger | | :heavycheckmark: | | Cert manager | | :heavycheckmark: | | Dashboard | | :heavycheckmark: | | CLI | | :heavycheckmark: | | Enhanced observability | | :heavycheckmark: | | Topology graph | | :heavycheckmark: | | Live access logs | | :heavycheckmark: | | mTLS management | | :heavycheckmark: | | Gateway management | | :heavycheckmark: | | Sidecar management | | :heavycheckmark: | | Routing | | :heavycheckmark: | | Circuit Breaking | | :heavycheckmark: | | Fault Injection | | :heavycheckmark: | | Mirroring | | :heavycheckmark: | | Canary releases | | :heavycheckmark: | | Validations | | :heavycheckmark: |
The operator (
release-1.7branch) installs the 1.7.4 version of Istio, and can run on Minikube v1.1.1+ and Kubernetes 1.16.0+.
As a pre-requisite it needs a Kubernetes cluster (you can create one using Pipeline).
KUBECONFIGpointing towards your cluster
make deploy(deploys the operator in the
istio-systemnamespace to the cluster)
config/samples/istio_v1beta1_istio.yaml) and run this command to deploy the Istio components:
kubectl create -n istio-system -f config/samples/istio_v1beta1_istio.yaml
Go grab and install Istio with the Backyards CLI tool.
curl https://getbackyards.sh | sh && backyards istio install
Alternatively, if you just can’t let go of Helm completely, you can deploy the operator using a Helm chart, which is available in the Banzai Cloud stable Helm repo:
helm repo add banzaicloud-stable https://kubernetes-charts.banzaicloud.com/ helm install istio-operator-v17x --create-namespace --namespace=istio-system banzaicloud-stable/istio-operator
You can also have your own
kustomization.yamlfile with a reference to Istio operator as a base without the need to clone the repo. See more info in the Kustomize usage doc.
bases: - github.com/banzaicloud/istio-operator/config?ref=release-1.7 - github.com/banzaicloud/istio-operator/config/overlays/auth-proxy-enabled?ref=release-1.7
Check out the upgrade docs to see how to upgrade between minor or major Istio versions.
Check out the multi-cluster federation docs.
Check out the developer docs.
To remove Istio and Istio operator completely from your cluster execute the following steps:
istio-systemnamespace to delete Istio operator itself
kubectl delete -n istio-system -f config/samples/istio_v1beta1_istio.yaml kubectl delete namespace istio-system
Please note that the Istio operator is constantly under development and new releases might introduce breaking changes. We are striving to keep backward compatibility as much as possible while adding new features at a fast pace. Issues, new features or bugs are tracked on the projects GitHub page - please feel free to add yours!
To track some of the significant features and future items from the roadmap, please visit the roadmap doc.
If you find this project useful here's how you can help:
If you are using the Istio operator in a production environment and require commercial support, contact Banzai Cloud, the company backing the development of the Istio operator.
We frequently write blog posts about Istio itself and the Istio operator. To be up-to-date with the Istio operator and the other open source and commercial products of Banzai Cloud, subscribe to our blog.
Copyright (c) 2017-2020 Banzai Cloud, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.