• Stars
    star
    33,248
  • Rank 464 (Top 0.01 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Connect, secure, control, and observe services.

Istio

CII Best Practices Go Report Card GoDoc

Istio logo

Istio is an open source service mesh that layers transparently onto existing distributed applications. Istio’s powerful features provide a uniform and more efficient way to secure, connect, and monitor services. Istio is the path to load balancing, service-to-service authentication, and monitoring – with few or no service code changes.

  • For in-depth information about how to use Istio, visit istio.io
  • To ask questions and get assistance from our community, visit Github Discussions
  • To learn how to participate in our overall community, visit our community page

In this README:

In addition, here are some other documents you may wish to read:

You'll find many other useful documents on our Wiki.

Introduction

Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes.

Istio is composed of these components:

  • Envoy - Sidecar proxies per microservice to handle ingress/egress traffic between services in the cluster and from a service to external services. The proxies form a secure microservice mesh providing a rich set of functions like discovery, rich layer-7 routing, circuit breakers, policy enforcement and telemetry recording/reporting functions.

    Note: The service mesh is not an overlay network. It simplifies and enhances how microservices in an application talk to each other over the network provided by the underlying platform.

  • Istiod - The Istio control plane. It provides service discovery, configuration and certificate management. It consists of the following sub-components:

    • Pilot - Responsible for configuring the proxies at runtime.

    • Citadel - Responsible for certificate issuance and rotation.

    • Galley - Responsible for validating, ingesting, aggregating, transforming and distributing config within Istio.

  • Operator - The component provides user friendly options to operate the Istio service mesh.

Repositories

The Istio project is divided across a few GitHub repositories:

  • istio/api. This repository defines component-level APIs and common configuration formats for the Istio platform.

  • istio/community. This repository contains information on the Istio community, including the various documents that govern the Istio open source project.

  • istio/istio. This is the main code repository. It hosts Istio's core components, install artifacts, and sample programs. It includes:

    • istioctl. This directory contains code for the istioctl command line utility.

    • operator. This directory contains code for the Istio Operator.

    • pilot. This directory contains platform-specific code to populate the abstract service model, dynamically reconfigure the proxies when the application topology changes, as well as translate routing rules into proxy specific configuration.

    • security. This directory contains security related code, including Citadel (acting as Certificate Authority), citadel agent, etc.

  • istio/proxy. The Istio proxy contains extensions to the Envoy proxy (in the form of Envoy filters) that support authentication, authorization, and telemetry collection.

  • istio/ztunnel. The repository contains the Rust implementation of the ztunnel component of Ambient mesh.

Issue management

We use GitHub to track all of our bugs and feature requests. Each issue we track has a variety of metadata:

  • Epic. An epic represents a feature area for Istio as a whole. Epics are fairly broad in scope and are basically product-level things. Each issue is ultimately part of an epic.

  • Milestone. Each issue is assigned a milestone. This is 0.1, 0.2, ..., or 'Nebulous Future'. The milestone indicates when we think the issue should get addressed.

  • Priority. Each issue has a priority which is represented by the column in the Prioritization project. Priority can be one of P0, P1, P2, or >P2. The priority indicates how important it is to address the issue within the milestone. P0 says that the milestone cannot be considered achieved if the issue isn't resolved.


Cloud Native Computing Foundation logo

Istio is a Cloud Native Computing Foundation project.

More Repositories

1

community

Istio governance material.
Go
2,596
star
2

istio.io

Source for the istio.io site
HTML
750
star
3

proxy

The Istio proxy components.
C++
724
star
4

api

API definitions for the Istio project
Shell
413
star
5

tools

Tools shared by several Istio repositories
Go
311
star
6

client-go

Go client libraries for the Istio API.
Makefile
241
star
7

operator

Istio operator provides user friendly options to operate the Istio service mesh
Go
173
star
8

ztunnel

An experimental implementation of the `ztunnel` component of ambient mesh
Rust
156
star
9

cni

Istio CNI to setup kubernetes pod namespaces to redirect traffic to sidecar proxy.
Go
140
star
10

old_pilot_repo

Deprecated home of Istio's Pilot, now in istio/istio's pilot dir
Go
137
star
11

installer

A modular, a-la-carte installer for Istio components. MOVED to https://github.com/istio/istio/tree/master/manifests
Smarty
112
star
12

old_auth_repo

Deprecated home of Istio authentication components, now in istio/istio's security dir
Go
73
star
13

test-infra

Go
73
star
14

old_mixer_repo

Deprecated home of Istio's Mixer and its adapters, now in istio/istio's mixer dir
Go
67
star
15

pkg

Common packages used by other repos.
Go
47
star
16

release-builder

Builds istio releases in a hermetic and reproducible environment
Go
43
star
17

old_issues_repo

Deprecated issue-tracking repo, please post new issues or feature requests to istio/istio instead.
37
star
18

glog

A replacement for the glog package that directs logging to zap.
Go
23
star
19

old_mixerclient_repo

Deprecated home of the C++ client library for Mixer's API, now in istio/proxy
C++
15
star
20

fortio-deployment

Deployment files for Fortio.
Makefile
15
star
21

enhancements

Enhancement Tracking and Backlog Repo for Istio Releases
14
star
22

common-files

Contains build files shared by many Istio repos.
Shell
11
star
23

bots

Source code for bots used by the Istio project.
Go
10
star
24

old_broker_repo

Deprecated home of Istio's Service Broker, now in istio/istio's broker dir
Go
8
star
25

get-istioctl

JavaScript
7
star
26

gogo-genproto

Houses generated source code for imported libraries used within Istio.
Shell
7
star
27

cri

Istio CRI
Shell
5
star
28

klog

A replacement for the klog package that directs logging to zap.
Go
3
star
29

old_vendor-istio_repo

(former) Vendored dependencies for the main istio repo
Go
2
star
30

bottestrepo

Used for testing the Istio bots
HTML
1
star
31

.github

1
star
32

.allstar

1
star
33

old_manifest_repo

1
star