{"id":16857010,"url":"https://github.com/robscott/istio-demo","last_synced_at":"2026-02-11T19:36:13.545Z","repository":{"id":140560225,"uuid":"149046682","full_name":"robscott/istio-demo","owner":"robscott","description":"Code that goes along with Kubernetes, Istio, and the Future talk","archived":false,"fork":false,"pushed_at":"2018-09-18T20:24:42.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T12:12:42.327Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://robertjscott.ca/kubernetes-istio-and-the-future","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robscott.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-17T00:03:11.000Z","updated_at":"2018-09-26T02:20:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"b67faf2d-5ee7-4b49-a92f-37ab7dda0e6f","html_url":"https://github.com/robscott/istio-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robscott/istio-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robscott%2Fistio-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robscott%2Fistio-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robscott%2Fistio-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robscott%2Fistio-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robscott","download_url":"https://codeload.github.com/robscott/istio-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robscott%2Fistio-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269895470,"owners_count":24492542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T14:06:22.851Z","updated_at":"2026-02-11T19:36:08.521Z","avatar_url":"https://github.com/robscott.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Istio Demo\n\n## 1. Download Istio\nDownload the latest Istio release (1.0.2 when this was written):\n```\ncurl -L https://git.io/getLatestIstio | sh -\n```\n\ncd into the istio directory that was just downloaded.\n```\ncd istio-1.0.2\n```\n\n## 2. Installing Istio on Kubernetes\nInstall CRDs:\n```\nkubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml\n```\n\nSetup Helm and Tiller:\n```\nkubectl apply -f install/kubernetes/helm/helm-service-account.yaml\nhelm init --service-account tiller\n```\n\nInstall Istio with Helm, enabling mTLS and Tracing:\n```\nhelm install install/kubernetes/helm/istio --name istio --namespace istio-system --set global.mtls.enabled=true --set tracing.enabled=true --set grafana.enabled=true\n```\n\n## 3. Setup BookInfo Sample Apps\nEnable Istio Sidecar Injection:\n```\nkubectl label namespace default istio-injection=enabled\n```\n\nDeploy BookInfo sample apps to Kubernetes:\n```\nkubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml\n```\n\n## 4. Clone this Repository\nThe rest of this demo will be based on code found in this repository. Clone the repository and cd into it to continue:\n```\ngit clone https://github.com/robscott/istio-demo.git\ncd istio-demo\n```\n\n## 5. Setup Initial Routing for BookInfo\nDeploy Destination Rules:\n```\nkubectl apply -f bookinfo/destinationrules.yaml\n```\n\nDeploy Gateway\n```\nkubectl apply -f bookinfo/gateway.yaml\n```\n\nDeploy Virtual Service\n```\nkubectl apply -f bookinfo/virtualservice.yaml\n```\n\n## 6. Access BookInfo Sample Apps\nGet External IP associated with istio ingress LoadBalancer service.\n```\nkubectl get svc -n istio-system istio-ingressgateway\n```\n\nOpen a browser and navigate to `{EXTERNAL_IP}/productpage`.\n\n## 7. Lock Down Versions of Reviews Service\nLock down all traffic to the reviews service to go to version 1:\n```\nkubectl apply -f routing/all-v1.yaml\n```\n\nIn your browser, refresh `{EXTERNAL_IP}/productpage`. Each request should now show reviews without any associated stars/ratings.\n\nMake an exception for Joe to lock him to version 2 of the reviews service when he's logged in:\n```\nkubectl apply -f routing/joe-v2.yaml\n```\n\n## 8. Rate Limiting\nApply initial rate limiting configuration to limit requests to product page to 5 requests every 5 seconds:\n```\nkubectl apply -f ratelimiting/0-memquota.yaml\nkubectl apply -f ratelimiting/1-quota.yaml\nkubectl apply -f ratelimiting/2-quotaspec.yaml\nkubectl apply -f ratelimiting/3-quotaspecbinding.yaml\nkubectl apply -f ratelimiting/4-rule.yaml\n```\n\nAdd an exception that removes rate limiting when anyone is logged in:\n```\nkubectl apply -f ratelimiting/5-rule-joe.yaml\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobscott%2Fistio-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobscott%2Fistio-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobscott%2Fistio-demo/lists"}