Merge branch 'master' into linkify-github-issue

pull/1900/head
devin-donnelly 2016-12-21 15:12:50 -08:00 committed by GitHub
commit ea26037f2e
329 changed files with 3429 additions and 1860 deletions

1
404.md
View File

@ -3,6 +3,7 @@ layout: docwithnav
title: 404 Error! title: 404 Error!
permalink: /404.html permalink: /404.html
no_canonical: true no_canonical: true
sitemap: false
--- ---
<script src="/js/redirects.js"></script> <script src="/js/redirects.js"></script>

20
Gemfile
View File

@ -1,20 +1,4 @@
source "https://rubygems.org" source "https://rubygems.org"
gem "jekyll", "3.2.1" gem "github-pages", group: :jekyll_plugins
gem "jekyll-sass-converter", "1.3.0" gem "jekyll-include-cache", "~> 0.1"
gem "minima", "1.1.0"
gem "kramdown", "1.11.1"
gem "liquid", "3.0.6"
gem "rouge", "1.11.1"
gem "jemoji", "0.7.0"
gem "jekyll-mentions", "1.2.0"
gem "jekyll-redirect-from", "0.11.0"
gem "jekyll-sitemap", "0.10.0"
gem "jekyll-feed", "0.5.1"
gem "jekyll-gist", "1.4.0"
gem "jekyll-paginate", "1.1.0"
gem "jekyll-coffeescript", "1.0.1"
gem "jekyll-seo-tag", "2.0.0"
gem "jekyll-github-metadata", "2.0.2"
gem "listen", "3.0.6"
gem "activesupport", "4.2.7"

View File

@ -7,23 +7,75 @@ GEM
minitest (~> 5.1) minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4) thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.4.0) addressable (2.5.0)
public_suffix (~> 2.0, >= 2.0.2)
coffee-script (2.4.1) coffee-script (2.4.1)
coffee-script-source coffee-script-source
execjs execjs
coffee-script-source (1.10.0) coffee-script-source (1.12.2)
colorator (1.1.0) colorator (1.1.0)
ethon (0.10.1)
ffi (>= 1.3.0)
execjs (2.7.0) execjs (2.7.0)
faraday (0.9.2) faraday (0.10.0)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
ffi (1.9.14) ffi (1.9.14)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
gemoji (2.1.0) gemoji (2.1.0)
github-pages (112)
activesupport (= 4.2.7)
github-pages-health-check (= 1.3.0)
jekyll (= 3.3.1)
jekyll-avatar (= 0.4.2)
jekyll-coffeescript (= 1.0.1)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.8.0)
jekyll-gist (= 1.4.0)
jekyll-github-metadata (= 2.2.0)
jekyll-mentions (= 1.2.0)
jekyll-optional-front-matter (= 0.1.2)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.0.3)
jekyll-redirect-from (= 0.11.0)
jekyll-relative-links (= 0.2.1)
jekyll-sass-converter (= 1.3.0)
jekyll-seo-tag (= 2.1.0)
jekyll-sitemap (= 0.12.0)
jekyll-swiss (= 0.4.0)
jekyll-theme-architect (= 0.0.3)
jekyll-theme-cayman (= 0.0.3)
jekyll-theme-dinky (= 0.0.3)
jekyll-theme-hacker (= 0.0.3)
jekyll-theme-leap-day (= 0.0.3)
jekyll-theme-merlot (= 0.0.3)
jekyll-theme-midnight (= 0.0.3)
jekyll-theme-minimal (= 0.0.3)
jekyll-theme-modernist (= 0.0.3)
jekyll-theme-primer (= 0.1.5)
jekyll-theme-slate (= 0.0.3)
jekyll-theme-tactile (= 0.0.3)
jekyll-theme-time-machine (= 0.0.3)
jekyll-titles-from-headings (= 0.1.3)
jemoji (= 0.7.0)
kramdown (= 1.11.1)
liquid (= 3.0.6)
listen (= 3.0.6)
mercenary (~> 0.3)
minima (= 2.0.0)
rouge (= 1.11.1)
terminal-table (~> 1.4)
github-pages-health-check (1.3.0)
addressable (~> 2.3)
net-dns (~> 0.8)
octokit (~> 4.0)
public_suffix (~> 2.0)
typhoeus (~> 0.7)
html-pipeline (2.4.2) html-pipeline (2.4.2)
activesupport (>= 2) activesupport (>= 2)
nokogiri (>= 1.4) nokogiri (>= 1.4)
i18n (0.7.0) i18n (0.7.0)
jekyll (3.2.1) jekyll (3.3.1)
addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
jekyll-sass-converter (~> 1.0) jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1) jekyll-watch (~> 1.1)
@ -33,26 +85,69 @@ GEM
pathutil (~> 0.9) pathutil (~> 0.9)
rouge (~> 1.7) rouge (~> 1.7)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
jekyll-avatar (0.4.2)
jekyll (~> 3.0)
jekyll-coffeescript (1.0.1) jekyll-coffeescript (1.0.1)
coffee-script (~> 2.2) coffee-script (~> 2.2)
jekyll-feed (0.5.1) jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.8.0)
jekyll (~> 3.3)
jekyll-gist (1.4.0) jekyll-gist (1.4.0)
octokit (~> 4.2) octokit (~> 4.2)
jekyll-github-metadata (2.0.2) jekyll-github-metadata (2.2.0)
jekyll (~> 3.1) jekyll (~> 3.1)
octokit (~> 4.0) octokit (~> 4.0, != 4.4.0)
jekyll-include-cache (0.1.0)
jekyll (~> 3.3)
jekyll-mentions (1.2.0) jekyll-mentions (1.2.0)
activesupport (~> 4.0) activesupport (~> 4.0)
html-pipeline (~> 2.3) html-pipeline (~> 2.3)
jekyll (~> 3.0) jekyll (~> 3.0)
jekyll-optional-front-matter (0.1.2)
jekyll (~> 3.0)
jekyll-paginate (1.1.0) jekyll-paginate (1.1.0)
jekyll-readme-index (0.0.3)
jekyll (~> 3.0)
jekyll-redirect-from (0.11.0) jekyll-redirect-from (0.11.0)
jekyll (>= 2.0) jekyll (>= 2.0)
jekyll-relative-links (0.2.1)
jekyll (~> 3.3)
jekyll-sass-converter (1.3.0) jekyll-sass-converter (1.3.0)
sass (~> 3.2) sass (~> 3.2)
jekyll-seo-tag (2.0.0) jekyll-seo-tag (2.1.0)
jekyll (~> 3.1) jekyll (~> 3.3)
jekyll-sitemap (0.10.0) jekyll-sitemap (0.12.0)
jekyll (~> 3.3)
jekyll-swiss (0.4.0)
jekyll-theme-architect (0.0.3)
jekyll (~> 3.3)
jekyll-theme-cayman (0.0.3)
jekyll (~> 3.3)
jekyll-theme-dinky (0.0.3)
jekyll (~> 3.3)
jekyll-theme-hacker (0.0.3)
jekyll (~> 3.3)
jekyll-theme-leap-day (0.0.3)
jekyll (~> 3.3)
jekyll-theme-merlot (0.0.3)
jekyll (~> 3.3)
jekyll-theme-midnight (0.0.3)
jekyll (~> 3.3)
jekyll-theme-minimal (0.0.3)
jekyll (~> 3.3)
jekyll-theme-modernist (0.0.3)
jekyll (~> 3.3)
jekyll-theme-primer (0.1.5)
jekyll (~> 3.3)
jekyll-theme-slate (0.0.3)
jekyll (~> 3.3)
jekyll-theme-tactile (0.0.3)
jekyll (~> 3.3)
jekyll-theme-time-machine (0.0.3)
jekyll (~> 3.3)
jekyll-titles-from-headings (0.1.3)
jekyll (~> 3.3)
jekyll-watch (1.5.0) jekyll-watch (1.5.0)
listen (~> 3.0, < 3.1) listen (~> 3.0, < 3.1)
jemoji (0.7.0) jemoji (0.7.0)
@ -68,52 +163,41 @@ GEM
rb-inotify (>= 0.9.7) rb-inotify (>= 0.9.7)
mercenary (0.3.6) mercenary (0.3.6)
mini_portile2 (2.1.0) mini_portile2 (2.1.0)
minima (1.1.0) minima (2.0.0)
minitest (5.9.0) minitest (5.10.1)
multipart-post (2.0.0) multipart-post (2.0.0)
nokogiri (1.6.8) net-dns (0.8.0)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0) mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7) octokit (4.6.2)
octokit (4.3.0) sawyer (~> 0.8.0, >= 0.5.3)
sawyer (~> 0.7.0, >= 0.5.3)
pathutil (0.14.0) pathutil (0.14.0)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
pkg-config (1.1.7) public_suffix (2.0.4)
rb-fsevent (0.9.7) rb-fsevent (0.9.8)
rb-inotify (0.9.7) rb-inotify (0.9.7)
ffi (>= 0.5.0) ffi (>= 0.5.0)
rouge (1.11.1) rouge (1.11.1)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sass (3.4.22) sass (3.4.23)
sawyer (0.7.0) sawyer (0.8.1)
addressable (>= 2.3.5, < 2.5) addressable (>= 2.3.5, < 2.6)
faraday (~> 0.8, < 0.10) faraday (~> 0.8, < 1.0)
terminal-table (1.7.3)
unicode-display_width (~> 1.1.1)
thread_safe (0.3.5) thread_safe (0.3.5)
typhoeus (0.8.0)
ethon (>= 0.8.0)
tzinfo (1.2.2) tzinfo (1.2.2)
thread_safe (~> 0.1) thread_safe (~> 0.1)
unicode-display_width (1.1.2)
PLATFORMS PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
activesupport (= 4.2.7) github-pages
jekyll (= 3.2.1) jekyll-include-cache (~> 0.1)
jekyll-coffeescript (= 1.0.1)
jekyll-feed (= 0.5.1)
jekyll-gist (= 1.4.0)
jekyll-github-metadata (= 2.0.2)
jekyll-mentions (= 1.2.0)
jekyll-paginate (= 1.1.0)
jekyll-redirect-from (= 0.11.0)
jekyll-sass-converter (= 1.3.0)
jekyll-seo-tag (= 2.0.0)
jekyll-sitemap (= 0.10.0)
jemoji (= 0.7.0)
kramdown (= 1.11.1)
liquid (= 3.0.6)
listen (= 3.0.6)
minima (= 1.1.0)
rouge (= 1.11.1)
BUNDLED WITH BUNDLED WITH
1.11.2 1.13.6

View File

@ -1,11 +1,12 @@
name: Kubernetes name: Kubernetes
title: Kubernetes
description: Production-Grade Container Orchestration
markdown: kramdown markdown: kramdown
kramdown: kramdown:
input: GFM input: GFM
html_to_native: true html_to_native: true
hard_wrap: false hard_wrap: false
syntax_highlighter: rouge syntax_highlighter: rouge
baseurl: /
incremental: true incremental: true
safe: false safe: false
@ -16,7 +17,7 @@ defaults:
scope: scope:
path: "" path: ""
values: values:
version: "v1.3" version: "v1.5.1"
githubbranch: "master" githubbranch: "master"
docsbranch: "master" docsbranch: "master"
- -
@ -30,3 +31,24 @@ permalink: pretty
gems: gems:
- jekyll-redirect-from - jekyll-redirect-from
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
- jekyll-include-cache
# SEO
logo: /images/favicon.png
twitter:
username: kubernetesio
# Tables of contents, stored in the _data folder, that control the sidebar nav
tocs:
- docs-home
- guides
- tutorials
- tasks
- concepts
- reference
- tools
- samples
- support

View File

@ -1,13 +1,10 @@
bigheader: "Concepts" bigheader: "Concepts"
abstract: "Detailed explanations of Kubernetes system concepts and abstractions." abstract: "Detailed explanations of Kubernetes system concepts and abstractions."
toc: toc:
- title: Concepts - docs/concepts/index.md
path: /docs/concepts/
- title: Object Metadata - title: Object Metadata
section: section:
- title: Annotations - docs/concepts/object-metadata/annotations.md
path: /docs/concepts/object-metadata/annotations/
- title: Controllers - title: Controllers
section: section:
- title: StatefulSets - docs/concepts/abstractions/controllers/statefulsets.md
path: /docs/concepts/abstractions/controllers/statefulsets/

View File

@ -1,5 +1,4 @@
bigheader: "Kubernetes Documentation" bigheader: "Kubernetes Documentation"
abstract: "Documentation for using and learning about Kubernetes." abstract: "Documentation for using and learning about Kubernetes."
toc: toc:
- title: Kubernetes Documentation - docs/index.md
path: /docs/

View File

@ -1,311 +1,188 @@
bigheader: "Guides" bigheader: "Guides"
abstract: "How to get started, and accomplish tasks, using Kubernetes." abstract: "How to get started, and accomplish tasks, using Kubernetes."
toc: toc:
- title: Guides - docs/user-guide/index.md
path: /docs/user-guide/
- title: Getting Started - title: Getting Started
section: section:
- title: What is Kubernetes? - docs/whatisk8s.md
path: /docs/whatisk8s/ - docs/getting-started-guides/kubeadm.md
- title: Installing Kubernetes on Linux with kubeadm - docs/getting-started-guides/kops.md
path: /docs/getting-started-guides/kubeadm/ - docs/hellonode.md
- title: Installing Kubernetes on AWS with kops - docs/getting-started-guides/kubectl.md
path: /docs/getting-started-guides/kops/ - docs/getting-started-guides/binary_release.md
- title: Hello World on Google Container Engine
path: /docs/hellonode/
- title: Installing kubectl
path: /docs/getting-started-guides/kubectl/
- title: Downloading or Building Kubernetes
path: /docs/getting-started-guides/binary_release/
- title: Online Training Course - title: Online Training Course
path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
- title: Accessing the Cluster - title: Accessing the Cluster
section: section:
- title: Installing and Setting up kubectl - docs/user-guide/prereqs.md
path: /docs/user-guide/prereqs/ - docs/user-guide/accessing-the-cluster.md
- title: Accessing Clusters - docs/user-guide/sharing-clusters.md
path: /docs/user-guide/accessing-the-cluster/ - docs/user-guide/kubeconfig-file.md
- title: Sharing Cluster Access with kubeconfig
path: /docs/user-guide/sharing-clusters/
- title: Authenticating Across Clusters with kubeconfig
path: /docs/user-guide/kubeconfig-file/
- title: User Guide - docs/user-guide/index.md
path: /docs/user-guide/
- title: Web UI (Dashboard) - docs/user-guide/ui.md
path: /docs/user-guide/ui/
- title: Workload Deployment and Management - title: Workload Deployment and Management
section: section:
- title: Launching, Exposing, and Killing Applications - docs/user-guide/quick-start.md
path: /docs/user-guide/quick-start/ - docs/user-guide/deploying-applications.md
- title: Deploying Applications - docs/user-guide/managing-deployments.md
path: /docs/user-guide/deploying-applications/ - docs/user-guide/replication-controller/operations.md
- title: Managing Resources - docs/user-guide/resizing-a-replication-controller.md
path: /docs/user-guide/managing-deployments/ - docs/user-guide/rolling-updates.md
- title: Replication Controller Operations - docs/user-guide/update-demo/index.md
path: /docs/user-guide/replication-controller/operations/ - docs/user-guide/secrets/walkthrough.md
- title: Resizing a Replication Controller - docs/user-guide/configmap/index.md
path: /docs/user-guide/resizing-a-replication-controller/ - docs/user-guide/horizontal-pod-autoscaling/walkthrough.md
- title: Rolling Updates - docs/user-guide/config-best-practices.md
path: /docs/user-guide/rolling-updates/ - docs/user-guide/working-with-resources.md
- title: Rolling Update Demo - docs/user-guide/garbage-collection.md
path: /docs/user-guide/update-demo/
- title: Secrets Walkthrough
path: /docs/user-guide/secrets/walkthrough/
- title: Using ConfigMap
path: /docs/user-guide/configmap/
- title: Horizontal Pod Autoscaling
path: /docs/user-guide/horizontal-pod-autoscaling/walkthrough/
- title: Best Practices for Configuration
path: /docs/user-guide/config-best-practices/
- title: Using kubectl to Manage Resources
path: /docs/user-guide/working-with-resources/
- title: Garbage Collection (Beta)
path: /docs/user-guide/garbage-collection/
- title: Using NetworkPolicy - title: Using NetworkPolicy
section: section:
- title: Example Walkthrough - docs/getting-started-guides/network-policy/walkthrough.md
path: /docs/getting-started-guides/network-policy/walkthrough/ - docs/getting-started-guides/network-policy/calico.md
- title: Using Calico for NetworkPolicy - docs/getting-started-guides/network-policy/romana.md
path: /docs/getting-started-guides/network-policy/calico/
- title: Using Romana for NetworkPolicy
path: /docs/getting-started-guides/network-policy/romana/
- title: Batch Jobs - title: Batch Jobs
section: section:
- title: Jobs - docs/user-guide/jobs.md
path: /docs/user-guide/jobs/ - docs/user-guide/jobs/expansions/index.md
- title: Parallel Processing using Expansions - docs/user-guide/jobs/work-queue-1/index.md
path: /docs/user-guide/jobs/expansions/ - docs/user-guide/jobs/work-queue-2/index.md
- title: Coarse Parallel Processing using a Work Queue - docs/user-guide/cron-jobs.md
path: /docs/user-guide/jobs/work-queue-1/
- title: Fine Parallel Processing using a Work Queue
path: /docs/user-guide/jobs/work-queue-2/
- title: Cron Jobs
path: /docs/user-guide/cron-jobs/
- title: Service Discovery and Load Balancing - title: Service Discovery and Load Balancing
section: section:
- title: Connecting Applications with Services - docs/user-guide/connecting-applications.md
path: /docs/user-guide/connecting-applications/ - docs/user-guide/services/operations.md
- title: Service Operations - docs/user-guide/load-balancer.md
path: /docs/user-guide/services/operations/ - docs/user-guide/services-firewalls.md
- title: Creating an External Load Balancer - docs/user-guide/federation/federated-services.md
path: /docs/user-guide/load-balancer/
- title: Configuring Your Cloud Provider's Firewalls
path: /docs/user-guide/services-firewalls/
- title: Cross-cluster Service Discovery using Federated Services
path: /docs/user-guide/federation/federated-services/
- title: Containers and Pods - title: Containers and Pods
section: section:
- title: Running Your First Containers - docs/user-guide/simple-nginx.md
path: /docs/user-guide/simple-nginx/ - docs/user-guide/pods/single-container.md
- title: Creating Single-Container Pods - docs/user-guide/pods/multi-container.md
path: /docs/user-guide/pods/single-container/ - docs/user-guide/configuring-containers.md
- title: Creating Multi-Container Pods - docs/user-guide/production-pods.md
path: /docs/user-guide/pods/multi-container/ - docs/user-guide/containers.md
- title: Configuring Containers - docs/user-guide/environment-guide/index.md
path: /docs/user-guide/configuring-containers/ - docs/user-guide/compute-resources.md
- title: Working with Containers in Production - docs/user-guide/pod-states.md
path: /docs/user-guide/production-pods/ - docs/user-guide/liveness/index.md
- title: Commands and Capabilities - docs/user-guide/container-environment.md
path: /docs/user-guide/containers/ - docs/user-guide/node-selection/index.md
- title: Using Environment Variables - docs/user-guide/downward-api/index.md
path: /docs/user-guide/environment-guide/ - docs/user-guide/downward-api/volume/index.md
- title: Managing Compute Resources - docs/user-guide/persistent-volumes/walkthrough.md
path: /docs/user-guide/compute-resources/ - docs/user-guide/petset/bootstrapping/index.md
- title: The Lifecycle of a Pod
path: /docs/user-guide/pod-states/
- title: Checking Pod Health
path: /docs/user-guide/liveness/
- title: Container Lifecycle Hooks
path: /docs/user-guide/container-environment/
- title: Assigning Pods to Nodes
path: /docs/user-guide/node-selection/
- title: Using the Downward API to Convey Pod Properties
path: /docs/user-guide/downward-api/
- title: Downward API Volumes
path: /docs/user-guide/downward-api/volume
- title: Persistent Volumes Walkthrough
path: /docs/user-guide/persistent-volumes/walkthrough/
- title: Bootstrapping Pet Sets
path: /docs/user-guide/petset/bootstrapping/
- title: Monitoring, Logging, and Debugging Containers - title: Monitoring, Logging, and Debugging Containers
section: section:
- title: Resource Usage Monitoring - docs/user-guide/monitoring.md
path: /docs/user-guide/monitoring/ - docs/getting-started-guides/logging.md
- title: Logging - docs/getting-started-guides/logging-elasticsearch.md
path: /docs/getting-started-guides/logging/ - docs/user-guide/getting-into-containers.md
- title: Logging with Elasticsearch and Kibana - docs/user-guide/connecting-to-applications-proxy.md
path: /docs/getting-started-guides/logging-elasticsearch/ - docs/user-guide/connecting-to-applications-port-forward.md
- title: Running Commands in a Container with kubectl exec
path: /docs/user-guide/getting-into-containers/
- title: Connect with Proxies
path: /docs/user-guide/connecting-to-applications-proxy/
- title: Connect with Port Forwarding
path: /docs/user-guide/connecting-to-applications-port-forward/
- title: Using Explorer to Examine the Runtime Environment - title: Using Explorer to Examine the Runtime Environment
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/explorer path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/explorer
- title: Creating a Cluster - title: Creating a Cluster
section: section:
- title: Picking the Right Solution - docs/getting-started-guides/index.md
path: /docs/getting-started-guides/
- title: Running Kubernetes on Your Local Machine - title: Running Kubernetes on Your Local Machine
section: section:
- title: Running Kubernetes Locally via Minikube - docs/getting-started-guides/minikube.md
path: /docs/getting-started-guides/minikube/ - docs/getting-started-guides/alternatives.md
- title: Deprecated Alternatives
path: /docs/getting-started-guides/alternatives/
- title: Running Kubernetes on Turn-key Cloud Solutions - title: Running Kubernetes on Turn-key Cloud Solutions
section: section:
- title: Running Kubernetes on Google Container Engine - title: Running Kubernetes on Google Container Engine
path: https://cloud.google.com/container-engine/docs/before-you-begin/ path: https://cloud.google.com/container-engine/docs/before-you-begin/
- title: Running Kubernetes on Google Compute Engine - docs/getting-started-guides/gce.md
path: /docs/getting-started-guides/gce/ - docs/getting-started-guides/aws.md
- title: Running Kubernetes on AWS EC2 - title: Running Kubernetes on Azure Container Service
path: /docs/getting-started-guides/aws/ path: https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough
- title: Running Kubernetes on Azure - docs/getting-started-guides/azure.md
path: /docs/getting-started-guides/azure/ - docs/getting-started-guides/clc.md
- title: Running Kubernetes on Azure (Weave-based)
path: /docs/getting-started-guides/coreos/azure/
- title: Running Kubernetes on CenturyLink Cloud
path: /docs/getting-started-guides/clc/
- title: Running Kubernetes on IBM SoftLayer - title: Running Kubernetes on IBM SoftLayer
path: https://github.com/patrocinio/kubernetes-softlayer path: https://github.com/patrocinio/kubernetes-softlayer
- title: Running Kubernetes on Custom Solutions - title: Running Kubernetes on Custom Solutions
section: section:
- title: Creating a Custom Cluster from Scratch - docs/getting-started-guides/scratch.md
path: /docs/getting-started-guides/scratch/
- title: Custom Cloud Solutions - title: Custom Cloud Solutions
section: section:
- title: CoreOS on AWS or GCE - docs/getting-started-guides/coreos/index.md
path: /docs/getting-started-guides/coreos/ - /docs/getting-started-guides/juju/
- title: Ubuntu on AWS or Joyent - docs/getting-started-guides/rackspace.md
path: /docs/getting-started-guides/juju/
- title: CoreOS on Rackspace
path: /docs/getting-started-guides/rackspace/
- title: On-Premise VMs - title: On-Premise VMs
section: section:
- title: CoreOS on Vagrant - docs/getting-started-guides/coreos/index.md
path: /docs/getting-started-guides/coreos/ - docs/getting-started-guides/cloudstack.md
- title: Cloudstack - docs/getting-started-guides/vsphere.md
path: /docs/getting-started-guides/cloudstack/ - docs/getting-started-guides/photon-controller.md
- title: VMware vSphere - /docs/getting-started-guides/juju/
path: /docs/getting-started-guides/vsphere/ - docs/getting-started-guides/dcos.md
- title: VMware Photon Controller - docs/getting-started-guides/libvirt-coreos.md
path: /docs/getting-started-guides/photon-controller/ - docs/getting-started-guides/ovirt.md
- title: Juju - docs/getting-started-guides/openstack-heat.md
path: /docs/getting-started-guides/juju/
- title: DCOS
path: /docs/getting-started-guides/dcos/
- title: CoreOS on libvirt
path: /docs/getting-started-guides/libvirt-coreos/
- title: oVirt
path: /docs/getting-started-guides/ovirt/
- title: OpenStack Heat
path: /docs/getting-started-guides/openstack-heat/
- title: rkt - title: rkt
section: section:
- title: Running Kubernetes with rkt - docs/getting-started-guides/rkt/index.md
path: /docs/getting-started-guides/rkt/ - docs/getting-started-guides/rkt/notes.md
- title: Known Issues when Using rkt - docs/getting-started-guides/mesos/index.md
path: /docs/getting-started-guides/rkt/notes/ - docs/getting-started-guides/mesos-docker.md
- title: Kubernetes on Mesos
path: /docs/getting-started-guides/mesos/
- title: Kubernetes on Mesos on Docker
path: /docs/getting-started-guides/mesos-docker/
- title: Bare Metal - title: Bare Metal
section: section:
- title: Offline - docs/getting-started-guides/coreos/bare_metal_offline.md
path: /docs/getting-started-guides/coreos/bare_metal_offline/ - docs/getting-started-guides/fedora/fedora_ansible_config.md
- title: Fedora via Ansible - docs/getting-started-guides/fedora/fedora_manual_config.md
path: /docs/getting-started-guides/fedora/fedora_ansible_config/ - docs/getting-started-guides/fedora/flannel_multi_node_cluster.md
- title: Fedora (Single Node) - docs/getting-started-guides/centos/centos_manual_config.md
path: /docs/getting-started-guides/fedora/fedora_manual_config/ - docs/getting-started-guides/coreos/index.md
- title: Fedora (Multi Node) - /docs/getting-started-guides/ubuntu/
path: /docs/getting-started-guides/fedora/flannel_multi_node_cluster/ - docs/getting-started-guides/windows/index.md
- title: CentOS - docs/admin/node-conformance.md
path: /docs/getting-started-guides/centos/centos_manual_config/ - docs/getting-started-guides/docker-multinode.md
- title: CoreOS - docs/admin/cluster-large.md
path: /docs/getting-started-guides/coreos - docs/admin/multiple-zones.md
- title: Ubuntu - docs/admin/high-availability/index.md
path: /docs/getting-started-guides/ubuntu/
- title: Windows Server Containers
path: /docs/getting-started-guides/windows/
- title: Validate Node Setup
path: /docs/admin/node-conformance
- title: Portable Multi-Node Cluster
path: /docs/getting-started-guides/docker-multinode/
- title: Building Large Clusters
path: /docs/admin/cluster-large/
- title: Running in Multiple Zones
path: /docs/admin/multiple-zones/
- title: Building High-Availability Clusters
path: /docs/admin/high-availability/
- title: Administering Clusters - title: Administering Clusters
section: section:
- title: Admin Guide - docs/admin/index.md
path: /docs/admin/ - docs/admin/cluster-management.md
- title: Cluster Management Guide - docs/admin/kubeadm.md
path: /docs/admin/cluster-management/ - docs/admin/addons.md
- title: kubeadm reference - docs/admin/namespaces/index.md
path: /docs/admin/kubeadm/ - docs/admin/namespaces/walkthrough.md
- title: Installing Addons - docs/admin/limitrange/index.md
path: /docs/admin/addons/ - docs/admin/resourcequota/index.md
- title: Sharing a Cluster with Namespaces - docs/admin/resourcequota/walkthrough.md
path: /docs/admin/namespaces/ - docs/admin/cluster-components.md
- title: Namespaces Walkthrough - docs/admin/etcd.md
path: /docs/admin/namespaces/walkthrough/ - docs/admin/multi-cluster.md
- title: Setting Pod CPU and Memory Limits
path: /docs/admin/limitrange/
- title: Understanding Resource Quotas
path: /docs/admin/resourcequota/
- title: Applying Resource Quotas and Limits
path: /docs/admin/resourcequota/walkthrough/
- title: Kubernetes Components
path: /docs/admin/cluster-components/
- title: Configuring Kubernetes Use of etcd
path: /docs/admin/etcd/
- title: Using Multiple Clusters
path: /docs/admin/multi-cluster/
- title: Changing Cluster Size - title: Changing Cluster Size
path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ#how-do-i-change-the-size-of-my-cluster/ path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ#how-do-i-change-the-size-of-my-cluster/
- title: Configuring Multiple Schedulers - docs/admin/multiple-schedulers.md
path: /docs/admin/multiple-schedulers/ - docs/admin/networking.md
- title: Networking in Kubernetes - docs/admin/dns.md
path: /docs/admin/networking/
- title: Using DNS Pods and Services
path: /docs/admin/dns/
- title: Setting Up and Configuring DNS - title: Setting Up and Configuring DNS
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/cluster-dns path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/cluster-dns
- title: Master <-> Node Communication - docs/admin/master-node-communication.md
path: /docs/admin/master-node-communication/ - docs/admin/network-plugins.md
- title: Network Plugins - docs/admin/static-pods.md
path: /docs/admin/network-plugins/ - docs/admin/garbage-collection.md
- title: Static Pods - docs/admin/out-of-resource.md
path: /docs/admin/static-pods/ - docs/admin/salt.md
- title: Configuring kubelet Garbage Collection - docs/admin/node-problem.md
path: /docs/admin/garbage-collection/ - docs/admin/apparmor/index.md
- title: Configuring Out Of Resource Handling
path: /docs/admin/out-of-resource/
- title: Configuring Kubernetes with Salt
path: /docs/admin/salt/
- title: Monitoring Node Health
path: /docs/admin/node-problem/
- title: AppArmor
path: /docs/admin/apparmor/
- title: Administering Federation - title: Administering Federation
section: section:
- title: Using `kubefed` - /docs/admin/federation/kubfed/
path: /docs/admin/federation/kubfed/ - docs/admin/federation/index.md
- title: Using `federation-up` and `deploy.sh`
path: /docs/admin/federation/

View File

@ -1,247 +1,148 @@
bigheader: "Reference Documentation" bigheader: "Reference Documentation"
abstract: "Design docs, concept definitions, and references for APIs and CLIs." abstract: "Design docs, concept definitions, and references for APIs and CLIs."
toc: toc:
- title: Reference Documentation - docs/reference.md
path: /docs/reference/
- title: Kubernetes API - title: Kubernetes API
section: section:
- title: Kubernetes API Overview - docs/api.md
path: /docs/api/
- title: Accessing the API - title: Accessing the API
section: section:
- title: Overview - docs/admin/accessing-the-api.md
path: /docs/admin/accessing-the-api/ - docs/admin/authentication.md
- title: Authenticating - docs/admin/authorization.md
path: /docs/admin/authentication/ - docs/admin/admission-controllers.md
- title: Using Authorization Plugins - docs/admin/service-accounts-admin.md
path: /docs/admin/authorization/ - docs/api-reference/v1/operations.html
- title: Using Admission Controllers - docs/api-reference/v1/definitions.html
path: /docs/admin/admission-controllers/ - kubernetes/third_party/swagger-ui/index.md
- title: Managing Service Accounts
path: /docs/admin/service-accounts-admin/
- title: Kubernetes API Operations
path: /docs/api-reference/v1/operations/
- title: Kubernetes API Definitions
path: /docs/api-reference/v1/definitions/
- title: Kubernetes API Swagger Spec
path: /kubernetes/third_party/swagger-ui/
- title: Autoscaling API - title: Autoscaling API
section: section:
- title: Autoscaling API Operations - docs/api-reference/autoscaling/v1/operations.html
path: /docs/api-reference/autoscaling/v1/operations/ - docs/api-reference/autoscaling/v1/definitions.html
- title: Autoscaling API Definitions
path: /docs/api-reference/autoscaling/v1/definitions/
- title: Batch API - title: Batch API
section: section:
- title: Batch API Operations - docs/api-reference/batch/v1/operations.html
path: /docs/api-reference/batch/v1/operations/ - docs/api-reference/batch/v1/definitions.html
- title: Batch API Definitions
path: /docs/api-reference/batch/v1/definitions/ - title: Apps API
section:
- title: Apps API Operations
path: /docs/api-reference/apps/v1beta1/operations/
- title: Apps API Definitions
path: /docs/api-reference/apps/v1beta1/definitions/
- title: Extensions API - title: Extensions API
section: section:
- title: Extensions API Operations - docs/api-reference/extensions/v1beta1/operations.html
path: /docs/api-reference/extensions/v1beta1/operations/ - docs/api-reference/extensions/v1beta1/definitions.html
- title: Extensions API Definitions
path: /docs/api-reference/extensions/v1beta1/definitions/
- title: kubectl CLI - title: kubectl CLI
section: section:
- title: kubectl Overview - docs/user-guide/kubectl-overview.md
path: /docs/user-guide/kubectl-overview/ - docs/user-guide/docker-cli-to-kubectl.md
- title: kubectl for Docker Users - docs/user-guide/kubectl-conventions.md
path: /docs/user-guide/docker-cli-to-kubectl/ - docs/user-guide/jsonpath.md
- title: kubectl Usage Conventions - docs/user-guide/kubectl-cheatsheet.md
path: /docs/user-guide/kubectl-conventions/
- title: JSONpath Support
path: /docs/user-guide/jsonpath/
- title: kubectl Cheat Sheet
path: /docs/user-guide/kubectl-cheatsheet/
- title: kubectl Commands - title: kubectl Commands
section: section:
- title: kubectl - docs/user-guide/kubectl/index.md
path: /docs/user-guide/kubectl/ - docs/user-guide/kubectl/kubectl_annotate.md
- title: kubectl annotate - docs/user-guide/kubectl/kubectl_api-versions.md
path: /docs/user-guide/kubectl/kubectl_annotate/ - docs/user-guide/kubectl/kubectl_apply.md
- title: kubectl api-versions - docs/user-guide/kubectl/kubectl_attach.md
path: /docs/user-guide/kubectl/kubectl_api-versions/ - docs/user-guide/kubectl/kubectl_autoscale.md
- title: kubectl apply - docs/user-guide/kubectl/kubectl_cluster-info.md
path: /docs/user-guide/kubectl/kubectl_apply/ - docs/user-guide/kubectl/kubectl_config.md
- title: kubectl attach - docs/user-guide/kubectl/kubectl_config_current-context.md
path: /docs/user-guide/kubectl/kubectl_attach/ - docs/user-guide/kubectl/kubectl_config_set-cluster.md
- title: kubectl autoscale - docs/user-guide/kubectl/kubectl_config_set-context.md
path: /docs/user-guide/kubectl/kubectl_autoscale/ - docs/user-guide/kubectl/kubectl_config_set-credentials.md
- title: kubectl cluster-info - docs/user-guide/kubectl/kubectl_config_set.md
path: /docs/user-guide/kubectl/kubectl_cluster-info/ - docs/user-guide/kubectl/kubectl_config_unset.md
- title: kubectl config - docs/user-guide/kubectl/kubectl_config_use-context.md
path: /docs/user-guide/kubectl/kubectl_config/ - docs/user-guide/kubectl/kubectl_config_view.md
- title: kubectl config current-context - docs/user-guide/kubectl/kubectl_convert.md
path: /docs/user-guide/kubectl/kubectl_config_current-context/ - docs/user-guide/kubectl/kubectl_cordon.md
- title: kubectl config set-cluster - docs/user-guide/kubectl/kubectl_create.md
path: /docs/user-guide/kubectl/kubectl_config_set-cluster/ - docs/user-guide/kubectl/kubectl_create_configmap.md
- title: kubectl config set-context - docs/user-guide/kubectl/kubectl_create_namespace.md
path: /docs/user-guide/kubectl/kubectl_config_set-context/ - docs/user-guide/kubectl/kubectl_create_secret_docker-registry.md
- title: kubectl config set-credentials - docs/user-guide/kubectl/kubectl_create_secret.md
path: /docs/user-guide/kubectl/kubectl_config_set-credentials/ - docs/user-guide/kubectl/kubectl_create_secret_generic.md
- title: kubectl config set - docs/user-guide/kubectl/kubectl_create_serviceaccount.md
path: /docs/user-guide/kubectl/kubectl_config_set/ - docs/user-guide/kubectl/kubectl_delete.md
- title: kubectl config unset - docs/user-guide/kubectl/kubectl_describe.md
path: /docs/user-guide/kubectl/kubectl_config_unset/ - docs/user-guide/kubectl/kubectl_drain.md
- title: kubectl config use-context - docs/user-guide/kubectl/kubectl_edit.md
path: /docs/user-guide/kubectl/kubectl_config_use-context/ - docs/user-guide/kubectl/kubectl_exec.md
- title: kubectl config view - docs/user-guide/kubectl/kubectl_explain.md
path: /docs/user-guide/kubectl/kubectl_config_view/ - docs/user-guide/kubectl/kubectl_expose.md
- title: kubectl convert - docs/user-guide/kubectl/kubectl_get.md
path: /docs/user-guide/kubectl/kubectl_convert/ - docs/user-guide/kubectl/kubectl_label.md
- title: kubectl cordon - docs/user-guide/kubectl/kubectl_logs.md
path: /docs/user-guide/kubectl/kubectl_cordon/ - docs/user-guide/kubectl/kubectl_patch.md
- title: kubectl create - docs/user-guide/kubectl/kubectl_port-forward.md
path: /docs/user-guide/kubectl/kubectl_create/ - docs/user-guide/kubectl/kubectl_proxy.md
- title: kubectl create configmap - docs/user-guide/kubectl/kubectl_replace.md
path: /docs/user-guide/kubectl/kubectl_create_configmap/ - docs/user-guide/kubectl/kubectl_rolling-update.md
- title: kubectl create namespace - docs/user-guide/kubectl/kubectl_rollout.md
path: /docs/user-guide/kubectl/kubectl_create_namespace/ - docs/user-guide/kubectl/kubectl_rollout_history.md
- title: kubectl create secret docker-registry - docs/user-guide/kubectl/kubectl_rollout_pause.md
path: /docs/user-guide/kubectl/kubectl_create_secret_docker-registry/ - docs/user-guide/kubectl/kubectl_rollout_resume.md
- title: kubectl create secret - docs/user-guide/kubectl/kubectl_rollout_undo.md
path: /docs/user-guide/kubectl/kubectl_create_secret/ - docs/user-guide/kubectl/kubectl_run.md
- title: kubectl create secret generic - docs/user-guide/kubectl/kubectl_scale.md
path: /docs/user-guide/kubectl/kubectl_create_secret_generic/ - docs/user-guide/kubectl/kubectl_uncordon.md
- title: kubectl create serviceaccount - docs/user-guide/kubectl/kubectl_version.md
path: /docs/user-guide/kubectl/kubectl_create_serviceaccount/
- title: kubectl delete
path: /docs/user-guide/kubectl/kubectl_delete/
- title: kubectl describe
path: /docs/user-guide/kubectl/kubectl_describe/
- title: kubectl drain
path: /docs/user-guide/kubectl/kubectl_drain/
- title: kubectl edit
path: /docs/user-guide/kubectl/kubectl_edit/
- title: kubectl exec
path: /docs/user-guide/kubectl/kubectl_exec/
- title: kubectl explain
path: /docs/user-guide/kubectl/kubectl_explain/
- title: kubectl expose
path: /docs/user-guide/kubectl/kubectl_expose/
- title: kubectl get
path: /docs/user-guide/kubectl/kubectl_get/
- title: kubectl label
path: /docs/user-guide/kubectl/kubectl_label/
- title: kubectl logs
path: /docs/user-guide/kubectl/kubectl_logs/
- title: kubectl patch
path: /docs/user-guide/kubectl/kubectl_patch/
- title: kubectl port-forward
path: /docs/user-guide/kubectl/kubectl_port-forward/
- title: kubectl proxy
path: /docs/user-guide/kubectl/kubectl_proxy/
- title: kubectl replace
path: /docs/user-guide/kubectl/kubectl_replace/
- title: kubectl rolling-update
path: /docs/user-guide/kubectl/kubectl_rolling-update/
- title: kubectl rollout
path: /docs/user-guide/kubectl/kubectl_rollout/
- title: kubectl rollout history
path: /docs/user-guide/kubectl/kubectl_rollout_history/
- title: kubectl rollout pause
path: /docs/user-guide/kubectl/kubectl_rollout_pause/
- title: kubectl rollout resume
path: /docs/user-guide/kubectl/kubectl_rollout_resume/
- title: kubectl rollout undo
path: /docs/user-guide/kubectl/kubectl_rollout_undo/
- title: kubectl run
path: /docs/user-guide/kubectl/kubectl_run/
- title: kubectl scale
path: /docs/user-guide/kubectl/kubectl_scale/
- title: kubectl uncordon
path: /docs/user-guide/kubectl/kubectl_uncordon/
- title: kubectl version
path: /docs/user-guide/kubectl/kubectl_version/
- title: Superseded and Deprecated Commands - title: Superseded and Deprecated Commands
section: section:
- title: kubectl namespace - /docs/user-guide/kubectl/kubectl_namespace/
path: /docs/user-guide/kubectl/kubectl_namespace/ - docs/user-guide/kubectl/kubectl_stop.md
- title: kubectl stop
path: /docs/user-guide/kubectl/kubectl_stop/
- title: Kubernetes Components - title: Kubernetes Components
section: section:
- title: kube-apiserver - docs/admin/kube-apiserver.md
path: /docs/admin/kube-apiserver/ - docs/admin/kube-controller-manager.md
- title: kube-controller-manager - docs/admin/kube-proxy.md
path: /docs/admin/kube-controller-manager/ - docs/admin/kube-scheduler.md
- title: kube-proxy
path: /docs/admin/kube-proxy/
- title: kube-scheduler
path: /docs/admin/kube-scheduler/
- title: kubelet - title: kubelet
section: section:
- title: Overview - docs/admin/kubelet.md
path: /docs/admin/kubelet/ - docs/admin/master-node-communication.md
- title: Master-Node communication - docs/admin/kubelet-tls-bootstrapping.md
path: /docs/admin/master-node-communication/ - docs/admin/kubelet-authentication-authorization.md
- title: TLS bootstrapping
path: /docs/admin/kubelet-tls-bootstrapping/
- title: Kubelet authentication/authorization
path: /docs/admin/kubelet-authentication-authorization/
- title: Glossary - title: Glossary
section: section:
- title: Annotations - docs/user-guide/annotations.md
path: /docs/user-guide/annotations/ - docs/admin/daemons.md
- title: Daemon Sets - docs/user-guide/deployments.md
path: /docs/admin/daemons/ - docs/user-guide/horizontal-pod-autoscaling/index.md
- title: Deployments - docs/user-guide/images.md
path: /docs/user-guide/deployments/ - docs/user-guide/ingress.md
- title: Horizontal Pod Autoscaling - docs/user-guide/jobs.md
path: /docs/user-guide/horizontal-pod-autoscaling/ - docs/user-guide/labels.md
- title: Images - docs/user-guide/identifiers.md
path: /docs/user-guide/images/ - docs/user-guide/namespaces.md
- title: Ingress Resources - docs/user-guide/networkpolicies.md
path: /docs/user-guide/ingress/ - docs/admin/node.md
- title: Jobs - docs/user-guide/persistent-volumes/index.md
path: /docs/user-guide/jobs/ - docs/user-guide/petset.md
- title: Labels and Selectors - docs/user-guide/pods/index.md
path: /docs/user-guide/labels/ - docs/user-guide/pod-security-policy/index.md
- title: Names - docs/user-guide/replicasets.md
path: /docs/user-guide/identifiers/ - docs/user-guide/replication-controller/index.md
- title: Namespaces - docs/admin/resourcequota/index.md
path: /docs/user-guide/namespaces/ - docs/user-guide/cron-jobs.md
- title: Network Policies - docs/user-guide/secrets/index.md
path: /docs/user-guide/networkpolicies/ - docs/user-guide/security-context.md
- title: Nodes - docs/user-guide/services/index.md
path: /docs/admin/node/ - docs/user-guide/service-accounts.md
- title: Persistent Volumes - docs/user-guide/thirdpartyresources.md
path: /docs/user-guide/persistent-volumes/ - docs/user-guide/volumes.md
- title: Pet Sets
path: /docs/user-guide/petset/
- title: Pods
path: /docs/user-guide/pods/
- title: Pod Security Policies
path: /docs/user-guide/pod-security-policy/
- title: Replica Sets
path: /docs/user-guide/replicasets/
- title: Replication Controller
path: /docs/user-guide/replication-controller/
- title: Resource Quotas
path: /docs/admin/resourcequota/
- title: Cron Jobs
path: /docs/user-guide/cron-jobs/
- title: Secrets
path: /docs/user-guide/secrets/
- title: Security Context
path: /docs/user-guide/security-context/
- title: Services
path: /docs/user-guide/services/
- title: Service Accounts
path: /docs/user-guide/service-accounts/
- title: Third Party Resources
path: /docs/user-guide/thirdpartyresources/
- title: Volumes
path: /docs/user-guide/volumes/
- title: Kubernetes Design Docs - title: Kubernetes Design Docs
section: section:
@ -251,8 +152,7 @@ toc:
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/ path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/
- title: Kubernetes Identity and Access Management - title: Kubernetes Identity and Access Management
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/access.md path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/access.md
- title: Kubernetes OpenVSwitch GRE/VxLAN networking - docs/admin/ovs-networking.md
path: /docs/admin/ovs-networking/
- title: Security Contexts - title: Security Contexts
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security_context.md path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security_context.md
- title: Security in Kubernetes - title: Security in Kubernetes
@ -260,29 +160,18 @@ toc:
- title: Federation - title: Federation
section: section:
- title: Federation User Guide - docs/user-guide/federation/index.md
path: /docs/user-guide/federation/ - docs/user-guide/federation/configmap.md
- title: Federated ConfigMap - docs/user-guide/federation/daemonsets.md
path: /docs/user-guide/federation/configmap/ - docs/user-guide/federation/deployment.md
- title: Federated DaemonSet - docs/user-guide/federation/events.md
path: /docs/user-guide/federation/daemonsets/ - docs/user-guide/federation/federated-ingress.md
- title: Federated Deployment - docs/user-guide/federation/namespaces.md
path: /docs/user-guide/federation/deployment/ - docs/user-guide/federation/replicasets.md
- title: Federated Events - docs/user-guide/federation/secrets.md
path: /docs/user-guide/federation/events/ - docs/federation/api-reference/README.md
- title: Federated Ingress
path: /docs/user-guide/federation/federated-ingress/
- title: Federated Namespaces
path: /docs/user-guide/federation/namespaces/
- title: Federated ReplicaSets
path: /docs/user-guide/federation/replicasets/
- title: Federated Secrets
path: /docs/user-guide/federation/secrets/
- title: Federation API
path: /docs/federation/api-reference/README/
- title: Federation Components - title: Federation Components
section: section:
- title: federation-apiserver - docs/admin/federation-apiserver.md
path: /docs/admin/federation-apiserver
- title : federation-controller-mananger - title : federation-controller-mananger
path: /docs/admin/federation-controller-manager path: /docs/admin/federation-controller-manager

View File

@ -1,8 +1,7 @@
bigheader: "Samples" bigheader: "Samples"
abstract: "A collection of example applications that show how to use Kubernetes." abstract: "A collection of example applications that show how to use Kubernetes."
toc: toc:
- title: Samples - docs/samples.md
path: /docs/samples/
- title: Storage / Database / KV - title: Storage / Database / KV
section: section:
@ -67,8 +66,7 @@ toc:
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook-go/ path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook-go/
- title: GuestBook - PHP Server - title: GuestBook - PHP Server
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook/ path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook/
- title: MEAN stack on Google Cloud Platform - docs/getting-started-guides/meanstack.md
path: /docs/getting-started-guides/meanstack/
- title: MySQL + Wordpress - title: MySQL + Wordpress
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/mysql-wordpress-pd/ path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/mysql-wordpress-pd/
- title: MySQL + Phabricator Server - title: MySQL + Phabricator Server

View File

@ -1,38 +1,25 @@
bigheader: "Support" bigheader: "Support"
abstract: "Troubleshooting resources, frequently asked questions, and community support channels." abstract: "Troubleshooting resources, frequently asked questions, and community support channels."
toc: toc:
- title: Support - docs/troubleshooting.md
path: /docs/troubleshooting/
- title: Contributing to the Kubernetes Docs - title: Contributing to the Kubernetes Docs
section: section:
- title: Contributing to the Kubernetes Documentation - editdocs.md
path: /editdocs/ - docs/contribute/create-pull-request.md
- title: Creating a Documentation Pull Request - docs/contribute/write-new-topic.md
path: /docs/contribute/create-pull-request/ - docs/contribute/stage-documentation-changes.md
- title: Writing a New Topic - docs/contribute/page-templates.md
path: /docs/contribute/write-new-topic/ - docs/contribute/style-guide.md
- title: Staging Your Documentation Changes
path: /docs/contribute/stage-documentation-changes/
- title: Using Page Templates
path: /docs/contribute/page-templates/
- title: Documentation Style Guide
path: /docs/contribute/style-guide/
- title: Troubleshooting - title: Troubleshooting
section: section:
- title: Debugging Pods and Replication Controllers - docs/user-guide/debugging-pods-and-replication-controllers.md
path: /docs/user-guide/debugging-pods-and-replication-controllers/ - docs/user-guide/introspection-and-debugging.md
- title: Application Introspection and Debugging - docs/user-guide/logging.md
path: /docs/user-guide/introspection-and-debugging/ - docs/user-guide/application-troubleshooting.md
- title: Retrieving Logs - docs/admin/cluster-troubleshooting.md
path: /docs/user-guide/logging/ - docs/user-guide/debugging-services.md
- title: Troubleshooting Applications
path: /docs/user-guide/application-troubleshooting/
- title: Troubleshooting Clusters
path: /docs/admin/cluster-troubleshooting/
- title: Debugging Services
path: /docs/user-guide/debugging-services/
- title: Frequently Asked Questions - title: Frequently Asked Questions
section: section:
@ -47,8 +34,7 @@ toc:
section: section:
- title: Kubernetes Issue Tracker on GitHub - title: Kubernetes Issue Tracker on GitHub
path: https://github.com/kubernetes/kubernetes/issues/ path: https://github.com/kubernetes/kubernetes/issues/
- title: Report a Security Vulnerability - docs/reporting-security-issues.md
path: /docs/reporting-security-issues/
- title: Release Notes - title: Release Notes
path: https://github.com/kubernetes/kubernetes/releases/ path: https://github.com/kubernetes/kubernetes/releases/
- title: Release Roadmap - title: Release Roadmap

View File

@ -1,60 +1,44 @@
bigheader: "Tasks" bigheader: "Tasks"
abstract: "Step-by-step instructions for performing operations with Kuberentes." abstract: "Step-by-step instructions for performing operations with Kuberentes."
toc: toc:
- title: Tasks - docs/tasks/index.md
path: /docs/tasks/
- title: Configuring Pods and Containers - title: Configuring Pods and Containers
section: section:
- title: Defining Environment Variables for a Container - docs/tasks/configure-pod-container/define-environment-variable-container.md
path: /docs/tasks/configure-pod-container/define-environment-variable-container/ - docs/tasks/configure-pod-container/define-command-argument-container.md
- title: Defining a Command and Arguments for a Container - docs/tasks/configure-pod-container/assign-cpu-ram-container.md
path: /docs/tasks/configure-pod-container/define-command-argument-container/ - docs/tasks/configure-pod-container/configure-volume-storage.md
- title: Assigning CPU and RAM Resources to a Container - docs/tasks/configure-pod-container/distribute-credentials-secure.md
path: /docs/tasks/configure-pod-container/assign-cpu-ram-container/
- title: Configuring a Pod to Use a Volume for Storage
path: /docs/tasks/configure-pod-container/configure-volume-storage/
- title: Accessing Applications in a Cluster - title: Accessing Applications in a Cluster
section: section:
- title: Using Port Forwarding to Access Applications in a Cluster - docs/tasks/access-application-cluster/port-forward-access-application-cluster.md
path: /docs/tasks/access-application-cluster/port-forward-access-application-cluster/
- title: Debugging Applications in a Cluster - title: Debugging Applications in a Cluster
section: section:
- title: Determining the Reason for Pod Failure - docs/tasks/debug-application-cluster/determine-reason-pod-failure.md
path: /docs/tasks/debug-application-cluster/determine-reason-pod-failure/
- title: Accessing the Kubernetes API - title: Accessing the Kubernetes API
section: section:
- title: Using an HTTP Proxy to Access the Kubernetes API - docs/tasks/access-kubernetes-api/http-proxy-access-api.md
path: /docs/tasks/access-kubernetes-api/http-proxy-access-api/
- title: Administering a Cluster - title: Administering a Cluster
section: section:
- title: Assigning Pods to Nodes - docs/tasks/administer-cluster/assign-pods-nodes.md
path: /docs/tasks/administer-cluster/assign-pods-nodes/
- title: Autoscaling the DNS Service in a Cluster - docs/tasks/administer-cluster/dns-horizontal-autoscaling.md
path: /docs/tasks/administer-cluster/dns-horizontal-autoscaling/ - docs/tasks/administer-cluster/safely-drain-node.md
- title: Safely Draining a Node while Respecting Application SLOs
path: /docs/tasks/administer-cluster/safely-drain-node/
- title: Managing Stateful Applications - title: Managing Stateful Applications
section: section:
- title: Upgrading from PetSets to StatefulSets - docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md
path: /docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set/ - docs/tasks/manage-stateful-set/scale-stateful-set.md
- title: Scaling a StatefulSet - docs/tasks/manage-stateful-set/deleting-a-statefulset.md
path: /docs/tasks/manage-stateful-set/scale-stateful-set/ - docs/tasks/manage-stateful-set/debugging-a-statefulset.md
- title: Deleting a Stateful Set - docs/tasks/manage-stateful-set/delete-pods.md
path: /docs/tasks/manage-stateful-set/deleting-a-statefulset/
- title: Debugging a StatefulSet
path: /docs/tasks/manage-stateful-set/debugging-a-statefulset/
- title: Force Deleting StatefulSet Pods
path: /docs/tasks/manage-stateful-set/delete-pods/
- title: Troubleshooting - title: Troubleshooting
section: section:
- title: Debugging Init Containers - docs/tasks/troubleshoot/debug-init-containers.md
path: /docs/tasks/troubleshoot/debug-init-containers/ - /docs/tasks/administer-cluster/access-control-identity-management/
- title: Configuring Access Control and Identity Management
path: /docs/tasks/administer-cluster/access-control-identity-management/

View File

@ -1,5 +1,4 @@
bigheader: "Tools" bigheader: "Tools"
abstract: "Tools to help you use and enhance Kubernetes." abstract: "Tools to help you use and enhance Kubernetes."
toc: toc:
- title: Tools - docs/tools/index.md
path: /docs/tools/

View File

@ -1,61 +1,42 @@
bigheader: "Tutorials" bigheader: "Tutorials"
abstract: "Detailed walkthroughs of common Kubernetes operations and workflows." abstract: "Detailed walkthroughs of common Kubernetes operations and workflows."
toc: toc:
- title: Tutorials - docs/tutorials/index.md
path: /docs/tutorials/
- title: Kubernetes Basics - title: Kubernetes Basics
section: section:
- title: Overview - docs/tutorials/kubernetes-basics/index.html
path: /docs/tutorials/kubernetes-basics/
- title: 1. Create a Cluster - title: 1. Create a Cluster
section: section:
- title: Using Minikube to Create a Cluster - docs/tutorials/kubernetes-basics/cluster-intro.html
path: /docs/tutorials/kubernetes-basics/cluster-intro/ - docs/tutorials/kubernetes-basics/cluster-interactive.html
- title: Interactive Tutorial - Creating a Cluster
path: /docs/tutorials/kubernetes-basics/cluster-interactive/
- title: 2. Deploy an App - title: 2. Deploy an App
section: section:
- title: Using kubectl to Create a Deployment - docs/tutorials/kubernetes-basics/deploy-intro.html
path: /docs/tutorials/kubernetes-basics/deploy-intro/ - docs/tutorials/kubernetes-basics/deploy-interactive.html
- title: Interactive Tutorial - Deploying an App
path: /docs/tutorials/kubernetes-basics/deploy-interactive/
- title: 3. Explore Your App - title: 3. Explore Your App
section: section:
- title: Viewing Pods and Nodes - docs/tutorials/kubernetes-basics/explore-intro.html
path: /docs/tutorials/kubernetes-basics/explore-intro/ - docs/tutorials/kubernetes-basics/explore-interactive.html
- title: Interactive Tutorial - Exploring Your App
path: /docs/tutorials/kubernetes-basics/explore-interactive/
- title: 4. Expose Your App Publicly - title: 4. Expose Your App Publicly
section: section:
- title: Using a Service to Expose Your App - docs/tutorials/kubernetes-basics/expose-intro.html
path: /docs/tutorials/kubernetes-basics/expose-intro/ - docs/tutorials/kubernetes-basics/expose-interactive.html
- title: Interactive Tutorial - Exposing Your App
path: /docs/tutorials/kubernetes-basics/expose-interactive/
- title: 5. Scale Your App - title: 5. Scale Your App
section: section:
- title: Running Multiple Instances of Your App - docs/tutorials/kubernetes-basics/scale-intro.html
path: /docs/tutorials/kubernetes-basics/scale-intro/ - docs/tutorials/kubernetes-basics/scale-interactive.html
- title: Interactive Tutorial - Scaling Your App
path: /docs/tutorials/kubernetes-basics/scale-interactive/
- title: 6. Update Your App - title: 6. Update Your App
section: section:
- title: Performing a Rolling Update - docs/tutorials/kubernetes-basics/update-intro.html
path: /docs/tutorials/kubernetes-basics/update-intro/ - docs/tutorials/kubernetes-basics/update-interactive.html
- title: Interactive Tutorial - Updating Your App
path: /docs/tutorials/kubernetes-basics/update-interactive/
- title: Stateless Applications - title: Stateless Applications
section: section:
- title: Running a Stateless Application Using a Deployment - docs/tutorials/stateless-application/run-stateless-application-deployment.md
path: /docs/tutorials/stateless-application/run-stateless-application-deployment/ - docs/tutorials/stateless-application/expose-external-ip-address-service.md
- title: Using a Service to Access an Application in a Cluster - docs/tutorials/stateless-application/expose-external-ip-address.md
path: /docs/tutorials/stateless-application/expose-external-ip-address-service/
- title: Exposing an External IP Address to Access an Application in a Cluster
path: /docs/tutorials/stateless-application/expose-external-ip-address/
- title: Stateful Applications - title: Stateful Applications
section: section:
- title: StatefulSet Basics - docs/tutorials/stateful-application/basic-stateful-set.md
path: /docs/tutorials/stateful-application/basic-stateful-set/ - docs/tutorials/stateful-application/run-stateful-application.md
- title: Running a Single-Instance Stateful Application - docs/tutorials/stateful-application/run-replicated-stateful-application.md
path: /docs/tutorials/stateful-application/run-stateful-application/ - docs/tutorials/stateful-application/zookeeper.md
- title: Running a Replicated Stateful Application
path: /docs/tutorials/stateful-application/run-replicated-stateful-application/

View File

@ -1,8 +1,6 @@
{% if page.title %}{% assign title=page.title %}{% endif %}
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
{% if !page.no_canonical %}<link rel="canonical" href="http://kubernetes.io{{page.url}}" />{% endif %}
<link rel="shortcut icon" type="image/png" href="/images/favicon.png"> <link rel="shortcut icon" type="image/png" href="/images/favicon.png">
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href='https://fonts.googleapis.com/css?family=Roboto+Mono' type='text/css'> <link rel="stylesheet" href='https://fonts.googleapis.com/css?family=Roboto+Mono' type='text/css'>
@ -14,15 +12,23 @@
<script src="/js/script.js"></script> <script src="/js/script.js"></script>
<script src="/js/sweetalert.min.js"></script> <script src="/js/sweetalert.min.js"></script>
<script src="/js/bootstrap.min.js"></script> <script src="/js/bootstrap.min.js"></script>
<title>Kubernetes - {{ title }}</title> {% seo %}
</head> </head>
<body> <body>
<div id="cellophane" onclick="kub.toggleMenu()"></div> <div id="cellophane" onclick="kub.toggleMenu()"></div>
<header> <header>
<a href="/" class="logo"></a> <a href="/" class="logo"></a>
<div class="nav-buttons" data-auto-burger="primary"> <div class="nav-buttons" data-auto-burger="primary">
<a href="/docs/" class="button" id="viewDocs" data-auto-burger-exclude>View Documentation</a> <ul class="global-nav">
<a href="/docs/hellonode/" class="button" id="tryKubernetes" data-auto-burger-exclude>Try Kubernetes</a> <li><a href="/docs/">Documentation</a></li>
<li><a href="http://blog.kubernetes.io/">Blog</a></li>
<li><a href="/partners/">Partners</a></li>
<li><a href="/community/">Community</a></li>
<li><a href="/case-studies/">Case Studies</a></li>
</ul>
<!-- <a href="/docs/" class="button" id="viewDocs" data-auto-burger-exclude>View Documentation</a> -->
<a href="/docs/tutorials/kubernetes-basics/" class="button" id="tryKubernetes" data-auto-burger-exclude>Try Kubernetes</a>
<button id="hamburger" onclick="kub.toggleMenu()" data-auto-burger-exclude><div></div></button> <button id="hamburger" onclick="kub.toggleMenu()" data-auto-burger-exclude><div></div></button>
</div> </div>

View File

@ -1 +1,15 @@
{% for item in tree %}{% if item.section %}{% assign tree = item.section %}{% include tocsearch.html %}{% else %}{% if item.path == page.url %}{% assign foundTOC = thistoc %}{% assign title = item.title %}{% break %}{% endif %}{% endif %}{% endfor %} {% capture whitespace %}
{% for item in include.tree %}
{% if found_toc %}
{% break %}
{% endif %}
{% if item.section %}
{% include tocsearch.html tree=item.section toc=include.toc %}
{% else %}
{% if item == page.path %}
{% assign found_toc = include.toc %}
{% break %}
{% endif %}
{% endif %}
{% endfor %}
{% endcapture %}

View File

@ -1,6 +1,26 @@
{% for item in tree %}{% if item.section %} {% for item in include.tree %}
{% if item.section %}
<div class="item" data-title="{{ item.title }}"> <div class="item" data-title="{{ item.title }}">
<div class="container">{% assign tree = item.section %}{% include tree.html %} <div class="container">
{% include_cached tree.html tree=item.section %}
</div> </div>
</div>{% else %}{% assign prefix = item.path | slice: 0, 4 %}{% if prefix == "http" %}{% assign target=" target='_blank'" %}{% else %}{% assign target="" %}{% endif %} </div>
<a class="item" data-title="{{ item.title }}" href="{{ item.path }}"{{ target }}></a>{% endif %}{% endfor %} {% else %}
{% capture whitespace %}
{% if item.path %}
{% assign path = item.path %}
{% assign title = item.title %}
{% assign target = " target='_blank'" %}
{% else %}
{% assign page = site.pages | where: "path", item | first %}
{% assign title = page.title %}
{% assign path = page.url %}
{% endif %}
{% endcapture %}
{% if path %}
<a class="item" data-title="{{ title }}" href="{{ path }}"{{ target }}></a>
{% endif %}
{% endif %}
{% endfor %}

View File

@ -1,25 +1,32 @@
{% for thistoc in site.data.globals.tocs %}{% if foundTOC %}{% break %}{% else %}{% assign tree = site.data[thistoc].toc %}{% include tocsearch.html %}{% endif %}{% endfor %} {% for current_toc in site.tocs %}
{% for override in site.data.overrides.overrides %}{% if page.path contains override.path %}{% assign notitle = "true" %}{% endif %}{% endfor %} {% if found_toc %}
{% break %}
{% else %}
{% assign toc=site.data[current_toc] %}
{% include tocsearch.html tree=toc.toc toc=toc %}
{% endif %}
{% endfor %}
<!Doctype html> <!Doctype html>
<html id="docs" class="{{site.data[foundTOC].bigheader}}"> <html id="docs" class="{{ toc.bigheader }}">
{% include head-header.html %} {% include head-header.html %}
<!-- HERO --> <!-- HERO -->
<section id="hero" class="light-text"> <section id="hero" class="light-text">
<h1>{{ site.data[foundTOC].bigheader }}</h1> <h1>{{ toc.bigheader }}</h1>
<h5>{{ site.data[foundTOC].abstract }}</h5> <h5>{{ toc.abstract }}</h5>
<div id="vendorStrip" class="light-text"> <div id="vendorStrip" class="light-text">
<ul> <ul>
<li><a href="/docs/" {% if site.data[foundTOC].bigheader == "Kubernetes Documentation" %}class="YAH"{% endif %}>DOCS HOME</a></li> <li><a href="/docs/" {% if toc.bigheader == "Kubernetes Documentation" %}class="YAH"{% endif %}>DOCS HOME</a></li>
<li><a href="/docs/user-guide/" {% if site.data[foundTOC].bigheader == "Guides" %}class="YAH"{% endif %}>GUIDES</a></li> <li><a href="/docs/user-guide/" {% if toc.bigheader == "Guides" %}class="YAH"{% endif %}>GUIDES</a></li>
<li><a href="/docs/tutorials/" {% if site.data[foundTOC].bigheader == "Tutorials" %}class="YAH"{% endif %}>TUTORIALS</a></li> <li><a href="/docs/tutorials/" {% if toc.bigheader == "Tutorials" %}class="YAH"{% endif %}>TUTORIALS</a></li>
<li><a href="/docs/tasks/" {% if site.data[foundTOC].bigheader == "Tasks" %}class="YAH"{% endif %}>TASKS</a></li> <li><a href="/docs/tasks/" {% if toc.bigheader == "Tasks" %}class="YAH"{% endif %}>TASKS</a></li>
<li><a href="/docs/concepts/" {% if site.data[foundTOC].bigheader == "Concepts" %}class="YAH"{% endif %}>CONCEPTS</a></li> <li><a href="/docs/concepts/" {% if toc.bigheader == "Concepts" %}class="YAH"{% endif %}>CONCEPTS</a></li>
<li><a href="/docs/reference/" {% if site.data[foundTOC].bigheader == "Reference Documentation" %}class="YAH"{% endif %}>REFERENCE</a></li> <li><a href="/docs/reference/" {% if toc.bigheader == "Reference Documentation" %}class="YAH"{% endif %}>REFERENCE</a></li>
<li><a href="/docs/tools/" {% if site.data[foundTOC].bigheader == "Tools" %}class="YAH"{% endif %}>TOOLS</a></li> <li><a href="/docs/tools/" {% if toc.bigheader == "Tools" %}class="YAH"{% endif %}>TOOLS</a></li>
<li><a href="/docs/samples/" {% if site.data[foundTOC].bigheader == "Samples" %}class="YAH"{% endif %}>SAMPLES</a></li> <li><a href="/docs/samples/" {% if toc.bigheader == "Samples" %}class="YAH"{% endif %}>SAMPLES</a></li>
<li><a href="/docs/troubleshooting/" {% if site.data[foundTOC].bigheader == "Support" %}class="YAH"{% endif %}>SUPPORT</a></li> <li><a href="/docs/troubleshooting/" {% if toc.bigheader == "Support" %}class="YAH"{% endif %}>SUPPORT</a></li>
</ul> </ul>
<div id="searchBox"> <div id="searchBox">
<input type="text" id="search" placeholder="Search" onkeydown="if (event.keyCode==13) window.location.replace('/docs/search/?q=' + this.value)"> <input type="text" id="search" placeholder="Search" onkeydown="if (event.keyCode==13) window.location.replace('/docs/search/?q=' + this.value)">
@ -30,23 +37,28 @@
<section id="encyclopedia"> <section id="encyclopedia">
<div id="docsToc"> <div id="docsToc">
<div class="pi-accordion"> <div class="pi-accordion">
{% if site.data[foundTOC].bigheader != "Kubernetes Documentation" %} {% if toc.bigheader != "Kubernetes Documentation" %}
{% assign tree = site.data[foundTOC].toc %}{% include tree.html %} {% include_cached tree.html tree=toc.toc %}
{% endif %} {% endif %}
</div> <!-- /pi-accordion --> </div> <!-- /pi-accordion -->
<button class="push-menu-close-button" onclick="kub.toggleToc()"></button> <button class="push-menu-close-button" onclick="kub.toggleToc()"></button>
</div> <!-- /docsToc --> </div> <!-- /docsToc -->
<div id="docsContent"> <div id="docsContent">
<p><a href="/editdocs#{{ page.path }}" id="editPageButton">Edit This Page</a></p> <p><a href="/editdocs#{{ page.path }}" id="editPageButton">Edit This Page</a></p>
{% if notitle != "true" %}<h1>{{ title }}</h1>{% endif %}
{% unless page.notitle %}
<h1>{{ page.title }}</h1>
{% endunless %}
{{ content }} {{ content }}
<p><a href=""><img src="https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/{{ page.path }}?pixel" alt="Analytics" /></a> <p><a href=""><img src="https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/{{ page.path }}?pixel" alt="Analytics" /></a>
{% if page.url != "/404.html" and page.url != "/docs/search/" %} {% if page.url != "/404.html" and page.url != "/docs/search/" %}
<script type="text/javascript"> <script type="text/javascript">
PDRTJS_settings_8345992 = { PDRTJS_settings_8345992 = {
"id" : "8345992", "id" : "8345992",
"unique_id" : "{{ page.url }}", "unique_id" : "{{ page.url }}",
"title" : "{{title}}", "title" : "{{ page.title }}",
"permalink" : "http://kubernetes.github.io{{ page.url }}" "permalink" : "http://kubernetes.github.io{{ page.url }}"
}; };
(function(d,c,j){if(!document.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src=('https:'==document.location.protocol)?'https://polldaddy.com/js/rating/rating.js':'http://i0.poll.fm/js/rating/rating.js';s=document.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);}}(document,'script','pd-rating-js')); (function(d,c,j){if(!document.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src=('https:'==document.location.protocol)?'https://polldaddy.com/js/rating/rating.js':'http://i0.poll.fm/js/rating/rating.js';s=document.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);}}(document,'script','pd-rating-js'));
@ -58,7 +70,7 @@
</div> </div>
</section> </section>
{% include footer.html %} {% include_cached footer.html %}
<button class="flyout-button" onclick="kub.toggleToc()"></button> <button class="flyout-button" onclick="kub.toggleToc()"></button>

View File

@ -234,6 +234,40 @@ header
color: $blue color: $blue
text-decoration: none text-decoration: none
// Global Nav - 12/9/2016 Update
ul.global-nav
display: none
li
display: inline-block
margin-right: 14px
a
color: #fff
font-weight: 400
padding: 0
position: relative
&.active:after
position: absolute
width: 100%
height: 2px
content: ''
bottom: -4px
left: 0
background: #fff
.flip-nav ul.global-nav li a,
.open-nav ul.global-nav li a,
color: #333
.flip-nav ul.global-nav li a.active:after,
.open-nav ul.global-nav li a.active:after,
background: $blue
// FLIP NAV // FLIP NAV
.flip-nav .flip-nav
header header
@ -301,6 +335,26 @@ header
padding-left: 0 padding-left: 0
padding-right: 0 padding-right: 0
margin-bottom: 0 margin-bottom: 0
position: relative
&.bot-bar:after
display: block
margin-bottom: -20px
height: 8px
width: 100%
background-color: transparentize(white, 0.9)
content: ''
&.no-sub
h5
display: none
h1
margin-bottom: 20px
#home #hero:after
display: none
// VENDOR STRIP // VENDOR STRIP
#vendorStrip #vendorStrip
@ -482,6 +536,19 @@ section
margin: 0 auto margin: 0 auto
height: 44px height: 44px
line-height: 44px line-height: 44px
position: relative
&:before
position: absolute
width: 15px
height: 15px
content: ''
right: 8px
top: 7px
background-image: url(/images/search-icon.svg)
background-repeat: no-repeat
background-size: 100% 100%
z-index: 1
#search #search
width: 100% width: 100%
@ -490,6 +557,10 @@ section
line-height: 30px line-height: 30px
font-size: 16px font-size: 16px
vertical-align: top vertical-align: top
background: #fff
border: none
border-radius: 4px
position: relative
#encyclopedia #encyclopedia
@ -712,7 +783,6 @@ dd
font-weight: 500 font-weight: 500
margin-bottom: 30px margin-bottom: 30px
padding-bottom: 10px padding-bottom: 10px
border-bottom: 1px solid #cccccc
// Make sure anchor links aren't hidden by the header // Make sure anchor links aren't hidden by the header
&:before &:before
@ -722,6 +792,9 @@ dd
height: $header-clearance height: $header-clearance
visibility: hidden visibility: hidden
h1,h2
border-bottom: 1px solid #cccccc
h1 h1
font-size: 32px font-size: 32px
padding-right: 60px padding-right: 60px
@ -731,9 +804,12 @@ dd
h3 h3
font-size: 24px font-size: 24px
font-weight: 300
margin-bottom: 5px
h4 h4
font-size: 20px font-size: 20px
margin-bottom: 0px
h5, h6 h5, h6
font-size: 16px font-size: 16px
@ -753,7 +829,7 @@ dd
background-color: $light-grey background-color: $light-grey
color: $dark-grey color: $dark-grey
font-family: $mono-font font-family: $mono-font
vertical-align: bottom vertical-align: baseline
font-size: 14px font-size: 14px
font-weight: bold font-weight: bold
padding: 2px 4px padding: 2px 4px

View File

@ -3,6 +3,15 @@ $vendor-strip-height: 44px
$video-section-height: 550px $video-section-height: 550px
@media screen and (min-width: 1025px) @media screen and (min-width: 1025px)
#hamburger
display: none
ul.global-nav
display: inline-block
#docs #vendorStrip #searchBox:before
top: 15px
#vendorStrip #vendorStrip
height: $vendor-strip-height height: $vendor-strip-height
line-height: $vendor-strip-height line-height: $vendor-strip-height
@ -40,7 +49,7 @@ $video-section-height: 550px
#searchBox #searchBox
float: right float: right
width: 30% width: 320px
#search #search
vertical-align: middle vertical-align: middle
@ -65,7 +74,7 @@ $video-section-height: 550px
#encyclopedia #encyclopedia
padding: 50px 50px 20px 20px padding: 50px 50px 100px 100px
clear: both clear: both
#docsToc #docsToc
@ -89,6 +98,11 @@ $video-section-height: 550px
main main
max-width: $main-max-width max-width: $main-max-width
header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5,
#community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5
padding-left: 100px
padding-right: 100px
#home #home
section, header, footer section, header, footer
main main
@ -276,7 +290,7 @@ $video-section-height: 550px
text-align: left text-align: left
h1 h1
padding: 20px padding: 20px 100px
#tryKubernetes #tryKubernetes
width: auto width: auto

View File

@ -3,7 +3,7 @@ assignees:
- bgrant0607 - bgrant0607
- erictune - erictune
- lavalamp - lavalamp
title: Overview
--- ---
This document describes how access to the Kubernetes API is controlled. This document describes how access to the Kubernetes API is controlled.
@ -148,7 +148,7 @@ By default the Kubernetes APIserver serves HTTP on 2 ports:
- default IP is first non-localhost network interface, change with `--bind-address` flag. - default IP is first non-localhost network interface, change with `--bind-address` flag.
- request handled by authentication and authorization modules. - request handled by authentication and authorization modules.
- request handled by admission control module(s). - request handled by admission control module(s).
- authentication and authoriation modules run. - authentication and authorisation modules run.
When the cluster is created by `kube-up.sh`, on Google Compute Engine (GCE), When the cluster is created by `kube-up.sh`, on Google Compute Engine (GCE),
and on several other cloud providers, the API server serves on port 443. On and on several other cloud providers, the API server serves on port 443. On

View File

@ -1,4 +1,5 @@
--- ---
title: Installing Addons
--- ---
## Overview ## Overview
@ -11,7 +12,7 @@ Add-ons in each section are sorted alphabetically - the ordering does not imply
## Networking and Network Policy ## Networking and Network Policy
* [Calico](http://docs.projectcalico.org/v1.6/getting-started/kubernetes/installation/hosted/) is a secure L3 networking and network policy provider. * [Calico](http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/) is a secure L3 networking and network policy provider.
* [Canal](https://github.com/tigera/canal/tree/master/k8s-install/kubeadm) unites Flannel and Calico, providing networking and network policy. * [Canal](https://github.com/tigera/canal/tree/master/k8s-install/kubeadm) unites Flannel and Calico, providing networking and network policy.
* [Flannel](https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml) is a overlay network provider that can be used with Kubernetes. * [Flannel](https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml) is a overlay network provider that can be used with Kubernetes.
* [Romana](http://romana.io) is a Layer 3 networking solution for pod networks that also supports the [NetworkPolicy API](/docs/user-guide/networkpolicies/). Kubeadm add-on installation details available [here](https://github.com/romana/romana/tree/master/containerize). * [Romana](http://romana.io) is a Layer 3 networking solution for pod networks that also supports the [NetworkPolicy API](/docs/user-guide/networkpolicies/). Kubeadm add-on installation details available [here](https://github.com/romana/romana/tree/master/containerize).

View File

@ -6,7 +6,7 @@ assignees:
- erictune - erictune
- janetkuo - janetkuo
- thockin - thockin
title: Using Admission Controllers
--- ---
* TOC * TOC

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- stclair - stclair
title: AppArmor
--- ---
AppArmor is a Linux kernel enhancement that can reduce the potential attack surface of an AppArmor is a Linux kernel enhancement that can reduce the potential attack surface of an

View File

@ -5,8 +5,9 @@ assignees:
- ericchiang - ericchiang
- deads2k - deads2k
- liggitt - liggitt
title: Authenticating
--- ---
* TOC * TOC
{:toc} {:toc}
@ -30,7 +31,7 @@ to talk to the Kubernetes API.
API requests are tied to either a normal user or a service account, or are treated API requests are tied to either a normal user or a service account, or are treated
as anonymous requests. This means every process inside or outside the cluster, from as anonymous requests. This means every process inside or outside the cluster, from
a human user typing `kubectl` on a workstation, to `kubelets` on nodes, to members a human user typing `kubectl` on a workstation, to `kubelets` on nodes, to members
of the control plane, must authenticate when making requests to the the API server, of the control plane, must authenticate when making requests to the API server,
or be treated as an anonymous user. or be treated as an anonymous user.
## Authentication strategies ## Authentication strategies

View File

@ -4,7 +4,7 @@ assignees:
- lavalamp - lavalamp
- deads2k - deads2k
- liggitt - liggitt
title: Using Authorization Plugins
--- ---
In Kubernetes, authorization happens as a separate step from authentication. In Kubernetes, authorization happens as a separate step from authentication.

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- lavalamp - lavalamp
title: Kubernetes Components
--- ---
This document outlines the various binary components that need to run to This document outlines the various binary components that need to run to

View File

@ -2,10 +2,9 @@
assignees: assignees:
- davidopp - davidopp
- lavalamp - lavalamp
title: Building Large Clusters
--- ---
## Support ## Support
At {{page.version}}, Kubernetes supports clusters with up to 1000 nodes. More specifically, we support configurations that meet *all* of the following criteria: At {{page.version}}, Kubernetes supports clusters with up to 1000 nodes. More specifically, we support configurations that meet *all* of the following criteria:

View File

@ -2,7 +2,7 @@
assignees: assignees:
- lavalamp - lavalamp
- thockin - thockin
title: Cluster Management Guide
--- ---
* TOC * TOC

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- davidopp - davidopp
title: Troubleshooting Clusters
--- ---
This doc is about cluster troubleshooting; we assume you have already ruled out your application as the root cause of the This doc is about cluster troubleshooting; we assume you have already ruled out your application as the root cause of the

View File

@ -1,13 +1,13 @@
--- ---
assignees: assignees:
- erictune - erictune
title: Daemon Sets
--- ---
* TOC * TOC
{:toc} {:toc}
## What is a _Daemon Set_? ## What is a Daemon Set?
A _Daemon Set_ ensures that all (or some) nodes run a copy of a pod. As nodes are added to the A _Daemon Set_ ensures that all (or some) nodes run a copy of a pod. As nodes are added to the
cluster, pods are added to them. As nodes are removed from the cluster, those pods are garbage cluster, pods are added to them. As nodes are removed from the cluster, those pods are garbage
@ -74,7 +74,7 @@ a node for testing.
If you specify a `.spec.template.spec.nodeSelector`, then the DaemonSet controller will If you specify a `.spec.template.spec.nodeSelector`, then the DaemonSet controller will
create pods on nodes which match that [node create pods on nodes which match that [node
selector](https://github.com/kubernetes/kubernetes.github.io/tree/{{page.docsbranch}}/docs/user-guide/node-selection). selector](/docs/user-guide/node-selection/).
If you specify a `scheduler.alpha.kubernetes.io/affinity` annotation in `.spec.template.metadata.annotations`, If you specify a `scheduler.alpha.kubernetes.io/affinity` annotation in `.spec.template.metadata.annotations`,
then DaemonSet controller will create pods on nodes which match that [node affinity](../../user-guide/node-selection/#alpha-feature-in-kubernetes-v12-node-affinity). then DaemonSet controller will create pods on nodes which match that [node affinity](../../user-guide/node-selection/#alpha-feature-in-kubernetes-v12-node-affinity).
@ -99,7 +99,7 @@ Some possible patterns for communicating with pods in a DaemonSet are:
- **Push**: Pods in the Daemon Set are configured to send updates to another service, such - **Push**: Pods in the Daemon Set are configured to send updates to another service, such
as a stats database. They do not have clients. as a stats database. They do not have clients.
- **NodeIP and Known Port**: Pods in the Daemon Set use a `hostPort`, so that the pods are reachable - **NodeIP and Known Port**: Pods in the Daemon Set use a `hostPort`, so that the pods are reachable
via the node IPs. Clients knows the the list of nodes ips somehow, and know the port by convention. via the node IPs. Clients knows the list of nodes ips somehow, and know the port by convention.
- **DNS**: Create a [headless service](/docs/user-guide/services/#headless-services) with the same pod selector, - **DNS**: Create a [headless service](/docs/user-guide/services/#headless-services) with the same pod selector,
and then discover DaemonSets using the `endpoints` resource or retrieve multiple A records from and then discover DaemonSets using the `endpoints` resource or retrieve multiple A records from
DNS. DNS.

View File

@ -3,7 +3,7 @@ assignees:
- ArtfulCoder - ArtfulCoder
- davidopp - davidopp
- lavalamp - lavalamp
title: Using DNS Pods and Services
--- ---
## Introduction ## Introduction
@ -70,7 +70,7 @@ is no longer supported.
When enabled, pods are assigned a DNS A record in the form of `pod-ip-address.my-namespace.pod.cluster.local`. When enabled, pods are assigned a DNS A record in the form of `pod-ip-address.my-namespace.pod.cluster.local`.
For example, a pod with ip `1.2.3.4` in the namespace `default` with a dns name of `cluster.local` would have an entry: `1-2-3-4.default.pod.cluster.local`. For example, a pod with ip `1.2.3.4` in the namespace `default` with a DNS name of `cluster.local` would have an entry: `1-2-3-4.default.pod.cluster.local`.
#### A Records and hostname based on Pod's hostname and subdomain fields #### A Records and hostname based on Pod's hostname and subdomain fields
@ -171,7 +171,7 @@ busybox 1/1 Running 0 <some-time>
Once that pod is running, you can exec nslookup in that environment: Once that pod is running, you can exec nslookup in that environment:
``` ```
kubectl exec busybox -- nslookup kubernetes.default kubectl exec -ti busybox -- nslookup kubernetes.default
``` ```
You should see something like: You should see something like:
@ -194,10 +194,10 @@ If the nslookup command fails, check the following:
Take a look inside the resolv.conf file. (See "Inheriting DNS from the node" and "Known issues" below for more information) Take a look inside the resolv.conf file. (See "Inheriting DNS from the node" and "Known issues" below for more information)
``` ```
cat /etc/resolv.conf kubectl exec busybox cat /etc/resolv.conf
``` ```
Verify that the search path and name server are set up like the following (note that seach path may vary for different cloud providers): Verify that the search path and name server are set up like the following (note that search path may vary for different cloud providers):
``` ```
search default.svc.cluster.local svc.cluster.local cluster.local google.internal c.gce_project_id.internal search default.svc.cluster.local svc.cluster.local cluster.local google.internal c.gce_project_id.internal
@ -210,7 +210,7 @@ options ndots:5
Errors such as the following indicate a problem with the kube-dns add-on or associated Services: Errors such as the following indicate a problem with the kube-dns add-on or associated Services:
``` ```
$ kubectl exec busybox -- nslookup kubernetes.default $ kubectl exec -ti busybox -- nslookup kubernetes.default
Server: 10.0.0.10 Server: 10.0.0.10
Address 1: 10.0.0.10 Address 1: 10.0.0.10
@ -220,7 +220,7 @@ nslookup: can't resolve 'kubernetes.default'
or or
``` ```
$ kubectl exec busybox -- nslookup kubernetes.default $ kubectl exec -ti busybox -- nslookup kubernetes.default
Server: 10.0.0.10 Server: 10.0.0.10
Address 1: 10.0.0.10 kube-dns.kube-system.svc.cluster.local Address 1: 10.0.0.10 kube-dns.kube-system.svc.cluster.local
@ -244,21 +244,21 @@ kube-dns-v19-ezo1y 3/3 Running 0
... ...
``` ```
If you see that no pod is running or that the pod has failed/completed, the dns add-on may not be deployed by default in your current environment and you will have to deploy it manually. If you see that no pod is running or that the pod has failed/completed, the DNS add-on may not be deployed by default in your current environment and you will have to deploy it manually.
#### Check for Errors in the DNS pod #### Check for Errors in the DNS pod
Use `kubectl logs` command to see logs for the DNS daemons. Use `kubectl logs` command to see logs for the DNS daemons.
``` ```
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kubedns kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kube-dns
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c dnsmasq kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c dnsmasq
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c healthz kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c healthz
``` ```
See if there is any suspicious log. W, E, F letter at the beginning represent Warning, Error and Failure. Please search for entries that have these as the logging level and use [kubernetes issues](https://github.com/kubernetes/kubernetes/issues) to report unexpected errors. See if there is any suspicious log. W, E, F letter at the beginning represent Warning, Error and Failure. Please search for entries that have these as the logging level and use [kubernetes issues](https://github.com/kubernetes/kubernetes/issues) to report unexpected errors.
#### Is dns service up? #### Is DNS service up?
Verify that the DNS service is up by using the `kubectl get service` command. Verify that the DNS service is up by using the `kubectl get service` command.
@ -277,7 +277,7 @@ kube-dns 10.0.0.10 <none> 53/UDP,53/TCP 1h
If you have created the service or in the case it should be created by default but it does not appear, see this [debugging services page](http://kubernetes.io/docs/user-guide/debugging-services/) for more information. If you have created the service or in the case it should be created by default but it does not appear, see this [debugging services page](http://kubernetes.io/docs/user-guide/debugging-services/) for more information.
#### Are dns endpoints exposed? #### Are DNS endpoints exposed?
You can verify that dns endpoints are exposed by using the `kubectl get endpoints` command. You can verify that dns endpoints are exposed by using the `kubectl get endpoints` command.
@ -348,7 +348,7 @@ some of those settings will be lost. As a partial workaround, the node can run
`dnsmasq` which will provide more `nameserver` entries, but not more `search` `dnsmasq` which will provide more `nameserver` entries, but not more `search`
entries. You can also use kubelet's `--resolv-conf` flag. entries. You can also use kubelet's `--resolv-conf` flag.
If you are using Alpine version 3.3 or earlier as your base image, dns may not If you are using Alpine version 3.3 or earlier as your base image, DNS may not
work properly owing to a known issue with Alpine. Check [here](https://github.com/kubernetes/kubernetes/issues/30215) work properly owing to a known issue with Alpine. Check [here](https://github.com/kubernetes/kubernetes/issues/30215)
for more information. for more information.

View File

@ -1,10 +1,9 @@
--- ---
assignees: assignees:
- lavalamp - lavalamp
title: Configuring Kubernetes Use of etcd
--- ---
[etcd](https://coreos.com/etcd/docs/2.2.1/) is a highly-available key value [etcd](https://coreos.com/etcd/docs/2.2.1/) is a highly-available key value
store which Kubernetes uses for persistent storage of all of its REST API store which Kubernetes uses for persistent storage of all of its REST API
objects. objects.

View File

@ -1,5 +1,8 @@
--- ---
title: federation-apiserver
notitle: true
--- ---
## federation-apiserver ## federation-apiserver

View File

@ -1,5 +1,8 @@
--- ---
title: federation-controller-mananger
notitle: true
--- ---
## federation-controller-manager ## federation-controller-manager

View File

@ -3,8 +3,9 @@ assignees:
- madhusudancs - madhusudancs
- mml - mml
- nikhiljindal - nikhiljindal
title: Using `federation-up` and `deploy.sh`
--- ---
This guide explains how to set up cluster federation that lets us control multiple Kubernetes clusters. This guide explains how to set up cluster federation that lets us control multiple Kubernetes clusters.

View File

@ -3,6 +3,10 @@ assignees:
- madhusudancs - madhusudancs
--- ---
* TOC
{:toc}
Kubernetes version 1.5 includes a new command line tool called Kubernetes version 1.5 includes a new command line tool called
`kubefed` to help you administrate your federated clusters. `kubefed` to help you administrate your federated clusters.
`kubefed` helps you to deploy a new Kubernetes cluster federation `kubefed` helps you to deploy a new Kubernetes cluster federation
@ -14,11 +18,6 @@ using `kubefed`.
> Note: `kubefed` is an alpha feature in Kubernetes 1.5. > Note: `kubefed` is an alpha feature in Kubernetes 1.5.
* TOC
{:toc}
## Prerequisites ## Prerequisites
This guide assumes that you have a running Kubernetes cluster. Please This guide assumes that you have a running Kubernetes cluster. Please

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- mikedanese - mikedanese
title: Configuring kubelet Garbage Collection
--- ---
* TOC * TOC
@ -17,7 +17,7 @@ kubernetes manages lifecycle of all images through imageManager, with the cooper
of cadvisor. of cadvisor.
The policy for garbage collecting images takes two factors into consideration: The policy for garbage collecting images takes two factors into consideration:
`HighThresholdPercent` and `LowThresholdPercent`. Disk usage above the the high threshold `HighThresholdPercent` and `LowThresholdPercent`. Disk usage above the high threshold
will trigger garbage collection. The garbage collection will delete least recently used images until the low will trigger garbage collection. The garbage collection will delete least recently used images until the low
threshold has been met. threshold has been met.

View File

@ -1,5 +1,5 @@
--- ---
title: Building High-Availability Clusters
--- ---
## Introduction ## Introduction

View File

@ -2,7 +2,7 @@
assignees: assignees:
- davidopp - davidopp
- lavalamp - lavalamp
title: Admin Guide
--- ---
The cluster admin guide is for anyone creating or administering a Kubernetes cluster. The cluster admin guide is for anyone creating or administering a Kubernetes cluster.

View File

@ -1,5 +1,8 @@
--- ---
title: kube-apiserver
notitle: true
--- ---
## kube-apiserver ## kube-apiserver

View File

@ -1,5 +1,8 @@
--- ---
title: kube-controller-manager
notitle: true
--- ---
## kube-controller-manager ## kube-controller-manager
@ -42,7 +45,7 @@ kube-controller-manager
--concurrent_rc_syncs int32 The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load (default 5) --concurrent_rc_syncs int32 The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load (default 5)
--configure-cloud-routes Should CIDRs allocated by allocate-node-cidrs be configured on the cloud provider. (default true) --configure-cloud-routes Should CIDRs allocated by allocate-node-cidrs be configured on the cloud provider. (default true)
--controller-start-interval duration Interval between starting controller managers. --controller-start-interval duration Interval between starting controller managers.
--daemonset-lookup-cache-size int32 The the size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load. (default 1024) --daemonset-lookup-cache-size int32 The size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load. (default 1024)
--deployment-controller-sync-period duration Period for syncing the deployments. (default 30s) --deployment-controller-sync-period duration Period for syncing the deployments. (default 30s)
--enable-dynamic-provisioning Enable dynamic provisioning for environments that support it. (default true) --enable-dynamic-provisioning Enable dynamic provisioning for environments that support it. (default true)
--enable-garbage-collector Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. (default true) --enable-garbage-collector Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. (default true)
@ -86,8 +89,8 @@ StreamingProxyRedirects=true|false (ALPHA - default=false)
--pv-recycler-pod-template-filepath-nfs string The file path to a pod definition used as a template for NFS persistent volume recycling --pv-recycler-pod-template-filepath-nfs string The file path to a pod definition used as a template for NFS persistent volume recycling
--pv-recycler-timeout-increment-hostpath int32 the increment of time added per Gi to ActiveDeadlineSeconds for a HostPath scrubber pod. This is for development and testing only and will not work in a multi-node cluster. (default 30) --pv-recycler-timeout-increment-hostpath int32 the increment of time added per Gi to ActiveDeadlineSeconds for a HostPath scrubber pod. This is for development and testing only and will not work in a multi-node cluster. (default 30)
--pvclaimbinder-sync-period duration The period for syncing persistent volumes and persistent volume claims (default 15s) --pvclaimbinder-sync-period duration The period for syncing persistent volumes and persistent volume claims (default 15s)
--replicaset-lookup-cache-size int32 The the size of lookup cache for replicatsets. Larger number = more responsive replica management, but more MEM load. (default 4096) --replicaset-lookup-cache-size int32 The size of lookup cache for replicatsets. Larger number = more responsive replica management, but more MEM load. (default 4096)
--replication-controller-lookup-cache-size int32 The the size of lookup cache for replication controllers. Larger number = more responsive replica management, but more MEM load. (default 4096) --replication-controller-lookup-cache-size int32 The size of lookup cache for replication controllers. Larger number = more responsive replica management, but more MEM load. (default 4096)
--resource-quota-sync-period duration The period for syncing quota usage status in the system (default 5m0s) --resource-quota-sync-period duration The period for syncing quota usage status in the system (default 5m0s)
--root-ca-file string If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle. --root-ca-file string If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.
--route-reconciliation-period duration The period for reconciling routes created for Nodes by cloud provider. (default 10s) --route-reconciliation-period duration The period for reconciling routes created for Nodes by cloud provider. (default 10s)

View File

@ -1,5 +1,8 @@
--- ---
title: kube-proxy
notitle: true
--- ---
## kube-proxy ## kube-proxy

View File

@ -1,5 +1,8 @@
--- ---
title: kube-scheduler
notitle: true
--- ---
## kube-scheduler ## kube-scheduler

View File

@ -4,10 +4,9 @@ assignees:
- luxas - luxas
- errordeveloper - errordeveloper
- jbeda - jbeda
title: kubeadm reference
--- ---
This document provides information on how to use kubeadm's advanced options. This document provides information on how to use kubeadm's advanced options.
Running `kubeadm init` bootstraps a Kubernetes cluster. This consists of the Running `kubeadm init` bootstraps a Kubernetes cluster. This consists of the
@ -82,7 +81,7 @@ of the box. You can specify a cloud provider using `--cloud-provider`.
Valid values are the ones supported by `controller-manager`, namely `"aws"`, Valid values are the ones supported by `controller-manager`, namely `"aws"`,
`"azure"`, `"cloudstack"`, `"gce"`, `"mesos"`, `"openstack"`, `"ovirt"`, `"azure"`, `"cloudstack"`, `"gce"`, `"mesos"`, `"openstack"`, `"ovirt"`,
`"rackspace"`, `"vsphere"`. In order to provide additional configuration for `"rackspace"`, `"vsphere"`. In order to provide additional configuration for
the cloud provider, you should create a `/etc/kubernetes/cloud-config.json` the cloud provider, you should create a `/etc/kubernetes/cloud-config`
file manually, before running `kubeadm init`. `kubeadm` automatically file manually, before running `kubeadm init`. `kubeadm` automatically
picks those settings up and ensures other nodes are configured correctly. picks those settings up and ensures other nodes are configured correctly.
You must also set the `--cloud-provider` and `--cloud-config` parameters You must also set the `--cloud-provider` and `--cloud-config` parameters
@ -141,10 +140,10 @@ By default, `kubeadm init` automatically generates the token used to initialise
each new node. If you would like to manually specify this token, you can use the each new node. If you would like to manually specify this token, you can use the
`--token` flag. The token must be of the format `<6 character string>.<16 character string>`. `--token` flag. The token must be of the format `<6 character string>.<16 character string>`.
- `--use-kubernetes-version` (default 'v1.4.4') the kubernetes version to initialise - `--use-kubernetes-version` (default 'v1.5.1') the kubernetes version to initialise
`kubeadm` was originally built for Kubernetes version **v1.4.0**, older versions are not `kubeadm` was originally built for Kubernetes version **v1.4.0**, older versions are not
supported. With this flag you can try any future version, e.g. **v1.5.0-beta.1** supported. With this flag you can try any future version, e.g. **v1.6.0-beta.1**
whenever it comes out (check [releases page](https://github.com/kubernetes/kubernetes/releases) whenever it comes out (check [releases page](https://github.com/kubernetes/kubernetes/releases)
for a full list of available versions). for a full list of available versions).
@ -168,6 +167,59 @@ necessary.
By default, when `kubeadm init` runs, a token is generated and revealed in the output. By default, when `kubeadm init` runs, a token is generated and revealed in the output.
That's the token you should use here. That's the token you should use here.
## Using kubeadm with a configuration file
WARNING: kubeadm is in alpha and the configuration API syntax will likely change before GA.
It's possible to configure kubeadm with a configuration file instead of command line flags, and some more advanced features may only be
available as configuration file options.
### Sample Master Configuration
```yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddresses:
- <address1|string>
- <address2|string>
bindPort: <int>
externalDNSNames:
- <dnsname1|string>
- <dnsname2|string>
cloudProvider: <string>
discovery:
bindPort: <int>
etcd:
endpoints:
- <endpoint1|string>
- <endpoint2|string>
caFile: <path|string>
certFile: <path|string>
keyFile: <path|string>
kubernetesVersion: <string>
networking:
dnsDomain: <string>
serviceSubnet: <cidr>
podSubnet: <cidr>
secrets:
givenToken: <token|string>
```
### Sample Node Configuration
```yaml
apiVersion: kubeadm.k8s.io/v1alpha1
kind: NodeConfiguration
apiPort: <int>
discoveryPort: <int>
masterAddresses:
- <master1>
secrets:
givenToken: <token|string>
```
## Automating kubeadm ## Automating kubeadm
Rather than copying the token you obtained from `kubeadm init` to each node, as Rather than copying the token you obtained from `kubeadm init` to each node, as
@ -175,13 +227,12 @@ in the basic `kubeadm` tutorials, you can parallelize the token distribution for
easier automation. To implement this automation, you must know the IP address easier automation. To implement this automation, you must know the IP address
that the master will have after it is started. that the master will have after it is started.
1. Generate a token. This token must have the form `<6 character string>.<16 1. Generate a token. This token must have the form `<6 character string>.<16 character string>`.
character string>`
Here is a simple python one-liner for this: Kubeadm can pre-generate a token for you:
``` ```console
python -c 'import random; print "%0x.%0x" % (random.SystemRandom().getrandbits(3*8), random.SystemRandom().getrandbits(8*8))' $ kubeadm token generate
``` ```
1. Start both the master node and the worker nodes concurrently with this token. As they come up they should find each other and form the cluster. 1. Start both the master node and the worker nodes concurrently with this token. As they come up they should find each other and form the cluster.
@ -191,6 +242,7 @@ Once the cluster is up, you can grab the admin credentials from the master node
## Environment variables ## Environment variables
There are some environment variables that modify the way that `kubeadm` works. Most users will have no need to set these. There are some environment variables that modify the way that `kubeadm` works. Most users will have no need to set these.
These enviroment variables are a short-term solution, eventually they will be integrated in the kubeadm configuration file.
| Variable | Default | Description | | Variable | Default | Description |
| --- | --- | --- | | --- | --- | --- |
@ -200,36 +252,10 @@ There are some environment variables that modify the way that `kubeadm` works.
| `KUBE_HYPERKUBE_IMAGE` | `` | If set, use a single hyperkube image with this name. If not set, individual images per server component will be used. | | `KUBE_HYPERKUBE_IMAGE` | `` | If set, use a single hyperkube image with this name. If not set, individual images per server component will be used. |
| `KUBE_DISCOVERY_IMAGE` | `gcr.io/google_containers/kube-discovery-<arch>:1.0` | The bootstrap discovery helper image to use. | | `KUBE_DISCOVERY_IMAGE` | `gcr.io/google_containers/kube-discovery-<arch>:1.0` | The bootstrap discovery helper image to use. |
| `KUBE_ETCD_IMAGE` | `gcr.io/google_containers/etcd-<arch>:2.2.5` | The etcd container image to use. | | `KUBE_ETCD_IMAGE` | `gcr.io/google_containers/etcd-<arch>:2.2.5` | The etcd container image to use. |
| `KUBE_COMPONENT_LOGLEVEL` | `--v=4` | Logging configuration for all Kubernetes components | | `KUBE_REPO_PREFIX` | `gcr.io/google_containers` | The image prefix for all images that are used. |
## Releases and release notes ## Releases and release notes
If you already have kubeadm installed and want to upgrade, run `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm. If you already have kubeadm installed and want to upgrade, run `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm.
- Second release between v1.4 and v1.5: `v1.5.0-alpha.2.421+a6bea3d79b8bba` Refer to the [CHANGELOG.md](https://github.com/kubernetes/kubeadm/blob/master/CHANGELOG.md) for more information.
- Switch to the 10.96.0.0/12 subnet: [#35290](https://github.com/kubernetes/kubernetes/pull/35290)
- Fix kubeadm on AWS by including /etc/ssl/certs in the controller-manager [#33681](https://github.com/kubernetes/kubernetes/pull/33681)
- The API was refactored and is now componentconfig: [#33728](https://github.com/kubernetes/kubernetes/pull/33728), [#34147](https://github.com/kubernetes/kubernetes/pull/34147) and [#34555](https://github.com/kubernetes/kubernetes/pull/34555)
- Allow kubeadm to get config options from a file: [#34501](https://github.com/kubernetes/kubernetes/pull/34501), [#34885](https://github.com/kubernetes/kubernetes/pull/34885) and [#34891](https://github.com/kubernetes/kubernetes/pull/34891)
- Implement preflight checks: [#34341](https://github.com/kubernetes/kubernetes/pull/34341) and [#35843](https://github.com/kubernetes/kubernetes/pull/35843)
- Using kubernetes v1.4.4 by default: [#34419](https://github.com/kubernetes/kubernetes/pull/34419) and [#35270](https://github.com/kubernetes/kubernetes/pull/35270)
- Make api and discovery ports configurable and default to 6443: [#34719](https://github.com/kubernetes/kubernetes/pull/34719)
- Implement kubeadm reset: [#34807](https://github.com/kubernetes/kubernetes/pull/34807)
- Make kubeadm poll/wait for endpoints instead of directly fail when the master isn't available [#34703](https://github.com/kubernetes/kubernetes/pull/34703) and [#34718](https://github.com/kubernetes/kubernetes/pull/34718)
- Allow empty directories in the directory preflight check: [#35632](https://github.com/kubernetes/kubernetes/pull/35632)
- Started adding unit tests: [#35231](https://github.com/kubernetes/kubernetes/pull/35231), [#35326](https://github.com/kubernetes/kubernetes/pull/35326) and [#35332](https://github.com/kubernetes/kubernetes/pull/35332)
- Various enhancements: [#35075](https://github.com/kubernetes/kubernetes/pull/35075), [#35111](https://github.com/kubernetes/kubernetes/pull/35111), [#35119](https://github.com/kubernetes/kubernetes/pull/35119), [#35124](https://github.com/kubernetes/kubernetes/pull/35124), [#35265](https://github.com/kubernetes/kubernetes/pull/35265) and [#35777](https://github.com/kubernetes/kubernetes/pull/35777)
- Bug fixes: [#34352](https://github.com/kubernetes/kubernetes/pull/34352), [#34558](https://github.com/kubernetes/kubernetes/pull/34558), [#34573](https://github.com/kubernetes/kubernetes/pull/34573), [#34834](https://github.com/kubernetes/kubernetes/pull/34834), [#34607](https://github.com/kubernetes/kubernetes/pull/34607), [#34907](https://github.com/kubernetes/kubernetes/pull/34907) and [#35796](https://github.com/kubernetes/kubernetes/pull/35796)
- Initial v1.4 release: `v1.5.0-alpha.0.1534+cf7301f16c0363`
## Troubleshooting
* Some users on RHEL/CentOS 7 have reported issues with traffic being routed incorrectly due to iptables being bypassed. You should ensure `net.bridge.bridge-nf-call-iptables` is set to 1 in your sysctl config, eg.
```
# cat /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
```

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- liggitt - liggitt
title: Kubelet authentication/authorization
--- ---
* TOC * TOC
@ -21,14 +21,17 @@ authentication methods are treated as anonymous requests, and given a username o
and a group of `system:unauthenticated`. and a group of `system:unauthenticated`.
To disable anonymous access and send `401 Unauthorized` responses to unauthenticated requests: To disable anonymous access and send `401 Unauthorized` responses to unauthenticated requests:
* start the kubelet with the `--anonymous-auth=false` flag * start the kubelet with the `--anonymous-auth=false` flag
To enable X509 client certificate authentication to the kubelet's HTTPS endpoint: To enable X509 client certificate authentication to the kubelet's HTTPS endpoint:
* start the kubelet with the `--client-ca-file` flag, providing a CA bundle to verify client certificates with * start the kubelet with the `--client-ca-file` flag, providing a CA bundle to verify client certificates with
* start the apiserver with `--kubelet-client-certificate` and `--kubelet-client-key` flags * start the apiserver with `--kubelet-client-certificate` and `--kubelet-client-key` flags
* see the [apiserver authentication documentation](/docs/admin/authentication/#x509-client-certs) for more details * see the [apiserver authentication documentation](/docs/admin/authentication/#x509-client-certs) for more details
To enable API bearer tokens (including service account tokens) to be used to authenticate to the kubelet's HTTPS endpoint: To enable API bearer tokens (including service account tokens) to be used to authenticate to the kubelet's HTTPS endpoint:
* ensure the `authentication.k8s.io/v1beta1` API group is enabled in the API server * ensure the `authentication.k8s.io/v1beta1` API group is enabled in the API server
* start the kubelet with the `--authentication-token-webhook`, `--kubeconfig`, and `--require-kubeconfig` flags * start the kubelet with the `--authentication-token-webhook`, `--kubeconfig`, and `--require-kubeconfig` flags
* the kubelet calls the `TokenReview` API on the configured API server to determine user information from bearer tokens * the kubelet calls the `TokenReview` API on the configured API server to determine user information from bearer tokens
@ -38,11 +41,13 @@ To enable API bearer tokens (including service account tokens) to be used to aut
Any request that is successfully authenticated (including an anonymous request) is then authorized. The default authorization mode is `AlwaysAllow`, which allows all requests. Any request that is successfully authenticated (including an anonymous request) is then authorized. The default authorization mode is `AlwaysAllow`, which allows all requests.
There are many possible reasons to subdivide access to the kubelet API: There are many possible reasons to subdivide access to the kubelet API:
* anonymous auth is enabled, but anonymous users' ability to call the kubelet API should be limited * anonymous auth is enabled, but anonymous users' ability to call the kubelet API should be limited
* bearer token auth is enabled, but arbitrary API users' (like service accounts) ability to call the kubelet API should be limited * bearer token auth is enabled, but arbitrary API users' (like service accounts) ability to call the kubelet API should be limited
* client certificate auth is enabled, but only some of the client certificates signed by the configured CA should be allowed to use the kubelet API * client certificate auth is enabled, but only some of the client certificates signed by the configured CA should be allowed to use the kubelet API
To subdivide access to the kubelet API, delegate authorization to the API server: To subdivide access to the kubelet API, delegate authorization to the API server:
* ensure the `authorization.k8s.io/v1beta1` API group is enabled in the API server * ensure the `authorization.k8s.io/v1beta1` API group is enabled in the API server
* start the kubelet with the `--authorization-mode=Webhook`, `--kubeconfig`, and `--require-kubeconfig` flags * start the kubelet with the `--authorization-mode=Webhook`, `--kubeconfig`, and `--require-kubeconfig` flags
* the kubelet calls the `SubjectAccessReview` API on the configured API server to determine whether each request is authorized * the kubelet calls the `SubjectAccessReview` API on the configured API server to determine whether each request is authorized
@ -63,10 +68,10 @@ The resource and subresource is determined from the incoming request's path:
Kubelet API | resource | subresource Kubelet API | resource | subresource
-------------|----------|------------ -------------|----------|------------
/stats/* | nodes | stats /stats/\* | nodes | stats
/metrics/* | nodes | metrics /metrics/\* | nodes | metrics
/logs/* | nodes | log /logs/\* | nodes | log
/spec/* | nodes | spec /spec/\* | nodes | spec
*all others* | nodes | proxy *all others* | nodes | proxy
The namespace and API group attributes are always an empty string, and The namespace and API group attributes are always an empty string, and
@ -74,8 +79,9 @@ the resource name is always the name of the kubelet's `Node` API object.
When running in this mode, ensure the user identified by the `--kubelet-client-certificate` and `--kubelet-client-key` When running in this mode, ensure the user identified by the `--kubelet-client-certificate` and `--kubelet-client-key`
flags passed to the apiserver is authorized for the following attributes: flags passed to the apiserver is authorized for the following attributes:
* verb=*, resource=nodes, subresource=proxy
* verb=*, resource=nodes, subresource=stats * verb=\*, resource=nodes, subresource=proxy
* verb=*, resource=nodes, subresource=log * verb=\*, resource=nodes, subresource=stats
* verb=*, resource=nodes, subresource=spec * verb=\*, resource=nodes, subresource=log
* verb=*, resource=nodes, subresource=metrics * verb=\*, resource=nodes, subresource=spec
* verb=\*, resource=nodes, subresource=metrics

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- mikedanese - mikedanese
title: TLS bootstrapping
--- ---
* TOC * TOC

View File

@ -1,5 +1,8 @@
--- ---
title: Overview
notitle: true
--- ---
## kubelet ## kubelet
@ -14,7 +17,7 @@ various mechanisms (primarily through the apiserver) and ensures that the contai
described in those PodSpecs are running and healthy. The kubelet doesn't manage described in those PodSpecs are running and healthy. The kubelet doesn't manage
containers which were not created by Kubernetes. containers which were not created by Kubernetes.
Other than from an PodSpec from the apiserver, there are three ways that a container Other than from a PodSpec from the apiserver, there are three ways that a container
manifest can be provided to the Kubelet. manifest can be provided to the Kubelet.
File: Path passed as a flag on the command line. This file is rechecked every 20 File: Path passed as a flag on the command line. This file is rechecked every 20

View File

@ -2,7 +2,7 @@
assignees: assignees:
- derekwaynecarr - derekwaynecarr
- janetkuo - janetkuo
title: Setting Pod CPU and Memory Limits
--- ---
By default, pods run with unbounded CPU and memory limits. This means that any pod in the By default, pods run with unbounded CPU and memory limits. This means that any pod in the

View File

@ -3,7 +3,7 @@ assignees:
- dchen1107 - dchen1107
- roberthbailey - roberthbailey
- liggitt - liggitt
title: Master-Node communication
--- ---
* TOC * TOC

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- davidopp - davidopp
title: Using Multiple Clusters
--- ---
You may want to set up multiple Kubernetes clusters, both to You may want to set up multiple Kubernetes clusters, both to

View File

@ -2,7 +2,7 @@
assignees: assignees:
- davidopp - davidopp
- madhusudancs - madhusudancs
title: Configuring Multiple Schedulers
--- ---
Kubernetes ships with a default scheduler that is described [here](/docs/admin/kube-scheduler/). Kubernetes ships with a default scheduler that is described [here](/docs/admin/kube-scheduler/).

View File

@ -3,7 +3,7 @@ assignees:
- jlowdermilk - jlowdermilk
- justinsb - justinsb
- quinton-hoole - quinton-hoole
title: Running in Multiple Zones
--- ---
## Introduction ## Introduction

View File

@ -2,7 +2,7 @@
assignees: assignees:
- derekwaynecarr - derekwaynecarr
- janetkuo - janetkuo
title: Sharing a Cluster with Namespaces
--- ---
A Namespace is a mechanism to partition resources created by users into A Namespace is a mechanism to partition resources created by users into

View File

@ -2,7 +2,7 @@
assignees: assignees:
- derekwaynecarr - derekwaynecarr
- janetkuo - janetkuo
title: Namespaces Walkthrough
--- ---
Kubernetes _namespaces_ help different projects, teams, or customers to share a Kubernetes cluster. Kubernetes _namespaces_ help different projects, teams, or customers to share a Kubernetes cluster.

View File

@ -3,7 +3,7 @@ assignees:
- dcbw - dcbw
- freehan - freehan
- thockin - thockin
title: Network Plugins
--- ---
* TOC * TOC
@ -26,13 +26,13 @@ The kubelet has a single default network plugin, and a default network common to
## Network Plugin Requirements ## Network Plugin Requirements
Besides providing the [`NetworkPlugin` interface](https://github.com/kubernetes/kubernetes/tree/{{page.version}}.0/pkg/kubelet/network/plugins.go) to configure and clean up pod networking, the plugin may also need specific support for kube-proxy. The iptables proxy obviously depends on iptables, and the plugin may need to ensure that container traffic is made available to iptables. For example, if the plugin connects containers to a Linux bridge, the plugin must set the `net/bridge/bridge-nf-call-iptables` sysctl to `1` to ensure that the iptables proxy functions correctly. If the plugin does not use a Linux bridge (but instead something like Open vSwitch or some other mechanism) it should ensure container traffic is appropriately routed for the proxy. Besides providing the [`NetworkPlugin` interface](https://github.com/kubernetes/kubernetes/tree/{{page.version}}/pkg/kubelet/network/plugins.go) to configure and clean up pod networking, the plugin may also need specific support for kube-proxy. The iptables proxy obviously depends on iptables, and the plugin may need to ensure that container traffic is made available to iptables. For example, if the plugin connects containers to a Linux bridge, the plugin must set the `net/bridge/bridge-nf-call-iptables` sysctl to `1` to ensure that the iptables proxy functions correctly. If the plugin does not use a Linux bridge (but instead something like Open vSwitch or some other mechanism) it should ensure container traffic is appropriately routed for the proxy.
By default if no kubelet network plugin is specified, the `noop` plugin is used, which sets `net/bridge/bridge-nf-call-iptables=1` to ensure simple configurations (like docker with a bridge) work correctly with the iptables proxy. By default if no kubelet network plugin is specified, the `noop` plugin is used, which sets `net/bridge/bridge-nf-call-iptables=1` to ensure simple configurations (like docker with a bridge) work correctly with the iptables proxy.
### Exec ### Exec
Place plugins in `network-plugin-dir/plugin-name/plugin-name`, i.e if you have a bridge plugin and `network-plugin-dir` is `/usr/lib/kubernetes`, you'd place the bridge plugin executable at `/usr/lib/kubernetes/bridge/bridge`. See [this comment](https://github.com/kubernetes/kubernetes/tree/{{page.version}}.0/pkg/kubelet/network/exec/exec.go) for more details. Place plugins in `network-plugin-dir/plugin-name/plugin-name`, i.e if you have a bridge plugin and `network-plugin-dir` is `/usr/lib/kubernetes`, you'd place the bridge plugin executable at `/usr/lib/kubernetes/bridge/bridge`. See [this comment](https://github.com/kubernetes/kubernetes/tree/{{page.version}}/pkg/kubelet/network/exec/exec.go) for more details.
### CNI ### CNI

View File

@ -2,7 +2,7 @@
assignees: assignees:
- lavalamp - lavalamp
- thockin - thockin
title: Networking in Kubernetes
--- ---
Kubernetes approaches networking somewhat differently than Docker does by Kubernetes approaches networking somewhat differently than Docker does by
@ -171,7 +171,7 @@ Lars Kellogg-Stedman.
### Nuage Networks VCS (Virtualized Cloud Services) ### Nuage Networks VCS (Virtualized Cloud Services)
[Nuage](www.nuagenetworks.net) provides a highly scalable policy-based Software-Defined Networking (SDN) platform. Nuage uses the open source Open vSwitch for the data plane along with a feature rich SDN Controller built on open standards. [Nuage](http://www.nuagenetworks.net) provides a highly scalable policy-based Software-Defined Networking (SDN) platform. Nuage uses the open source Open vSwitch for the data plane along with a feature rich SDN Controller built on open standards.
The Nuage platform uses overlays to provide seamless policy-based networking between Kubernetes Pods and non-Kubernetes environments (VMs and bare metal servers). Nuages policy abstraction model is designed with applications in mind and makes it easy to declare fine-grained policies for applications.The platforms real-time analytics engine enables visibility and security monitoring for Kubernetes applications. The Nuage platform uses overlays to provide seamless policy-based networking between Kubernetes Pods and non-Kubernetes environments (VMs and bare metal servers). Nuages policy abstraction model is designed with applications in mind and makes it easy to declare fine-grained policies for applications.The platforms real-time analytics engine enables visibility and security monitoring for Kubernetes applications.
@ -181,6 +181,14 @@ The Nuage platform uses overlays to provide seamless policy-based networking bet
complicated way to build an overlay network. This is endorsed by several of the complicated way to build an overlay network. This is endorsed by several of the
"Big Shops" for networking. "Big Shops" for networking.
### OVN (Open Virtual Networking)
OVN is an opensource network virtualization solution developed by the
Open vSwitch community. It lets one create logical switches, logical routers,
stateful ACLs, load-balancers etc to build different virtual networking
topologies. The project has a specific Kubernetes plugin and documentation
at [ovn-kubernetes](https://github.com/openvswitch/ovn-kubernetes).
### Project Calico ### Project Calico
[Project Calico](http://docs.projectcalico.org/) is an open source container networking provider and network policy engine. [Project Calico](http://docs.projectcalico.org/) is an open source container networking provider and network policy engine.

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- Random-Liu - Random-Liu
title: Validate Node Setup
--- ---
* TOC * TOC

View File

@ -2,7 +2,7 @@
assignees: assignees:
- Random-Liu - Random-Liu
- dchen1107 - dchen1107
title: Monitoring Node Health
--- ---
* TOC * TOC

View File

@ -3,7 +3,7 @@ assignees:
- caesarxuchao - caesarxuchao
- dchen1107 - dchen1107
- lavalamp - lavalamp
title: Nodes
--- ---
* TOC * TOC
@ -186,7 +186,7 @@ Modifications include setting labels on the node and marking it unschedulable.
Labels on nodes can be used in conjunction with node selectors on pods to control scheduling, Labels on nodes can be used in conjunction with node selectors on pods to control scheduling,
e.g. to constrain a pod to only be eligible to run on a subset of the nodes. e.g. to constrain a pod to only be eligible to run on a subset of the nodes.
Marking a node as unscheduleable will prevent new pods from being scheduled to that Marking a node as unschedulable will prevent new pods from being scheduled to that
node, but will not affect any existing pods on the node. This is useful as a node, but will not affect any existing pods on the node. This is useful as a
preparatory step before a node reboot, etc. For example, to mark a node preparatory step before a node reboot, etc. For example, to mark a node
unschedulable, run this command: unschedulable, run this command:

View File

@ -3,7 +3,7 @@ assignees:
- derekwaynecarr - derekwaynecarr
- vishh - vishh
- timstclair - timstclair
title: Configuring Out Of Resource Handling
--- ---
* TOC * TOC
@ -349,7 +349,7 @@ in favor of the simpler configuation supported around eviction.
The `kubelet` currently polls `cAdvisor` to collect memory usage stats at a regular interval. If memory usage The `kubelet` currently polls `cAdvisor` to collect memory usage stats at a regular interval. If memory usage
increases within that window rapidly, the `kubelet` may not observe `MemoryPressure` fast enough, and the `OOMKiller` increases within that window rapidly, the `kubelet` may not observe `MemoryPressure` fast enough, and the `OOMKiller`
will still be invoked. We intend to integrate with the `memcg` notification API in a future release to reduce this will still be invoked. We intend to integrate with the `memcg` notification API in a future release to reduce this
latency, and instead have the kernel tell us when a threshold has been crossed immmediately. latency, and instead have the kernel tell us when a threshold has been crossed immediately.
If you are not trying to achieve extreme utilization, but a sensible measure of overcommit, a viable workaround for If you are not trying to achieve extreme utilization, but a sensible measure of overcommit, a viable workaround for
this issue is to set eviction thresholds at approximately 75% capacity. This increases the ability of this feature this issue is to set eviction thresholds at approximately 75% capacity. This increases the ability of this feature

View File

@ -2,7 +2,7 @@
assignees: assignees:
- lavalamp - lavalamp
- thockin - thockin
title: Kubernetes OpenVSwitch GRE/VxLAN networking
--- ---
This document describes how OpenVSwitch is used to setup networking between pods across nodes. This document describes how OpenVSwitch is used to setup networking between pods across nodes.

View File

@ -36,7 +36,7 @@ Each critical add-on has to tolerate it,
the other pods shouldn't tolerate the taint. The tain is removed once the add-on is successfully scheduled. the other pods shouldn't tolerate the taint. The tain is removed once the add-on is successfully scheduled.
*Warning:* currently there is no guarantee which node is chosen and which pods are being killed *Warning:* currently there is no guarantee which node is chosen and which pods are being killed
in order to schedule crical pod, so if rescheduler is enabled you pods might be occasionally in order to schedule critical pods, so if rescheduler is enabled you pods might be occasionally
killed for this purpose. killed for this purpose.
## Config ## Config

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- derekwaynecarr - derekwaynecarr
title: Resource Quotas
--- ---
When several users or teams share a cluster with a fixed number of nodes, When several users or teams share a cluster with a fixed number of nodes,
@ -125,7 +125,7 @@ The quota can be configured to quota either value.
If the quota has a value specified for `requests.cpu` or `requests.memory`, then it requires that every incoming If the quota has a value specified for `requests.cpu` or `requests.memory`, then it requires that every incoming
container makes an explicit request for those resources. If the quota has a value specified for `limits.cpu` or `limits.memory`, container makes an explicit request for those resources. If the quota has a value specified for `limits.cpu` or `limits.memory`,
then it requires that every incoming container specifies an explict limit for those resources. then it requires that every incoming container specifies an explicit limit for those resources.
## Viewing and Setting Quotas ## Viewing and Setting Quotas

View File

@ -2,7 +2,7 @@
assignees: assignees:
- derekwaynecarr - derekwaynecarr
- janetkuo - janetkuo
title: Applying Resource Quotas and Limits
--- ---
This example demonstrates a typical setup to control for resource usage in a namespace. This example demonstrates a typical setup to control for resource usage in a namespace.
@ -232,7 +232,7 @@ services.loadbalancers 0 2
services.nodeports 0 0 services.nodeports 0 0
``` ```
As you can see, the pod that was created is consuming explict amounts of compute resources, and the usage is being As you can see, the pod that was created is consuming explicit amounts of compute resources, and the usage is being
tracked by Kubernetes properly. tracked by Kubernetes properly.
## Step 5: Advanced quota scopes ## Step 5: Advanced quota scopes

View File

@ -2,7 +2,7 @@
assignees: assignees:
- davidopp - davidopp
- lavalamp - lavalamp
title: Configuring Kubernetes with Salt
--- ---
The Kubernetes cluster can be configured using Salt. The Kubernetes cluster can be configured using Salt.

View File

@ -4,7 +4,7 @@ assignees:
- davidopp - davidopp
- lavalamp - lavalamp
- liggitt - liggitt
title: Managing Service Accounts
--- ---
*This is a Cluster Administrator guide to service accounts. It assumes knowledge of *This is a Cluster Administrator guide to service accounts. It assumes knowledge of

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- jsafrane - jsafrane
title: Static Pods
--- ---
**If you are running clustered Kubernetes and are using static pods to run a pod on every node, you should probably be using a [DaemonSet](/docs/admin/daemons/)!** **If you are running clustered Kubernetes and are using static pods to run a pod on every node, you should probably be using a [DaemonSet](/docs/admin/daemons/)!**
@ -16,7 +16,7 @@ Static pod can be created in two ways: either by using configuration file(s) or
### Configuration files ### Configuration files
The configuration files are just standard pod definition in json or yaml format in specific directory. Use `kubelet --config=<the directory>` to start kubelet daemon, which periodically scans the directory and creates/deletes static pods as yaml/json files appear/disappear there. The configuration files are just standard pod definition in json or yaml format in specific directory. Use `kubelet --pod-manifest-path=<the directory>` to start kubelet daemon, which periodically scans the directory and creates/deletes static pods as yaml/json files appear/disappear there.
For example, this is how to start a simple web server as a static pod: For example, this is how to start a simple web server as a static pod:
@ -48,10 +48,10 @@ For example, this is how to start a simple web server as a static pod:
EOF EOF
``` ```
2. Configure your kubelet daemon on the node to use this directory by running it with `--config=/etc/kubelet.d/` argument. On Fedora edit `/etc/kubernetes/kubelet` to include this line: 2. Configure your kubelet daemon on the node to use this directory by running it with `--pod-manifest-path=/etc/kubelet.d/` argument. On Fedora edit `/etc/kubernetes/kubelet` to include this line:
```conf ```conf
KUBELET_ARGS="--cluster-dns=10.254.0.10 --cluster-domain=kube.local --config=/etc/kubelet.d/" KUBELET_ARGS="--cluster-dns=10.254.0.10 --cluster-domain=kube.local --pod-manifest-path=/etc/kubelet.d/"
``` ```
Instructions for other distributions or Kubernetes installations may vary. Instructions for other distributions or Kubernetes installations may vary.
@ -64,11 +64,11 @@ For example, this is how to start a simple web server as a static pod:
## Pods created via HTTP ## Pods created via HTTP
Kubelet periodically downloads a file specified by `--manifest-url=<URL>` argument and interprets it as a json/yaml file with a pod definition. It works the same as `--config=<directory>`, i.e. it's reloaded every now and then and changes are applied to running static pods (see below). Kubelet periodically downloads a file specified by `--manifest-url=<URL>` argument and interprets it as a json/yaml file with a pod definition. It works the same as `--pod-manifest-path=<directory>`, i.e. it's reloaded every now and then and changes are applied to running static pods (see below).
## Behavior of static pods ## Behavior of static pods
When kubelet starts, it automatically starts all pods defined in directory specified in `--config=` or `--manifest-url=` arguments, i.e. our static-web. (It may take some time to pull nginx image, be patient…): When kubelet starts, it automatically starts all pods defined in directory specified in `--pod-manifest-path=` or `--manifest-url=` arguments, i.e. our static-web. (It may take some time to pull nginx image, be patient…):
```shell ```shell
[joe@my-node1 ~] $ docker ps [joe@my-node1 ~] $ docker ps

View File

@ -8,6 +8,7 @@ Use the following reference docs to understand the kubernetes REST API for vario
* extensions/v1beta1: [operations](/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](/docs/api-reference/extensions/v1beta1/definitions.html) * extensions/v1beta1: [operations](/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](/docs/api-reference/extensions/v1beta1/definitions.html)
* batch/v1: [operations](/docs/api-reference/batch/v1/operations.html), [model definitions](/docs/api-reference/batch/v1/definitions.html) * batch/v1: [operations](/docs/api-reference/batch/v1/operations.html), [model definitions](/docs/api-reference/batch/v1/definitions.html)
* autoscaling/v1: [operations](/docs/api-reference/autoscaling/v1/operations.html), [model definitions](/docs/api-reference/autoscaling/v1/definitions.html) * autoscaling/v1: [operations](/docs/api-reference/autoscaling/v1/operations.html), [model definitions](/docs/api-reference/autoscaling/v1/definitions.html)
* apps/v1beta1: [operations](/docs/api-reference/apps/v1beta1/operations.html), [model definitions](/docs/api-reference/apps/v1beta1/definitions.html)
<!-- BEGIN MUNGE: GENERATED_ANALYTICS --> <!-- BEGIN MUNGE: GENERATED_ANALYTICS -->

View File

@ -1,5 +1,7 @@
--- ---
title: Autoscaling API Definitions
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Autoscaling API Operations
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Batch API Definitions
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Batch API Operations
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Extensions API Definitions
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Extensions API Operations
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Kubernetes API Definitions
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -1,5 +1,7 @@
--- ---
title: Kubernetes API Operations
--- ---
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>

View File

@ -3,7 +3,7 @@ assignees:
- bgrant0607 - bgrant0607
- erictune - erictune
- lavalamp - lavalamp
title: Kubernetes API Overview
--- ---
Primary system and API concepts are documented in the [User guide](/docs/user-guide/). Primary system and API concepts are documented in the [User guide](/docs/user-guide/).
@ -24,11 +24,13 @@ In our experience, any system that is successful needs to grow and change as new
What constitutes a compatible change and how to change the API are detailed by the [API change document](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api_changes.md). What constitutes a compatible change and how to change the API are detailed by the [API change document](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api_changes.md).
## API Swagger definitions ## OpenAPI and Swagger definitions
Complete API details are documented using [Swagger v1.2](http://swagger.io/). The Kubernetes apiserver (aka "master") exposes an API that can be used to retrieve the Swagger Kubernetes API spec located at `/swaggerapi`. You can also enable a UI to browse the API documentation at `/swagger-ui` by passing the `--enable-swagger-ui=true` flag to apiserver. Complete API details are documented using [Swagger v1.2](http://swagger.io/) and [OpenAPI](https://www.openapis.org/). The Kubernetes apiserver (aka "master") exposes an API that can be used to retrieve the Swagger v1.2 Kubernetes API spec located at `/swaggerapi`. You can also enable a UI to browse the API documentation at `/swagger-ui` by passing the `--enable-swagger-ui=true` flag to apiserver.
We also host a version of the [latest API documentation](http://kubernetes.io/docs/api-reference/README/). This is updated with the latest release, so if you are using a different version of Kubernetes you will want to use the spec from your apiserver. We also host a version of the [latest v1.2 API documentation UI](http://kubernetes.io/kubernetes/third_party/swagger-ui/). This is updated with the latest release, so if you are using a different version of Kubernetes you will want to use the spec from your apiserver.
Staring kubernetes 1.4, OpenAPI spec is also available at `/swagger.json`. While we are transitioning from Swagger v1.2 to OpenAPI (aka Swagger v2.0), some of the tools such as kubectl and swagger-ui are still using v1.2 spec. OpenAPI spec is in Beta as of Kubernetes 1.5.
Kubernetes implements an alternative Protobuf based serialization format for the API that is primarily intended for intra-cluster communication, documented in the [design proposal](https://github.com/kubernetes/kubernetes/blob/{{ page.githubbranch }}/docs/proposals/protobuf.md) and the IDL files for each schema are located in the Go packages that define the API objects. Kubernetes implements an alternative Protobuf based serialization format for the API that is primarily intended for intra-cluster communication, documented in the [design proposal](https://github.com/kubernetes/kubernetes/blob/{{ page.githubbranch }}/docs/proposals/protobuf.md) and the IDL files for each schema are located in the Go packages that define the API objects.

View File

@ -7,6 +7,7 @@ assignees:
- janetkuo - janetkuo
- kow3ns - kow3ns
- smarterclayton - smarterclayton
title: StatefulSets
--- ---
{% capture overview %} {% capture overview %}
@ -31,12 +32,12 @@ following.
* Ordered, graceful deployment and scaling. * Ordered, graceful deployment and scaling.
* Ordered, graceful deletion and termination. * Ordered, graceful deletion and termination.
In the above, stable is synonymous with persistent across Pod (re) schedulings. In the above, stable is synonymous with persistence across Pod (re)schedulings.
If an application doesn't require any stable identifiers or ordered deployment, If an application doesn't require any stable identifiers or ordered deployment,
deletion, or scaling, you should deploy your application with a controller that deletion, or scaling, you should deploy your application with a controller that
provides a set of stateless replicas. Such controllers, such as provides a set of stateless replicas. Controllers such as
[Deployment](/docs/user-guide/deployments/) or [Deployment](/docs/user-guide/deployments/) or
[ReplicaSet](/docs/user-guide/replicasets/) may be better suited to your needs. [ReplicaSet](/docs/user-guide/replicasets/) may be better suited to your stateless needs.
### Limitations ### Limitations
* StatefulSet is a beta resource, not available in any Kubernetes release prior to 1.5. * StatefulSet is a beta resource, not available in any Kubernetes release prior to 1.5.
@ -51,7 +52,7 @@ The example below demonstrates the components of a StatefulSet.
* A Headless Service, named nginx, is used to control the network domain. * A Headless Service, named nginx, is used to control the network domain.
* The StatefulSet, named web, has a Spec that indicates that 3 replicas of the nginx container will be launched in unique Pods. * The StatefulSet, named web, has a Spec that indicates that 3 replicas of the nginx container will be launched in unique Pods.
* The volumeClaimTemplates, will provide stable storage using [PersistentVolumes](/docs/user-guide/volumes/) provisioned by a * The volumeClaimTemplates will provide stable storage using [PersistentVolumes](/docs/user-guide/volumes/) provisioned by a
PersistentVolume Provisioner. PersistentVolume Provisioner.
```yaml ```yaml
@ -140,11 +141,10 @@ Note that Cluster Domain will be set to `cluster.local` unless
__Stable Storage__ __Stable Storage__
Kubernetes creates one [PersistentVolumes](/docs/user-guide/volumes/) for each Kubernetes creates one [PersistentVolume](/docs/user-guide/volumes/) for each
VolumeClaimTemplate, as specified in the StatefulSet's volumeClaimTemplates field VolumeClaimTemplate. In the nginx example above, each Pod will receive a single PersistentVolume
In the example above, each Pod will receive a single PersistentVolume with a storage with a storage class of `anything` and 1 Gib of provisioned storage. When a Pod is (re)scheduled
class of `anything` and 1 Gib of provisioned storage. When a Pod is (re) scheduled onto onto a node, its `volumeMounts` mount the PersistentVolumes associated with its
a node, its `volumeMounts` mount the PersistentVolumes associated with its
PersistentVolume Claims. Note that, the PersistentVolumes associated with the PersistentVolume Claims. Note that, the PersistentVolumes associated with the
Pods' PersistentVolume Claims are not deleted when the Pods, or StatefulSet are deleted. Pods' PersistentVolume Claims are not deleted when the Pods, or StatefulSet are deleted.
This must be done manually. This must be done manually.
@ -156,9 +156,9 @@ This must be done manually.
* Before a scaling operation is applied to a Pod, all of its predecessors must be Running and Ready. * Before a scaling operation is applied to a Pod, all of its predecessors must be Running and Ready.
* Before a Pod is terminated, all of its successors must be completely shutdown. * Before a Pod is terminated, all of its successors must be completely shutdown.
The StatefulSet should not specify a `pod.Spec.TerminationGracePeriodSeconds` of 0. The practice of setting a `pod.Spec.TerminationGracePeriodSeconds` of 0 seconds is unsafe and strongly discouraged. For further explanation, please refer to [force deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/#deleting-pods). The StatefulSet should not specify a `pod.Spec.TerminationGracePeriodSeconds` of 0. This practice is unsafe and strongly discouraged. For further explanation, please refer to [force deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/#deleting-pods).
When the web example above is created, three Pods will be deployed in the order When the nginx example above is created, three Pods will be deployed in the order
web-0, web-1, web-2. web-1 will not be deployed before web-0 is web-0, web-1, web-2. web-1 will not be deployed before web-0 is
[Running and Ready](/docs/user-guide/pod-states), and web-2 will not be deployed until [Running and Ready](/docs/user-guide/pod-states), and web-2 will not be deployed until
web-1 is Running and Ready. If web-0 should fail, after web-1 is Running and Ready, but before web-1 is Running and Ready. If web-0 should fail, after web-1 is Running and Ready, but before

View File

@ -1,4 +1,5 @@
--- ---
title: Concepts
--- ---
The Concepts section of the Kubernetes documentation is a work in progress. The Concepts section of the Kubernetes documentation is a work in progress.

View File

@ -1,4 +1,5 @@
--- ---
title: Annotations
--- ---
{% capture overview %} {% capture overview %}

View File

@ -1,4 +1,5 @@
--- ---
title: Creating a Documentation Pull Request
--- ---
{% capture overview %} {% capture overview %}

View File

@ -1,7 +1,8 @@
--- ---
redirect_from: redirect_from:
- /docs/templatedemos/ - "/docs/templatedemos/"
- /docs/templatedemos.html - "/docs/templatedemos.html"
title: Using Page Templates
--- ---
<!--<html> <!--<html>

View File

@ -1,4 +1,5 @@
--- ---
title: Staging Your Documentation Changes
--- ---
{% capture overview %} {% capture overview %}

View File

@ -1,4 +1,5 @@
--- ---
title: Documentation Style Guide
--- ---
{% capture overview %} {% capture overview %}

View File

@ -1,4 +1,5 @@
--- ---
title: Writing a New Topic
--- ---
{% capture overview %} {% capture overview %}
@ -121,7 +122,7 @@ image format is SVG.
{% capture whatsnext %} {% capture whatsnext %}
* Learn about [using page templates](/docs/contribute/page-templates/). * Learn about [using page templates](/docs/contribute/page-templates/).
* Learn about [staging your changes](/docs/contribute/stage-documentation-changes). * Learn about [staging your changes](/docs/contribute/stage-documentation-changes).
* Learn about [creating a pull request](/docs/contribute/write-new-topic). * Learn about [creating a pull request](/docs/contribute/create-pull-request/).
{% endcapture %} {% endcapture %}
{% include templates/task.md %} {% include templates/task.md %}

View File

@ -1,5 +1,7 @@
--- ---
title: Federation API
--- ---
# API Reference # API Reference
Federation API server supports the following group versions: Federation API server supports the following group versions:

View File

@ -1,6 +1,7 @@
--- ---
assignees: assignees:
- pwittrock - pwittrock
title: Deprecated Alternatives
--- ---
# *Stop. These guides are superseded by [Minikube](../minikube/). They are only listed here for completeness.* # *Stop. These guides are superseded by [Minikube](../minikube/). They are only listed here for completeness.*

View File

@ -3,7 +3,7 @@ assignees:
- justinsb - justinsb
- lavalamp - lavalamp
- clove - clove
title: Running Kubernetes on AWS EC2
--- ---
* TOC * TOC

View File

@ -1,12 +1,30 @@
--- ---
assignees: assignees:
- colemickens - colemickens
- jeffmendoza - brendandburns
title: Running Kubernetes on Azure
--- ---
The recommended approach for deploying a Kubernetes 1.4 cluster on Azure is the ## Azure Container Service
[`kubernetes-anywhere`](https://github.com/kubernetes/kubernetes-anywhere) project.
You will want to take a look at the The [Azure Container Service](https://azure.microsoft.com/en-us/services/container-service/) offers simple
[Azure Getting Started Guide](https://github.com/kubernetes/kubernetes-anywhere/blob/master/phase1/azure/README.md). deployments of one of three open source orchestrators: DC/OS, Swarm, and Kubernetes clusters.
For an example of deploying a Kubernetes cluster onto Azure via the Azure Container Service:
**[Microsoft Azure Container Service - Kubernetes Walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough)**
## Custom Deployments: ACS-Engine
The core of the Azure Container Service is **open source** and available on GitHub for the community
to use and contribute to: **[ACS-Engine](https://github.com/Azure/acs-engine)**.
ACS-Engine is a good choice if you need to make customizations to the deployment beyond what the Azure Container
Service officially supports. These customizations include deploying into existing virtual networks, utilizing multiple
agent pools, and more. Some community contributions to ACS-Engine may even become features of the Azure Container Service.
The input to ACS-Engine is similar to the ARM template syntax used to deploy a cluster directly with the Azure Container Service.
The resulting output is an Azure Resource Manager Template that can then be checked into source control and can then be used
to deploy Kubernetes clusters into Azure.
You can get started quickly by following the **[ACS-Engine Kubernetes Walkthrough](https://github.com/Azure/acs-engine/blob/master/docs/kubernetes.md)**.

View File

@ -2,7 +2,7 @@
assignees: assignees:
- david-mcmahon - david-mcmahon
- jbeda - jbeda
title: Downloading or Building Kubernetes
--- ---
You can either build a release from sources or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest a pre-built release. You can either build a release from sources or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest a pre-built release.

View File

@ -2,7 +2,7 @@
assignees: assignees:
- lavalamp - lavalamp
- thockin - thockin
title: CentOS
--- ---
* TOC * TOC

View File

@ -1,6 +1,7 @@
--- ---
title: Running Kubernetes on CenturyLink Cloud
---
---
* TOC * TOC
{: toc} {: toc}

View File

@ -2,7 +2,7 @@
assignees: assignees:
- lavalamp - lavalamp
- thockin - thockin
title: Cloudstack
--- ---
CloudStack is a software to build public and private clouds based on hardware virtualization principles (traditional IaaS). To deploy Kubernetes on CloudStack there are several possibilities depending on the Cloud being used and what images are made available. [Exoscale](http://exoscale.ch) for instance makes a [CoreOS](http://coreos.com) template available, therefore instructions to deploy Kubernetes on coreOS can be used. CloudStack also has a vagrant plugin available, hence Vagrant could be used to deploy Kubernetes either using the existing shell provisioner or using new Salt based recipes. CloudStack is a software to build public and private clouds based on hardware virtualization principles (traditional IaaS). To deploy Kubernetes on CloudStack there are several possibilities depending on the Cloud being used and what images are made available. [Exoscale](http://exoscale.ch) for instance makes a [CoreOS](http://coreos.com) template available, therefore instructions to deploy Kubernetes on coreOS can be used. CloudStack also has a vagrant plugin available, hence Vagrant could be used to deploy Kubernetes either using the existing shell provisioner or using new Salt based recipes.

View File

@ -1 +0,0 @@
node_modules/

View File

@ -1,335 +0,0 @@
## This file is used as input to deployment script, which amends it as needed.
## More specifically, we need to add environment files for as many nodes as we
## are going to deploy.
write_files:
- path: /opt/bin/curl-retry.sh
permissions: '0755'
owner: root
content: |
#!/bin/sh -x
until curl $@
do sleep 1
done
coreos:
update:
group: stable
reboot-strategy: off
units:
- name: systemd-networkd-wait-online.service
drop-ins:
- name: 50-check-github-is-reachable.conf
content: |
[Service]
ExecStart=/bin/sh -x -c \
'until curl --silent --fail https://status.github.com/api/status.json | grep -q \"good\"; do sleep 2; done'
- name: weave-network.target
enable: true
content: |
[Unit]
Description=Weave Network Setup Complete
Documentation=man:systemd.special(7)
RefuseManualStart=no
After=network-online.target
[Install]
WantedBy=multi-user.target
WantedBy=kubernetes-master.target
WantedBy=kubernetes-node.target
- name: kubernetes-master.target
enable: true
command: start
content: |
[Unit]
Description=Kubernetes Cluster Master
Documentation=http://kubernetes.io/
RefuseManualStart=no
After=weave-network.target
Requires=weave-network.target
ConditionHost=kube-00
Wants=kube-apiserver.service
Wants=kube-scheduler.service
Wants=kube-controller-manager.service
Wants=kube-proxy.service
[Install]
WantedBy=multi-user.target
- name: kubernetes-node.target
enable: true
command: start
content: |
[Unit]
Description=Kubernetes Cluster Node
Documentation=http://kubernetes.io/
RefuseManualStart=no
After=weave-network.target
Requires=weave-network.target
ConditionHost=!kube-00
Wants=kube-proxy.service
Wants=kubelet.service
[Install]
WantedBy=multi-user.target
- name: 10-weave.network
runtime: false
content: |
[Match]
Type=bridge
Name=weave*
[Network]
- name: install-weave.service
enable: true
content: |
[Unit]
After=network-online.target
After=docker.service
Before=weave.service
Description=Install Weave
Documentation=http://docs.weave.works/
Requires=network-online.target
[Service]
EnvironmentFile=-/etc/weave.%H.env
EnvironmentFile=-/etc/weave.env
Type=oneshot
RemainAfterExit=yes
TimeoutStartSec=0
ExecStartPre=/bin/mkdir -p /opt/bin/
ExecStartPre=/opt/bin/curl-retry.sh \
--silent \
--location \
git.io/weave \
--output /opt/bin/weave
ExecStartPre=/usr/bin/chmod +x /opt/bin/weave
ExecStart=/opt/bin/weave setup
[Install]
WantedBy=weave-network.target
WantedBy=weave.service
- name: weaveproxy.service
enable: true
content: |
[Unit]
After=install-weave.service
After=docker.service
Description=Weave proxy for Docker API
Documentation=http://docs.weave.works/
Requires=docker.service
Requires=install-weave.service
[Service]
EnvironmentFile=-/etc/weave.%H.env
EnvironmentFile=-/etc/weave.env
ExecStartPre=/opt/bin/weave launch-proxy --rewrite-inspect --without-dns
ExecStart=/usr/bin/docker attach weaveproxy
Restart=on-failure
ExecStop=/opt/bin/weave stop-proxy
[Install]
WantedBy=weave-network.target
- name: weave.service
enable: true
content: |
[Unit]
After=install-weave.service
After=docker.service
Description=Weave Network Router
Documentation=http://docs.weave.works/
Requires=docker.service
Requires=install-weave.service
[Service]
TimeoutStartSec=0
EnvironmentFile=-/etc/weave.%H.env
EnvironmentFile=-/etc/weave.env
ExecStartPre=/opt/bin/weave launch-router $WEAVE_PEERS
ExecStart=/usr/bin/docker attach weave
Restart=on-failure
ExecStop=/opt/bin/weave stop-router
[Install]
WantedBy=weave-network.target
- name: weave-expose.service
enable: true
content: |
[Unit]
After=install-weave.service
After=weave.service
After=docker.service
Documentation=http://docs.weave.works/
Requires=docker.service
Requires=install-weave.service
Requires=weave.service
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutStartSec=0
EnvironmentFile=-/etc/weave.%H.env
EnvironmentFile=-/etc/weave.env
ExecStart=/opt/bin/weave expose
ExecStop=/opt/bin/weave hide
[Install]
WantedBy=weave-network.target
- name: install-kubernetes.service
enable: true
content: |
[Unit]
After=network-online.target
Before=kube-apiserver.service
Before=kube-controller-manager.service
Before=kubelet.service
Before=kube-proxy.service
Description=Download Kubernetes Binaries
Documentation=http://kubernetes.io/
Requires=network-online.target
[Service]
Environment=KUBE_RELEASE_TARBALL=https://github.com/kubernetes/kubernetes/releases/download/v1.2.2/kubernetes.tar.gz
ExecStartPre=/bin/mkdir -p /opt/
ExecStart=/opt/bin/curl-retry.sh --silent --location $KUBE_RELEASE_TARBALL --output /tmp/kubernetes.tgz
ExecStart=/bin/tar xzvf /tmp/kubernetes.tgz -C /tmp/
ExecStart=/bin/tar xzvf /tmp/kubernetes/server/kubernetes-server-linux-amd64.tar.gz -C /opt
ExecStartPost=/bin/chmod o+rx -R /opt/kubernetes
ExecStartPost=/bin/ln -s /opt/kubernetes/server/bin/kubectl /opt/bin/
ExecStartPost=/bin/mv /tmp/kubernetes/examples/guestbook /home/core/guestbook-example
ExecStartPost=/bin/chown core. -R /home/core/guestbook-example
ExecStartPost=/bin/rm -rf /tmp/kubernetes
ExecStartPost=/bin/sed 's/# type: LoadBalancer/type: NodePort/' -i /home/core/guestbook-example/frontend-service.yaml
RemainAfterExit=yes
Type=oneshot
[Install]
WantedBy=kubernetes-master.target
WantedBy=kubernetes-node.target
- name: kube-apiserver.service
enable: true
content: |
[Unit]
After=install-kubernetes.service
Before=kube-controller-manager.service
Before=kube-scheduler.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kube-apiserver
Description=Kubernetes API Server
Documentation=http://kubernetes.io/
Wants=install-kubernetes.service
ConditionHost=kube-00
[Service]
ExecStart=/opt/kubernetes/server/bin/kube-apiserver \
--insecure-bind-address=0.0.0.0 \
--advertise-address=$public_ipv4 \
--insecure-port=8080 \
$ETCD_SERVERS \
--service-cluster-ip-range=10.16.0.0/12 \
--cloud-provider= \
--logtostderr=true
Restart=always
RestartSec=10
[Install]
WantedBy=kubernetes-master.target
- name: kube-scheduler.service
enable: true
content: |
[Unit]
After=kube-apiserver.service
After=install-kubernetes.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kube-scheduler
Description=Kubernetes Scheduler
Documentation=http://kubernetes.io/
Wants=kube-apiserver.service
ConditionHost=kube-00
[Service]
ExecStart=/opt/kubernetes/server/bin/kube-scheduler \
--logtostderr=true \
--master=127.0.0.1:8080
Restart=always
RestartSec=10
[Install]
WantedBy=kubernetes-master.target
- name: kube-controller-manager.service
enable: true
content: |
[Unit]
After=install-kubernetes.service
After=kube-apiserver.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kube-controller-manager
Description=Kubernetes Controller Manager
Documentation=http://kubernetes.io/
Wants=kube-apiserver.service
Wants=install-kubernetes.service
ConditionHost=kube-00
[Service]
ExecStart=/opt/kubernetes/server/bin/kube-controller-manager \
--master=127.0.0.1:8080 \
--logtostderr=true
Restart=always
RestartSec=10
[Install]
WantedBy=kubernetes-master.target
- name: kubelet.service
enable: true
content: |
[Unit]
After=install-kubernetes.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kubelet
Description=Kubernetes Kubelet
Documentation=http://kubernetes.io/
Wants=install-kubernetes.service
ConditionHost=!kube-00
[Service]
ExecStartPre=/bin/mkdir -p /etc/kubernetes/manifests/
ExecStart=/opt/kubernetes/server/bin/kubelet \
--docker-endpoint=unix://var/run/weave/weave.sock \
--address=0.0.0.0 \
--port=10250 \
--hostname-override=%H \
--api-servers=http://kube-00:8080 \
--logtostderr=true \
--cluster-dns=10.16.0.3 \
--cluster-domain=kube.local \
--config=/etc/kubernetes/manifests/
Restart=always
RestartSec=10
[Install]
WantedBy=kubernetes-node.target
- name: kube-proxy.service
enable: true
content: |
[Unit]
After=install-kubernetes.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kube-proxy
Description=Kubernetes Proxy
Documentation=http://kubernetes.io/
Wants=install-kubernetes.service
[Service]
ExecStart=/opt/kubernetes/server/bin/kube-proxy \
--master=http://kube-00:8080 \
--logtostderr=true
Restart=always
RestartSec=10
[Install]
WantedBy=kubernetes-master.target
WantedBy=kubernetes-node.target
- name: kube-create-addons.service
enable: true
content: |
[Unit]
After=install-kubernetes.service
ConditionFileIsExecutable=/opt/kubernetes/server/bin/kubectl
ConditionPathIsDirectory=/etc/kubernetes/addons/
ConditionHost=kube-00
Description=Kubernetes Addons
Documentation=http://kubernetes.io/
Wants=install-kubernetes.service
Wants=kube-apiserver.service
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/bin/bash -c 'until /opt/kubernetes/server/bin/kubectl create -f /etc/kubernetes/addons/; do sleep 2; done'
SuccessExitStatus=1
[Install]
WantedBy=kubernetes-master.target

View File

@ -1,246 +0,0 @@
---
---
* TOC
{:toc}
In this guide I will demonstrate how to deploy a Kubernetes cluster to Azure cloud. You will be using CoreOS with Weave, which implements simple and secure networking, in a transparent, yet robust way. The purpose of this guide is to provide an out-of-the-box implementation that can ultimately be taken into production with little change. It will demonstrate how to provision a dedicated Kubernetes master and etcd nodes, and show how to scale the cluster with ease.
### Prerequisites
1. You need an Azure account.
## Let's go!
To get started, you need to checkout the code:
```shell
https://github.com/weaveworks-guides/weave-kubernetes-coreos-azure
cd weave-kubernetes-coreos-azure
```
You will need to have [Node.js installed](http://nodejs.org/download/) on you machine. If you have previously used Azure CLI, you should have it already.
First, you need to install some of the dependencies with
```shell
npm install
```
Now, all you need to do is:
```shell
./azure-login.js -u <your_username>
./create-kubernetes-cluster.js
```
This script will provision a cluster suitable for production use, where there is a ring of 3 dedicated etcd nodes: 1 kubernetes master and 2 kubernetes nodes. The `kube-00` VM will be the master, your work loads are only to be deployed on the nodes, `kube-01` and `kube-02`. Initially, all VMs are single-core, to ensure a user of the free tier can reproduce it without paying extra. I will show how to add more bigger VMs later.
If you need to pass Azure specific options for the creation script you can do this via additional environment variables e.g.
```shell
AZ_SUBSCRIPTION=<id> AZ_LOCATION="East US" ./create-kubernetes-cluster.js
# or
AZ_VM_COREOS_CHANNEL=beta ./create-kubernetes-cluster.js
```
![VMs in Azure](/images/docs/initial_cluster.png)
Once the creation of Azure VMs has finished, you should see the following:
```shell
...
azure_wrapper/info: Saved SSH config, you can use it like so: `ssh -F ./output/kube_1c1496016083b4_ssh_conf <hostname>`
azure_wrapper/info: The hosts in this deployment are:
[ 'etcd-00', 'etcd-01', 'etcd-02', 'kube-00', 'kube-01', 'kube-02' ]
azure_wrapper/info: Saved state into `./output/kube_1c1496016083b4_deployment.yml`
```
Let's login to the master node like so:
```shell
ssh -F ./output/kube_1c1496016083b4_ssh_conf kube-00
```
> Note: config file name will be different, make sure to use the one you see.
Check there are 2 nodes in the cluster:
```shell
core@kube-00 ~ $ kubectl get nodes
NAME LABELS STATUS
kube-01 kubernetes.io/hostname=kube-01 Ready
kube-02 kubernetes.io/hostname=kube-02 Ready
```
## Deploying the workload
Let's follow the Guestbook example now:
```shell
kubectl create -f ~/guestbook-example
```
You need to wait for the pods to get deployed, run the following and wait for `STATUS` to change from `Pending` to `Running`.
```shell
kubectl get pods --watch
```
> Note: the most time it will spend downloading Docker container images on each of the nodes.
Eventually you should see:
```shell
NAME READY STATUS RESTARTS AGE
frontend-0a9xi 1/1 Running 0 4m
frontend-4wahe 1/1 Running 0 4m
frontend-6l36j 1/1 Running 0 4m
redis-master-talmr 1/1 Running 0 4m
redis-slave-12zfd 1/1 Running 0 4m
redis-slave-3nbce 1/1 Running 0 4m
```
## Scaling
Two single-core nodes are certainly not enough for a production system of today. Let's scale the cluster by adding a couple of bigger nodes.
You will need to open another terminal window on your machine and go to the same working directory (e.g. `~/Workspace/kubernetes/docs/getting-started-guides/coreos/azure/`).
First, lets set the size of new VMs:
```shell
export AZ_VM_SIZE=Large
```
Now, run scale script with state file of the previous deployment and number of nodes to add:
```shell
core@kube-00 ~ $ ./scale-kubernetes-cluster.js ./output/kube_1c1496016083b4_deployment.yml 2
...
azure_wrapper/info: Saved SSH config, you can use it like so: `ssh -F ./output/kube_8f984af944f572_ssh_conf <hostname>`
azure_wrapper/info: The hosts in this deployment are:
[ 'etcd-00',
'etcd-01',
'etcd-02',
'kube-00',
'kube-01',
'kube-02',
'kube-03',
'kube-04' ]
azure_wrapper/info: Saved state into `./output/kube_8f984af944f572_deployment.yml`
```
> Note: this step has created new files in `./output`.
Back on `kube-00`:
```shell
core@kube-00 ~ $ kubectl get nodes
NAME LABELS STATUS
kube-01 kubernetes.io/hostname=kube-01 Ready
kube-02 kubernetes.io/hostname=kube-02 Ready
kube-03 kubernetes.io/hostname=kube-03 Ready
kube-04 kubernetes.io/hostname=kube-04 Ready
```
You can see that two more nodes joined happily. Let's scale the number of Guestbook instances now.
First, double-check how many replication controllers there are:
```shell
core@kube-00 ~ $ kubectl get rc
ONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
frontend php-redis kubernetes/example-guestbook-php-redis:v2 name=frontend 3
redis-master master redis name=redis-master 1
redis-slave worker kubernetes/redis-slave:v2 name=redis-slave 2
```
As there are 4 nodes, let's scale proportionally:
```shell
core@kube-00 ~ $ kubectl scale --replicas=4 rc redis-slave
scaled
core@kube-00 ~ $ kubectl scale --replicas=4 rc frontend
scaled
```
Check what you have now:
```shell
core@kube-00 ~ $ kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
frontend php-redis kubernetes/example-guestbook-php-redis:v2 name=frontend 4
redis-master master redis name=redis-master 1
redis-slave worker kubernetes/redis-slave:v2 name=redis-slave 4
```
You now will have more instances of front-end Guestbook apps and Redis slaves; and, if you look up all pods labeled `name=frontend`, you should see one running on each node.
```shell
core@kube-00 ~/guestbook-example $ kubectl get pods -l name=frontend
NAME READY STATUS RESTARTS AGE
frontend-0a9xi 1/1 Running 0 22m
frontend-4wahe 1/1 Running 0 22m
frontend-6l36j 1/1 Running 0 22m
frontend-z9oxo 1/1 Running 0 41s
```
## Exposing the app to the outside world
There is no native Azure load-balancer support in Kubernetes 1.0, however here is how you can expose the Guestbook app to the Internet.
```shell
./expose_guestbook_app_port.sh ./output/kube_1c1496016083b4_ssh_conf
Guestbook app is on port 31605, will map it to port 80 on kube-00
info: Executing command vm endpoint create
+ Getting virtual machines
+ Reading network configuration
+ Updating network configuration
info: vm endpoint create command OK
info: Executing command vm endpoint show
+ Getting virtual machines
data: Name : tcp-80-31605
data: Local port : 31605
data: Protcol : tcp
data: Virtual IP Address : 137.117.156.164
data: Direct server return : Disabled
info: vm endpoint show command OK
```
You then should be able to access it from anywhere via the Azure virtual IP for `kube-00` displayed above, i.e. `http://137.117.156.164/` in my case.
## Next steps
You now have a full-blown cluster running in Azure, congrats!
You should probably try deploy other [example apps](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/examples/) or write your own ;)
## Tear down...
If you don't wish care about the Azure bill, you can tear down the cluster. It's easy to redeploy it, as you can see.
```shell
./destroy-cluster.js ./output/kube_8f984af944f572_deployment.yml
```
> Note: make sure to use the _latest state file_, as after scaling there is a new one.
By the way, with the scripts shown, you can deploy multiple clusters, if you like :)
## Support Level
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
Azure | CoreOS | CoreOS | Weave | [docs](/docs/getting-started-guides/coreos/azure/) | | Community ([@errordeveloper](https://github.com/errordeveloper), [@squillace](https://github.com/squillace), [@chanezon](https://github.com/chanezon), [@crossorigin](https://github.com/crossorigin))
For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart.
## Further reading
Please see the [Kubernetes docs](/docs/) for more details on administering
and using a Kubernetes cluster

View File

@ -1,19 +0,0 @@
{
"name": "coreos-azure-weave",
"version": "1.0.0",
"description": "Small utility to bring up a woven CoreOS cluster",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Ilya Dmitrichenko <errordeveloper@gmail.com>",
"license": "Apache 2.0",
"dependencies": {
"azure-cli": "^0.10.1",
"colors": "^1.0.3",
"js-yaml": "^3.2.5",
"openssl-wrapper": "^0.2.1",
"underscore": "^1.7.0",
"underscore.string": "^3.0.2"
}
}

View File

@ -2,7 +2,7 @@
assignees: assignees:
- erictune - erictune
- thockin - thockin
title: Offline
--- ---
Deploy a CoreOS running Kubernetes environment. This particular guide is made to help those in an OFFLINE system, wither for testing a POC before the real deal, or you are restricted to be totally offline for your applications. Deploy a CoreOS running Kubernetes environment. This particular guide is made to help those in an OFFLINE system, wither for testing a POC before the real deal, or you are restricted to be totally offline for your applications.

View File

@ -1,5 +1,5 @@
--- ---
title: CoreOS on AWS or GCE
--- ---
* TOC * TOC
@ -71,12 +71,6 @@ Guide to running a single master, multi-worker cluster controlled by an OS X men
<hr/> <hr/>
[**Resizable multi-node cluster on Azure with Weave**](/docs/getting-started-guides/coreos/azure/)
Guide to running an HA etcd cluster with a single master on Azure. Uses the Azure node.js CLI to resize the cluster.
<hr/>
[**Multi-node cluster using cloud-config, CoreOS and VMware ESXi**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes) [**Multi-node cluster using cloud-config, CoreOS and VMware ESXi**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes)
Configure a single master, single worker cluster on VMware ESXi. Configure a single master, single worker cluster on VMware ESXi.

View File

@ -1,7 +1,7 @@
--- ---
assignees: assignees:
- karlkfi - karlkfi
title: DCOS
--- ---
This guide will walk you through installing [Kubernetes-Mesos](https://github.com/mesosphere/kubernetes-mesos) on [Datacenter Operating System (DCOS)](https://mesosphere.com/product/) with the [DCOS CLI](https://github.com/mesosphere/dcos-cli) and operating Kubernetes with the [DCOS Kubectl plugin](https://github.com/mesosphere/dcos-kubectl). This guide will walk you through installing [Kubernetes-Mesos](https://github.com/mesosphere/kubernetes-mesos) on [Datacenter Operating System (DCOS)](https://mesosphere.com/product/) with the [DCOS CLI](https://github.com/mesosphere/dcos-cli) and operating Kubernetes with the [DCOS Kubectl plugin](https://github.com/mesosphere/dcos-kubectl).

Some files were not shown because too many files have changed in this diff Show More