istio.io/archive/v0.4/docs/setup/eureka/install.html

40 lines
16 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en" itemscope itemtype="https://schema.org/WebPage" style="overflow-y: scroll;"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="title" content="Installation"><meta name="og:title" content="Installation"><meta name="og:image" content="/v0.4/img/logo.png"/><meta name="theme-color" content="#466BB0"/><meta name="description" content="Instructions for installing the Istio control plane in an Eureka based environment."><meta name="og:description" content="Instructions for installing the Istio control plane in an Eureka based environment."><title>Istioldie 0.4 / Installation</title><script> window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-98480406-2', 'auto'); ga('send', 'pageview'); </script> <script async src='https://www.google-analytics.com/analytics.js'></script><link rel="alternate" type="application/rss+xml" title="Istio Blog RSS" href="/v0.4/feed.xml"><link rel="shortcut icon" href="/v0.4/favicons/favicon.ico" ><link rel="apple-touch-icon" href="/v0.4/favicons/apple-touch-icon-180x180.png" sizes="180x180"><link rel="icon" type="image/png" href="/v0.4/favicons/favicon-16x16.png" sizes="16x16"><link rel="icon" type="image/png" href="/v0.4/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/v0.4/favicons/android-36x36.png" sizes="36x36"><link rel="icon" type="image/png" href="/v0.4/favicons/android-48x48.png" sizes="48x48"><link rel="icon" type="image/png" href="/v0.4/favicons/android-72x72.png" sizes="72x72"><link rel="icon" type="image/png" href="/v0.4/favicons/android-96x196.png" sizes="96x196"><link rel="icon" type="image/png" href="/v0.4/favicons/android-144x144.png" sizes="144x144"><link rel="icon" type="image/png" href="/v0.4/favicons/android-192x192.png" sizes="192x192"><link rel="manifest" href="/v0.4/manifest.json"><meta name="apple-mobile-web-app-title" content="Istio"><meta name="application-name" content="Istio"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><link rel="stylesheet" href="/v0.4/css/all.css"><link rel="stylesheet" href="/v0.4/css/prism.css"></head><body class="language-unknown"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script><div class="nav-hero-container" style="z-index: 200000;"><nav id="header-nav" class="navbar navbar-inverse" role="navigation" style="z-index: 200000;"><div class="container"><div class="row"><div class="col-md-11 nofloat center-block "><div class="navbar-header"> <button type="button" class="hamburger navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/v0.4/"><div> <img src="/v0.4/img/istio-logo.svg" alt="Istio Logo" height="54px"/> <span class="brand-name">Istioldie 0.4</span></div></a></div><div class="collapse navbar-collapse" id="navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="/v0.4/about" >About</a></li><li><a href="/v0.4/blog/posts/2017/mixer-spof-myth.html" >Blog</a></li><li><a href="/v0.4/docs/welcome" class='current'>Docs</a></li><li><a href="/v0.4/help" >Help</a></li><li><a href="/v0.4/community" >Community</a></li><li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href=""> <i class='fa fa-lg fa-cog'></i> <span class="caret"></span> </a><ul class="dropdown-menu"><h6 class="dropdown-header">Other versions of this site</h6><li> <a href="https://istio.io">Current Release</a></li><li> <a href="https://preliminary.istio.io">Next Release</a></li><li> <a href="https://archive.istio.io">Older Releases</a></li></ul></li><li><form name="cse" id="searchbox_demo" class="navbar-form navbar-right" role="search"> <input type="hidden" name="cx" value="013699703217164175118:iwwf17ikgf4" /> <input type="hidden" name="ie" value="utf-8" /> <input type="hidden" name="hl" value="en" /><div class="form-group"><div class="input-group"> <input name="q" class="form-control search-box" type="text" size="30" /><div class="input-group-addon"> <span class="btn-search glyphicon glyphicon-search"></span></div></div></div></form> <script type="text/javascript" src="https://www.google.com/cse/brand?form=searchbox_demo"></script></li></ul></div></div></div></div></nav></div><div class="container"><div class="row"><div class="col-md-11 nofloat center-block" style="margin-top: 3px;"><ul class="col-sm-10 nav nav-tabs"><li role="presentation" ><a href="/v0.4/docs/welcome/">Welcome</a></li><li role="presentation" ><a href="/v0.4/docs/concepts/">Concepts</a></li><li role="presentation" class='active'><a href="/v0.4/docs/setup/">Setup</a></li><li role="presentation" ><a href="/v0.4/docs/tasks/">Tasks</a></li><li role="presentation" ><a href="/v0.4/docs/guides/">Guides</a></li><li role="presentation" ><a href="/v0.4/docs/reference/">Reference</a></li></ul></div></div></div><script src="/v0.4/js/navtree.min.js"></script><div class="container docs"><div class="row"><div class="col-md-11 nofloat center-block"><div class="row"><div id="sidebar-container" class="col-sm-3"><ul class="sidebar"><li><h5 class='sidebar-title'>Setup</h5></li><script type="text/javascript"> var docs = []; docs.push({path: [ "cloudfoundry", "index.md", ], url: "/docs/setup/cloudfoundry/", title: "Cloud Foundry", order: 40, overview: "Instructions for installing the Istio control plane in Cloud Foundry."}); docs.push({path: [ "cloudfoundry", "install.md", ], url: "/docs/setup/cloudfoundry/install.html", title: "Installation", order: 10, overview: "Instructions for installing the Istio control plane in Cloud Foundry."}); docs.push({path: [ "consul", "index.md", ], url: "/docs/setup/consul/", title: "Nomad & Consul", order: 20, overview: "Instructions for installing the Istio control plane in a Consul based environment, with or without Nomad."}); docs.push({path: [ "consul", "install.md", ], url: "/docs/setup/consul/install.html", title: "Installation", order: 30, overview: "Instructions for installing the Istio control plane in a Consul based environment, with or without Nomad."}); docs.push({path: [ "consul", "quick-start.md", ], url: "/docs/setup/consul/quick-start.html", title: "Quick Start on Docker", order: 10, overview: "Quick Start instructions to setup the Istio service mesh with Docker Compose."}); docs.push({path: [ "eureka", "index.md", ], url: "/docs/setup/eureka/", title: "Eureka", order: 30, overview: "Instructions for installing the Istio control plane in a Eureka based environment."}); docs.push({path: [ "eureka", "install.md", ], url: "/docs/setup/eureka/install.html", title: "Installation", order: 30, overview: "Instructions for installing the Istio control plane in an Eureka based environment."}); docs.push({path: [ "eureka", "quick-start.md", ], url: "/docs/setup/eureka/quick-start.html", title: "Quick Start on Docker", order: 10, overview: "Quick Start instructions to setup the Istio service mesh with Docker Compose."}); docs.push({path: [ "index.md", ], url: "/docs/setup/", title: "Setup", order: 15, overview: "Setup contains instructions for installing the Istio control plane in various environments (e.g., Kubernetes, Consul, etc.), as well as instructions for installing the sidecar in the application deployment."}); docs.push({path: [ "kubernetes", "index.md", ], url: "/docs/setup/kubernetes/", title: "Kubernetes", order: 10, overview: "Instructions for installing the Istio control plane on Kubernetes and adding VMs into the mesh."}); docs.push({path: [ "kubernetes", "mesh-expansion.md", ], url: "/docs/setup/kubernetes/mesh-expansion.html", title: "Istio Mesh Expansion", order: 60, overview: "Instructions for integrating VMs and bare metal hosts into an Istio mesh deployed on Kubernetes."}); docs.push({path: [ "kubernetes", "quick-start-gke-dm.md", ], url: "/docs/setup/kubernetes/quick-start-gke-dm.html", title: "Quick Start with Google Kubernetes Engine", order: 11, overview: "Quick Start instructions to setup the Istio service using Google Kubernetes Engine (GKE)"}); docs.push({path: [ "kubernetes", "quick-start.md", ], url: "/docs/setup/kubernetes/quick-start.html", title: "Quick Start", order: 10, overview: "Quick Start instructions to setup the Istio service mesh in a Kubernetes cluster."}); docs.push({path: [ "kubernetes", "sidecar-injection.md", ], url: "/docs/setup/kubernetes/sidecar-injection.html", title: "Installing Istio Sidecar", order: 50, overview: "Instructions for installing the Istio sidecar in application pods automatically using the Istio initializer or manually using istioctl CLI."}); docs.push({path: [ "mesos", "index.md", ], url: "/docs/setup/mesos/", title: "Mesos", order: 50, overview: "Instructions for installing the Istio control plane in Apache Mesos."}); docs.push({path: [ "mesos", "install.md", ], url: "/docs/setup/mesos/install.html", title: "Installation", order: 10, overview: "Instructions for installing the Istio control plane in Apache Mesos."}); genSideBarTree(docs) </script></ul></div><div id="tab-container" class="col-xs-1 tab-neg-margin pull-left"> <a id="sidebar-tab" class="glyphicon glyphicon-chevron-left" href="javascript:void 0;"> </a></div><div id="content-container" class="thin-left-border col-sm-9 markdown"><div id="toc" class="toc"></div><div id="doc-content"><h1>Installation</h1><p>Using Istio in a non-kubernetes environment involves a few key tasks:</p><ol><li>Setting up the Istio control plane with the Istio API server</li><li>Adding the Istio sidecar to every instance of a service</li><li>Ensuring requests are routed through the sidecars</li></ol><h2 id="setting-up-the-control-plane">Setting up the Control Plane</h2><p>Istio control plane consists of four main services: Pilot, Mixer, CA, and the API server.</p><h3 id="api-server">API Server</h3><p>Istios API server (based on Kubernetes API server) provides key functions such as configuration management and Role-Based Access Control. The API server requires an <a href="https://kubernetes.io/docs/getting-started-guides/scratch/#etcd">etcd cluster</a> as a persistent store. Detailed instructions for setting up the API server can be found <a href="https://kubernetes.io/docs/getting-started-guides/scratch/#apiserver-controller-manager-and-scheduler">here</a>. Documentation on set of startup options for the Kubernetes API server can be found <a href="https://kubernetes.io/docs/admin/kube-apiserver/">here</a></p><h4 id="local-install">Local Install</h4><p>For <em>proof of concept</em> purposes, it is possible to install a simple single container API server using the following Docker Compose file:</p><pre><code class="language-yaml">version: '2'
services:
etcd:
image: quay.io/coreos/etcd:latest
networks:
default:
aliases:
- etcd
ports:
- "4001:4001"
- "2380:2380"
- "2379:2379"
environment:
- SERVICE_IGNORE=1
command: [
"/usr/local/bin/etcd",
"-advertise-client-urls=http://0.0.0.0:2379",
"-listen-client-urls=http://0.0.0.0:2379"
]
istio-apiserver:
image: gcr.io/google_containers/kube-apiserver-amd64:v1.7.3
networks:
default:
aliases:
- apiserver
ports:
- "8080:8080"
privileged: true
environment:
- SERVICE_IGNORE=1
command: [
"kube-apiserver", "--etcd-servers", "http://etcd:2379",
"--service-cluster-ip-range", "10.99.0.0/16",
"--insecure-port", "8080",
"-v", "2",
"--insecure-bind-address", "0.0.0.0"
]
</code></pre><h3 id="other-istio-components">Other Istio Components</h3><p>Debian packages for Istio Pilot, Mixer, and CA are available through the Istio release. Alternatively, these components can be run as Docker containers (docker.io/istio/pilot, docker.io/istio/mixer, docker.io/istio/istio-ca). Note that these components are stateless and can be scaled horizontally. Each of these components depends on the Istio API server, which in turn depends on the etcd cluster for persistence.</p><h2 id="adding-sidecars-to-service-instances">Adding Sidecars to Service Instances</h2><p>Each instance of a service in an application must be accompanied by the Istio sidecar. Depending on the unit of your installation (Docker containers, VM, bare metal nodes), the Istio sidecar needs to be installed into these components. For example, if your infrastructure uses VMs, the Istio sidecar process must be run on each VM that needs to be part of the service mesh.</p><h2 id="routing-traffic-through-istio-sidecar">Routing traffic through Istio Sidecar</h2><p>Part of the sidecar installation should involve setting up appropriate IP Table rules to transparently route applications network traffic through the Istio sidecars. The IP table script to setup such forwarding can be found <a href="https://github.com/istio/istio/blob/master/pilot/docker/prepare_proxy.sh">here</a>.</p><blockquote><p>Note: This script must be executed before starting the application or the sidecar process.</p></blockquote></div></div></div></div></div></div><script src="/v0.4/js/sidebar.min.js"></script><footer><div class="container"><div class="row"><div class="col-lg-2 col-md-2 col-sm-2"></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li><a class="header" href="/v0.4/docs/welcome">Docs</a></li><li><a href="/v0.4/docs/concepts">Concepts</a></li><li><a href="/v0.4/docs/setup">Setup</a></li><li><a href="/v0.4/docs/tasks">Tasks</a></li><li><a href="/v0.4/docs/guides">Guides</a></li><li><a href="/v0.4/docs/reference">Reference</a></li></ul></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li><a class="header" href="/v0.4/help">Help</a></li><li><a href="/v0.4/faq">FAQ</a></li><li><a href="/v0.4/glossary">Glossary</a></li><li><a href="/v0.4/troubleshooting">Troubleshooting</a></li><li><a href="/v0.4/bugs">Report Bugs</a></li><li><a href="https://github.com/istio/istio.github.io/issues/new?title=Issue with _docs/setup/eureka/install.md">Doc Bugs & Gaps</a></li><li><a href="https://github.com/istio/istio.github.io/edit/master/_docs/setup/eureka/install.md">Edit This Page</a></li></ul></div><div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 center-block"><ul><li> <a class="header" href="/v0.4/community">Community</a></li><li> <a href="https://groups.google.com/forum/#!forum/istio-users" target="_blank" rel="noopener">User</a> | <a href="https://groups.google.com/forum/#!forum/istio-dev" target="_blank" rel="noopener">Dev Mailing Lists</a></li><li><a href="https://twitter.com/IstioMesh" target="_blank" rel="noopener">Twitter</a></li><li><a href="https://stackoverflow.com/questions/tagged/istio" target="_blank" rel="noopener">Stack Overflow</a></li><li><a href="https://github.com/istio/community" target="_blank" rel="noopener">GitHub</a></li><li><a href="https://github.com/istio/community/blob/master/WORKING-GROUPS.md" target="_blank" rel="noopener">Working Groups</a></li></ul></div><div class="col-lg-1 col-md-1 col-sm-1"></div></div><div class="row"><p class="description small text-center"> Istio 0.4, Copyright &copy; 2017 Istio Authors<br> Archived on 20-Dec-2017</p></div></div></footer><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.1/jquery.form.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-visible/1.2.0/jquery.visible.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="/v0.4/js/common.min.js"></script> <script src="/v0.4/js/search.js"></script> <script src="/v0.4/js/prism.min.js"></script></body></html>