Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1274670dea | |||
| 37e1b9819c | |||
| 95002f4314 | |||
| a5d01ae6b6 | |||
| fd975899a6 | |||
| d00396ef79 | |||
| 68a6b91536 | |||
| 157fc38669 | |||
| 748fcec13a | |||
| 7b662446b3 | |||
| 377e7e2364 | |||
| 0bc73b8e9b | |||
| 4e995f55a9 | |||
| 571d2324db | |||
| 5524edba2a | |||
| cf14a29b53 |
@@ -1,6 +0,0 @@
|
||||
> NOTE: Please check the “Allow edits from maintainers” box (see image below) to
|
||||
> [allow reviewers to fix problems](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) on your patch and speed up the review process.
|
||||
>
|
||||
> Please delete this note before submitting the pull request.
|
||||
|
||||

|
||||
-19
@@ -5,22 +5,3 @@ _site/**
|
||||
.sass-cache/**
|
||||
CNAME
|
||||
.travis.yml
|
||||
.idea/
|
||||
|
||||
# Vim ignore
|
||||
# source: https://github.com/github/gitignore/blob/master/Global/Vim.gitignore
|
||||
|
||||
# swap
|
||||
[._]*.s[a-v][a-z]
|
||||
[._]*.sw[a-p]
|
||||
[._]s[a-v][a-z]
|
||||
[._]sw[a-p]
|
||||
# session
|
||||
Session.vim
|
||||
# temporary
|
||||
.netrwhist
|
||||
*~
|
||||
# auto-generated tag files
|
||||
tags
|
||||
|
||||
kubernetes.github.io.iml
|
||||
|
||||
@@ -19,11 +19,6 @@ install:
|
||||
- git clone --depth=50 --branch=master https://github.com/kubernetes/md-check $HOME/gopath/src/k8s.io/md-check
|
||||
- go get -t -v k8s.io/md-check
|
||||
|
||||
# (3) Fetch mungedocs
|
||||
- go get -v k8s.io/kubernetes/cmd/mungedocs
|
||||
|
||||
script:
|
||||
- go test -v k8s.io/kubernetes.github.io/test
|
||||
- $GOPATH/bin/md-check --root-dir=$HOME/gopath/src/k8s.io/kubernetes.github.io
|
||||
- ./verify-docs-format.sh
|
||||
- $GOPATH/bin/mungedocs --verbose --verify --upstream=origin --root-dir=$HOME/gopath/src/k8s.io/kubernetes.github.io/docs/ --repo-root=$HOME/gopath/src/k8s.io/kubernetes.github.io --skip-munges=remove-whitespace,blank-lines-surround-preformatted,header-lines,sync-examples,analytics,analytics,kubectl-dash-f,table-of-contents,md-links,kubectl-dash-f
|
||||
|
||||
@@ -3,7 +3,6 @@ layout: docwithnav
|
||||
title: 404 Error!
|
||||
permalink: /404.html
|
||||
no_canonical: true
|
||||
sitemap: false
|
||||
---
|
||||
|
||||
<script src="/js/redirects.js"></script>
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ The [Kubernetes SIG Docs Discussion Group](https://groups.google.com/forum/#!for
|
||||
|
||||
### Style Guides and Templates
|
||||
|
||||
Before submitting a pull request to create new content, please review the [Kubernetes.io style guide](http://kubernetes.io/docs/home/contribute/style-guide/) and follow the [instructions for using page templates](http://kubernetes.io/docs/home/contribute/page-templates/).
|
||||
Before submitting a pull request to create new content, please review the [Kubernetes.io style guide](http://kubernetes.io/docs/contribute/style-guide/) and follow the [instructions for using page templates](http://kubernetes.io/docs/contribute/page-templates/).
|
||||
|
||||
|
||||
## Contributing to Documentation
|
||||
@@ -33,4 +33,4 @@ Note that code issues should be filed against the main kubernetes repository, wh
|
||||
|
||||
### Submitting Documentation Pull Requests
|
||||
|
||||
If you're fixing an issue in the existing documentation, you should submit a PR against the master branch. Follow [these instructions to create a documentation pull request against the kubernetes.io repository](http://kubernetes.io/docs/home/contribute/create-pull-request/).
|
||||
If you’re fixing an issue in the existing documentation, you should submit a PR against the master branch. Follow [these instructions to create a documentation pull request against the kubernetes.io repository](http://kubernetes.io/docs/contribute/create-pull-request/).
|
||||
|
||||
@@ -1,4 +1,20 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "github-pages", group: :jekyll_plugins
|
||||
gem "jekyll-include-cache", "~> 0.1"
|
||||
gem "jekyll", "3.2.1"
|
||||
gem "jekyll-sass-converter", "1.3.0"
|
||||
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"
|
||||
|
||||
+41
-125
@@ -7,75 +7,23 @@ GEM
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
addressable (2.5.0)
|
||||
public_suffix (~> 2.0, >= 2.0.2)
|
||||
addressable (2.4.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.12.2)
|
||||
coffee-script-source (1.10.0)
|
||||
colorator (1.1.0)
|
||||
ethon (0.10.1)
|
||||
ffi (>= 1.3.0)
|
||||
execjs (2.7.0)
|
||||
faraday (0.10.0)
|
||||
faraday (0.9.2)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.14)
|
||||
forwardable-extended (2.6.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)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
i18n (0.7.0)
|
||||
jekyll (3.3.1)
|
||||
addressable (~> 2.4)
|
||||
jekyll (3.2.1)
|
||||
colorator (~> 1.0)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 1.1)
|
||||
@@ -85,69 +33,26 @@ GEM
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 1.7)
|
||||
safe_yaml (~> 1.0)
|
||||
jekyll-avatar (0.4.2)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-coffeescript (1.0.1)
|
||||
coffee-script (~> 2.2)
|
||||
jekyll-default-layout (0.1.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-feed (0.8.0)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-feed (0.5.1)
|
||||
jekyll-gist (1.4.0)
|
||||
octokit (~> 4.2)
|
||||
jekyll-github-metadata (2.2.0)
|
||||
jekyll-github-metadata (2.0.2)
|
||||
jekyll (~> 3.1)
|
||||
octokit (~> 4.0, != 4.4.0)
|
||||
jekyll-include-cache (0.1.0)
|
||||
jekyll (~> 3.3)
|
||||
octokit (~> 4.0)
|
||||
jekyll-mentions (1.2.0)
|
||||
activesupport (~> 4.0)
|
||||
html-pipeline (~> 2.3)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-optional-front-matter (0.1.2)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-readme-index (0.0.3)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-redirect-from (0.11.0)
|
||||
jekyll (>= 2.0)
|
||||
jekyll-relative-links (0.2.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.3.0)
|
||||
sass (~> 3.2)
|
||||
jekyll-seo-tag (2.1.0)
|
||||
jekyll (~> 3.3)
|
||||
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-seo-tag (2.0.0)
|
||||
jekyll (~> 3.1)
|
||||
jekyll-sitemap (0.10.0)
|
||||
jekyll-watch (1.5.0)
|
||||
listen (~> 3.0, < 3.1)
|
||||
jemoji (0.7.0)
|
||||
@@ -163,41 +68,52 @@ GEM
|
||||
rb-inotify (>= 0.9.7)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.1.0)
|
||||
minima (2.0.0)
|
||||
minitest (5.10.1)
|
||||
minima (1.1.0)
|
||||
minitest (5.9.0)
|
||||
multipart-post (2.0.0)
|
||||
net-dns (0.8.0)
|
||||
nokogiri (1.6.8.1)
|
||||
nokogiri (1.6.8)
|
||||
mini_portile2 (~> 2.1.0)
|
||||
octokit (4.6.2)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
pkg-config (~> 1.1.7)
|
||||
octokit (4.3.0)
|
||||
sawyer (~> 0.7.0, >= 0.5.3)
|
||||
pathutil (0.14.0)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (2.0.4)
|
||||
rb-fsevent (0.9.8)
|
||||
pkg-config (1.1.7)
|
||||
rb-fsevent (0.9.7)
|
||||
rb-inotify (0.9.7)
|
||||
ffi (>= 0.5.0)
|
||||
rouge (1.11.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.23)
|
||||
sawyer (0.8.1)
|
||||
addressable (>= 2.3.5, < 2.6)
|
||||
faraday (~> 0.8, < 1.0)
|
||||
terminal-table (1.7.3)
|
||||
unicode-display_width (~> 1.1.1)
|
||||
sass (3.4.22)
|
||||
sawyer (0.7.0)
|
||||
addressable (>= 2.3.5, < 2.5)
|
||||
faraday (~> 0.8, < 0.10)
|
||||
thread_safe (0.3.5)
|
||||
typhoeus (0.8.0)
|
||||
ethon (>= 0.8.0)
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
unicode-display_width (1.1.2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
github-pages
|
||||
jekyll-include-cache (~> 0.1)
|
||||
activesupport (= 4.2.7)
|
||||
jekyll (= 3.2.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
|
||||
1.13.6
|
||||
1.11.2
|
||||
|
||||
@@ -378,7 +378,7 @@ Section 8 -- Interpretation.
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the "Licensor." The text of the Creative Commons
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: all build build-preview help serve
|
||||
.PONY: all build build-preview help serve
|
||||
|
||||
help: ## Show this help.
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
|
||||
@@ -1,19 +1,182 @@
|
||||
## Instructions for Contributing to the Kubernetes Documentation
|
||||
## Instructions for Contributing to the Docs/Website
|
||||
|
||||
Welcome! We are very pleased you want to contribute to the Kubernetes documentation.
|
||||
Welcome! We are very pleased you want to contribute to the documentation and/or website for Kubernetes.
|
||||
|
||||
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
|
||||
You can click the "Fork" button in the upper-right area of the screen to create a copy of our site on your GitHub account called a "fork." Make any changes you want in your fork, and when you are ready to send those changes to us, go to the index page for your fork and click "New Pull Request" to let us know about it.
|
||||
|
||||
For more information about contributing to the Kubernetes documentation, see:
|
||||
|
||||
* [Contributing to the Kubernetes Documentation](http://kubernetes.io/editdocs/)
|
||||
* [Creating a Documentation Pull Request](http://kubernetes.io/docs/home/contribute/create-pull-request/)
|
||||
* [Writing a New Topic](http://kubernetes.io/docs/home/contribute/write-new-topic/)
|
||||
* [Staging Your Documentation Changes](http://kubernetes.io/docs/home/contribute/stage-documentation-changes/)
|
||||
* [Using Page Templates](http://kubernetes.io/docs/home/contribute/page-templates/)
|
||||
* [Documentation Style Guide](http://kubernetes.io/docs/home/contribute/style-guide/)
|
||||
* [Creating a Documentation Pull Request](http://kubernetes.io/docs/contribute/create-pull-request/)
|
||||
* [Writing a New Topic](http://kubernetes.io/docs/contribute/write-new-topic/)
|
||||
* [Staging Your Documentation Changes](http://kubernetes.io/docs/contribute/stage-documentation-changes/)
|
||||
* [Using Page Templates](http://kubernetes.io/docs/contribute/page-templates/)
|
||||
|
||||
## Automatic Staging for Pull Requests
|
||||
|
||||
When you create a pull request (either against master or the upcoming release), your changes are staged in a custom subdomain on Netlify so that you can see your changes in rendered form before the PR is merged. You can use this to verify that everything is correct before the PR gets merged. To view your changes:
|
||||
|
||||
- Scroll down to the PR's list of Automated Checks
|
||||
- Click "Show All Checks"
|
||||
- Look for "deploy/netlify"; you'll see "Deploy Preview Ready!" if staging was successful
|
||||
- Click "Details" to bring up the staged site and navigate to your changes
|
||||
|
||||
## Branch structure and staging
|
||||
|
||||
The current version of the website is served out of the `master` branch. To make changes to the live docs, such as bug fixes, broken links, typos, etc, **target your pull request to the master branch**
|
||||
|
||||
The `release-1.x` branch stores changes for **upcoming releases of Kubernetes**. For example, the `release-1.5` branch has changes for the 1.5 release. These changes target branches (and *not* master) to avoid publishing documentation updates prior to the release for which they're relevant. If you have a change for an upcoming release of Kubernetes, **target your pull request to the appropriate release branch**.
|
||||
|
||||
The staging site for the next upcoming Kubernetes release is here: [http://kubernetes-io-vnext-staging.netlify.com/](http://kubernetes-io-vnext-staging.netlify.com/). The staging site reflects the current state of what's been merged in the release branch, or in other words, what the docs will look like for the next upcoming release. It's automatically updated as new PRs get merged.
|
||||
|
||||
## Staging the site locally (using Docker)
|
||||
|
||||
Don't like installing stuff? Download and run a local staging server with a single `docker run` command.
|
||||
|
||||
git clone https://github.com/kubernetes/kubernetes.github.io.git
|
||||
cd kubernetes.github.io
|
||||
docker run -ti --rm -v "$PWD":/k8sdocs -p 4000:4000 gcr.io/google-samples/k8sdocs:1.0
|
||||
|
||||
Then visit [http://localhost:4000](http://localhost:4000) to see our site. Any changes you make on your local machine will be automatically staged.
|
||||
|
||||
If you're interested you can view [the Dockerfile for this image](https://github.com/kubernetes/kubernetes.github.io/blob/master/staging-container/Dockerfile).
|
||||
|
||||
## Staging the site locally (from scratch setup)
|
||||
|
||||
The below commands to setup your environment for running GitHub pages locally. Then, any edits you make will be viewable
|
||||
on a lightweight webserver that runs on your local machine.
|
||||
|
||||
This will typically be the fastest way (by far) to iterate on docs changes and see them staged, once you get this set up, but it does involve several install steps that take awhile to complete, and makes system-wide modifications.
|
||||
|
||||
Install Ruby 2.2 or higher. If you're on Linux, run these commands:
|
||||
|
||||
apt-get install software-properties-common
|
||||
apt-add-repository ppa:brightbox/ruby-ng
|
||||
apt-get install ruby2.2
|
||||
apt-get install ruby2.2-dev
|
||||
|
||||
* If you're on a Mac, follow [these instructions](https://gorails.com/setup/osx/).
|
||||
* If you're on a Windows machine you can use the [Ruby Installer](http://rubyinstaller.org/downloads/). During the installation make sure to check the option for *Add Ruby executables to your PATH*.
|
||||
|
||||
The remainder of the steps should work the same across operating systems.
|
||||
|
||||
To confirm you've installed Ruby correctly, at the command prompt run `gem --version` and you should get a response with your version number. Likewise you can confirm you have Git installed properly by running `git --version`, which will respond with your version of Git.
|
||||
|
||||
Install the GitHub Pages package, which includes Jekyll:
|
||||
|
||||
gem install github-pages
|
||||
|
||||
Clone our site:
|
||||
|
||||
git clone https://github.com/kubernetes/kubernetes.github.io.git
|
||||
|
||||
Make any changes you want. Then, to see your changes locally:
|
||||
|
||||
cd kubernetes.github.io
|
||||
jekyll serve
|
||||
|
||||
Your copy of the site will then be viewable at: [http://localhost:4000](http://localhost:4000)
|
||||
(or wherever Jekyll tells you).
|
||||
|
||||
## GitHub help
|
||||
|
||||
If you're a bit rusty with git/GitHub, you might want to read
|
||||
[this](http://readwrite.com/2013/10/02/github-for-beginners-part-2) for a refresher.
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Edit Page Titles or Change the Left Navigation
|
||||
|
||||
Edit the yaml files in `/_data/` for the Guides, Reference, Samples, or Support areas.
|
||||
|
||||
You may have to exit and `jekyll clean` before restarting the `jekyll serve` to
|
||||
get changes to files in `/_data/` to show up.
|
||||
|
||||
### Add Images
|
||||
|
||||
Put the new image in `/images/docs/` if it's for the documentation, and just `/images/` if it's for the website.
|
||||
|
||||
**For diagrams, we greatly prefer SVG files!**
|
||||
|
||||
### Include code from another file
|
||||
|
||||
To include a file that is hosted on this GitHub repo, insert this code:
|
||||
|
||||
<pre>{% include code.html language="<LEXERVALUE>" file="<RELATIVEPATH>" ghlink="<PATHFROMROOT>" %}</pre>
|
||||
|
||||
* `LEXERVALUE`: The language in which the file was written; must be [a value supported by Rouge](https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers).
|
||||
* `RELATIVEPATH`: The path to the file you're including, relative to the current file.
|
||||
* `PATHFROMROOT`: The path to the file relative to root, e.g. `/docs/admin/foo.yaml`
|
||||
|
||||
To include a file that is hosted in the external, main Kubernetes repo, make sure it's added to [/update-imported-docs.sh](https://github.com/kubernetes/kubernetes.github.io/blob/master/update-imported-docs.sh), and run it so that the file gets downloaded, then enter:
|
||||
|
||||
<pre>{% include code.html language="<LEXERVALUE>" file="<RELATIVEPATH>" k8slink="<PATHFROMK8SROOT>" %}</pre>
|
||||
|
||||
* `PATHFROMK8SROOT`: The path to the file relative to the root of [the Kubernetes repo](https://github.com/kubernetes/kubernetes/tree/release-1.2), e.g. `/examples/rbd/foo.yaml`
|
||||
|
||||
## Using tabs for multi-language examples
|
||||
|
||||
By specifying some inline CSV in a varable called `tabspec`, you can include a file
|
||||
called `tabs.html` that generates tabs showing code examples in multiple langauges.
|
||||
|
||||
<pre>{% capture tabspec %}servicesample
|
||||
JSON,json,service-sample.json,/docs/user-guide/services/service-sample.json
|
||||
YAML,yaml,service-sample.yaml,/docs/user-guide/services/service-sample.yaml{% endcapture %}
|
||||
{% include tabs.html %}</pre>
|
||||
|
||||
In English, this would read: "Create a set of tabs with the alias `servicesample`,
|
||||
and have tabs visually labeled "JSON" and "YAML" that use `json` and `yaml` Rouge syntax highlighting, which display the contents of
|
||||
`service-sample.{extension}` on the page, and link to the file in GitHub at (full path)."
|
||||
|
||||
Example file: [Pods: Multi-Container](http://kubernetes.io/docs/user-guide/pods/multi-container/).
|
||||
|
||||
## Use a global variable
|
||||
|
||||
The `/_config.yml` file defines some useful variables you can use when editing docs.
|
||||
|
||||
* `page.githubbranch`: The name of the GitHub branch on the Kubernetes repo that is associated with this branch of the docs. e.g. `release-1.2`
|
||||
* `page.version` The version of Kubernetes associated with this branch of the docs. e.g. `v1.2`
|
||||
* `page.docsbranch` The name of the GitHub branch on the Docs/Website repo that you are currently using. e.g. `release-1.1` or `master`
|
||||
|
||||
This keeps the docs you're editing aligned with the Kubernetes version you're talking about. For example, if you define a link like so, you'll never have to worry about it going stale in future doc branches:
|
||||
|
||||
<pre>View the README [here](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/README.md).</pre>
|
||||
|
||||
That, of course, will send users to:
|
||||
|
||||
[http://releases.k8s.io/release-1.2/cluster/addons/README.md](http://releases.k8s.io/release-1.2/cluster/addons/README.md)
|
||||
|
||||
(Or whatever Kubernetes release that docs branch is associated with.)
|
||||
|
||||
## Config yaml guidelines
|
||||
|
||||
Guidelines for config yamls that are included in the site docs. These
|
||||
are the yaml or json files that contain Kubernetes object
|
||||
configuration to be used with `kubectl create -f` Config yamls should
|
||||
be:
|
||||
|
||||
* Separate deployable files, not embedded in the document, unless very
|
||||
small variations of a full config.
|
||||
* Included in the doc with the include code
|
||||
[above.](#include-code-from-another-file)
|
||||
* In the same directory as the doc that they are being used in
|
||||
* If you are re-using a yaml from another doc, that is OK, just
|
||||
leave it there, don't move it up to a higher level directory.
|
||||
* Tested in
|
||||
[test/examples_test.go](https://github.com/kubernetes/kubernetes.github.io/blob/master/test/examples_test.go)
|
||||
* Follows
|
||||
[best practices.](http://kubernetes.io/docs/user-guide/config-best-practices/)
|
||||
|
||||
Don't assume the reader has this repository checked out, use `kubectl
|
||||
create -f https://github...` in example commands. For Docker images
|
||||
used in config yamls, try to use an image from an existing Kubernetes
|
||||
example. If creating an image for a doc, follow the
|
||||
[example guidelines](https://github.com/kubernetes/kubernetes/blob/master/examples/guidelines.md#throughout)
|
||||
section on "Docker images" from the Kubernetes repository.
|
||||
|
||||
## Partners
|
||||
Kubernetes partners refers to the companies who contribute to the Kubernetes core codebase, extend their platform to support Kubernetes or provide managed services to users centered around the Kubernetes platform. Partners can get their services and offerings added to the [partner page](https://k8s.io/partners) by completing and submitting the [partner request form](https://goo.gl/qcSnZF). Once the information and assets are verified, the partner product/services will be listed in the partner page. This would typically take 7-10 days.
|
||||
|
||||
## Thank you!
|
||||
|
||||
Kubernetes thrives on community participation, and we really appreciate your
|
||||
Kubernetes thrives on community participation and we really appreciate your
|
||||
contributions to our site and our documentation!
|
||||
|
||||
+34
-29
@@ -1,13 +1,11 @@
|
||||
name: Kubernetes
|
||||
title: Kubernetes
|
||||
url: https://kubernetes.io
|
||||
description: Production-Grade Container Orchestration
|
||||
markdown: kramdown
|
||||
kramdown:
|
||||
input: GFM
|
||||
html_to_native: true
|
||||
hard_wrap: false
|
||||
syntax_highlighter: rouge
|
||||
baseurl: /
|
||||
incremental: true
|
||||
|
||||
safe: false
|
||||
@@ -18,10 +16,38 @@ defaults:
|
||||
scope:
|
||||
path: ""
|
||||
values:
|
||||
fullversion: "v1.7.0"
|
||||
version: "v1.7"
|
||||
githubbranch: "master"
|
||||
docsbranch: "master"
|
||||
version: "v1.4"
|
||||
githubbranch: "v1.4.12"
|
||||
docsbranch: "release-1.4"
|
||||
versions:
|
||||
- fullversion: "v1.8.0"
|
||||
version: "v1.8"
|
||||
githubbranch: "v1.8.0"
|
||||
docsbranch: "release-1.8"
|
||||
url: https://kubernetes.io/docs/home/
|
||||
- fullversion: "v1.7.3"
|
||||
version: "v1.7"
|
||||
githubbranch: "v1.7.3"
|
||||
docsbranch: "release-1.7"
|
||||
url: https://v1-7.docs.kubernetes.io/docs/home/
|
||||
- fullversion: "v1.6.8"
|
||||
version: "v1.6"
|
||||
githubbranch: "v1.6.8"
|
||||
docsbranch: "release-1.6"
|
||||
url: https://v1-6.docs.kubernetes.io/docs/home/
|
||||
- fullversion: "v1.5.7"
|
||||
version: "v1.5"
|
||||
githubbranch: "v1.5.7"
|
||||
docsbranch: "release-1.5"
|
||||
url: https://v1-5.docs.kubernetes.io/docs/
|
||||
- fullversion: "v1.4.12"
|
||||
version: "v1.4"
|
||||
githubbranch: "v1.4.12"
|
||||
docsbranch: "release-1.4"
|
||||
url: https://v1-4.docs.kubernetes.io/docs/
|
||||
deprecated: true
|
||||
currentUrl: https://kubernetes.io/docs/home/
|
||||
nextUrl: http://kubernetes-io-vnext-staging.netlify.com/
|
||||
-
|
||||
scope:
|
||||
path: "docs"
|
||||
@@ -33,26 +59,5 @@ permalink: pretty
|
||||
|
||||
gems:
|
||||
- jekyll-redirect-from
|
||||
- jekyll-feed
|
||||
- jekyll-sitemap
|
||||
- jekyll-seo-tag
|
||||
- jekyll-include-cache
|
||||
|
||||
# SEO
|
||||
logo: /images/favicon.png
|
||||
twitter:
|
||||
username: kubernetesio
|
||||
|
||||
# empty array for tabs
|
||||
emptyArray: []
|
||||
|
||||
# Tables of contents, stored in the _data folder, that control the sidebar nav
|
||||
tocs:
|
||||
- docs-home
|
||||
- setup
|
||||
- tasks
|
||||
- tutorials
|
||||
- concepts
|
||||
- reference
|
||||
- samples
|
||||
- search
|
||||
include: [_headers]
|
||||
|
||||
+5
-94
@@ -1,98 +1,9 @@
|
||||
bigheader: "Concepts"
|
||||
abstract: "Detailed explanations of Kubernetes system concepts and abstractions."
|
||||
toc:
|
||||
- docs/concepts/index.md
|
||||
|
||||
- title: Overview
|
||||
- title: Concepts
|
||||
path: /docs/concepts/
|
||||
- title: Object Metadata
|
||||
section:
|
||||
- docs/concepts/overview/what-is-kubernetes.md
|
||||
- docs/concepts/overview/components.md
|
||||
- title: Working with Kubernetes Objects
|
||||
section:
|
||||
- docs/concepts/overview/working-with-objects/kubernetes-objects.md
|
||||
- docs/concepts/overview/working-with-objects/names.md
|
||||
- docs/concepts/overview/working-with-objects/namespaces.md
|
||||
- docs/concepts/overview/working-with-objects/labels.md
|
||||
- docs/concepts/overview/working-with-objects/annotations.md
|
||||
- docs/concepts/overview/kubernetes-api.md
|
||||
|
||||
- title: Kubernetes Architecture
|
||||
section:
|
||||
- docs/concepts/architecture/nodes.md
|
||||
- docs/concepts/architecture/master-node-communication.md
|
||||
|
||||
- title: Extending the Kubernetes API
|
||||
section:
|
||||
- docs/concepts/api-extension/custom-resources.md
|
||||
- docs/concepts/api-extension/apiserver-aggregation.md
|
||||
|
||||
- title: Containers
|
||||
section:
|
||||
- docs/concepts/containers/images.md
|
||||
- docs/concepts/containers/container-environment-variables.md
|
||||
- docs/concepts/containers/container-lifecycle-hooks.md
|
||||
|
||||
- title: Workloads
|
||||
section:
|
||||
- title: Pods
|
||||
section:
|
||||
- docs/concepts/workloads/pods/pod-overview.md
|
||||
- docs/concepts/workloads/pods/pod.md
|
||||
- docs/concepts/workloads/pods/pod-lifecycle.md
|
||||
- docs/concepts/workloads/pods/init-containers.md
|
||||
- docs/concepts/workloads/pods/disruptions.md
|
||||
- title: Controllers
|
||||
section:
|
||||
- docs/concepts/workloads/controllers/replicaset.md
|
||||
- docs/concepts/workloads/controllers/replicationcontroller.md
|
||||
- docs/concepts/workloads/controllers/deployment.md
|
||||
- docs/concepts/workloads/controllers/statefulset.md
|
||||
- docs/concepts/workloads/controllers/petset.md
|
||||
- docs/concepts/workloads/controllers/daemonset.md
|
||||
- docs/concepts/workloads/controllers/garbage-collection.md
|
||||
- docs/concepts/workloads/controllers/jobs-run-to-completion.md
|
||||
- docs/concepts/workloads/controllers/cron-jobs.md
|
||||
|
||||
- title: Configuration
|
||||
section:
|
||||
- docs/concepts/configuration/overview.md
|
||||
- docs/concepts/configuration/manage-compute-resources-container.md
|
||||
- docs/concepts/configuration/assign-pod-node.md
|
||||
- docs/concepts/configuration/secret.md
|
||||
|
||||
- title: Services, Load Balancing, and Networking
|
||||
section:
|
||||
- docs/concepts/services-networking/service.md
|
||||
- docs/concepts/services-networking/dns-pod-service.md
|
||||
- docs/concepts/services-networking/connect-applications-service.md
|
||||
- docs/concepts/services-networking/ingress.md
|
||||
- docs/concepts/services-networking/network-policies.md
|
||||
- docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases.md
|
||||
|
||||
- title: Storage
|
||||
section:
|
||||
- docs/concepts/storage/volumes.md
|
||||
- docs/concepts/storage/persistent-volumes.md
|
||||
- title: Dynamic Provisioning
|
||||
path: http://blog.kubernetes.io/2016/10/dynamic-provisioning-and-storage-in-kubernetes.html
|
||||
|
||||
- title: Cluster Administration
|
||||
section:
|
||||
- docs/concepts/cluster-administration/cluster-administration-overview.md
|
||||
- docs/concepts/cluster-administration/manage-deployment.md
|
||||
- docs/concepts/cluster-administration/networking.md
|
||||
- docs/concepts/cluster-administration/network-plugins.md
|
||||
- docs/concepts/cluster-administration/logging.md
|
||||
- docs/concepts/cluster-administration/kubelet-garbage-collection.md
|
||||
- docs/concepts/cluster-administration/federation.md
|
||||
- docs/concepts/cluster-administration/sysctl-cluster.md
|
||||
- docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig.md
|
||||
- docs/concepts/cluster-administration/master-node-communication.md
|
||||
- docs/concepts/cluster-administration/proxies.md
|
||||
- docs/concepts/cluster-administration/controller-metrics.md
|
||||
- title: Policies
|
||||
section:
|
||||
- docs/concepts/policy/resource-quotas.md
|
||||
- docs/concepts/policy/pod-security-policy.md
|
||||
|
||||
|
||||
- title: Annotations
|
||||
path: /docs/concepts/object-metadata/annotations/
|
||||
|
||||
+3
-21
@@ -1,23 +1,5 @@
|
||||
bigheader: "Documentation Home"
|
||||
bigheader: "Kubernetes Documentation"
|
||||
abstract: "Documentation for using and learning about Kubernetes."
|
||||
toc:
|
||||
- docs/home/index.md
|
||||
|
||||
- docs/home/index.md
|
||||
|
||||
- title: Release Notes
|
||||
path: https://git.k8s.io/kubernetes/CHANGELOG.md
|
||||
- title: Release Roadmap
|
||||
path: https://github.com/kubernetes/kubernetes/milestones/
|
||||
|
||||
- docs/tasks/debug-application-cluster/troubleshooting.md
|
||||
|
||||
- title: Contributing to the Kubernetes Docs
|
||||
section:
|
||||
- editdocs.md
|
||||
- docs/home/contribute/create-pull-request.md
|
||||
- docs/home/contribute/write-new-topic.md
|
||||
- docs/home/contribute/stage-documentation-changes.md
|
||||
- docs/home/contribute/page-templates.md
|
||||
- docs/home/contribute/review-issues.md
|
||||
- docs/home/contribute/style-guide.md
|
||||
- title: Kubernetes Documentation
|
||||
path: /docs/
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
tocs:
|
||||
- docs-home
|
||||
- guides
|
||||
- setup
|
||||
- tasks
|
||||
- tutorials
|
||||
- tasks
|
||||
- concepts
|
||||
- reference
|
||||
- tools
|
||||
- samples
|
||||
- support
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
bigheader: "Guides"
|
||||
abstract: "How to get started, and accomplish tasks, using Kubernetes."
|
||||
toc:
|
||||
- title: Guides
|
||||
path: /docs/user-guide/
|
||||
|
||||
- title: Getting Started
|
||||
section:
|
||||
- title: What is Kubernetes?
|
||||
path: /docs/whatisk8s/
|
||||
- title: Installing Kubernetes on Linux with kubeadm
|
||||
path: /docs/getting-started-guides/kubeadm/
|
||||
- title: Installing Kubernetes on AWS with kops
|
||||
path: /docs/getting-started-guides/kops/
|
||||
- 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
|
||||
path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
|
||||
|
||||
- title: Accessing the Cluster
|
||||
section:
|
||||
- title: Installing and Setting up kubectl
|
||||
path: /docs/user-guide/prereqs/
|
||||
- title: Accessing Clusters
|
||||
path: /docs/user-guide/accessing-the-cluster/
|
||||
- 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
|
||||
path: /docs/user-guide/
|
||||
|
||||
- title: Web UI (Dashboard)
|
||||
path: /docs/user-guide/ui/
|
||||
|
||||
- title: Workload Deployment and Management
|
||||
section:
|
||||
- title: Launching, Exposing, and Killing Applications
|
||||
path: /docs/user-guide/quick-start/
|
||||
- title: Deploying Applications
|
||||
path: /docs/user-guide/deploying-applications/
|
||||
- title: Managing Resources
|
||||
path: /docs/user-guide/managing-deployments/
|
||||
- title: Replication Controller Operations
|
||||
path: /docs/user-guide/replication-controller/operations/
|
||||
- title: Resizing a Replication Controller
|
||||
path: /docs/user-guide/resizing-a-replication-controller/
|
||||
- title: Rolling Updates
|
||||
path: /docs/user-guide/rolling-updates/
|
||||
- title: Rolling Update Demo
|
||||
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
|
||||
section:
|
||||
- title: Example Walkthrough
|
||||
path: /docs/getting-started-guides/network-policy/walkthrough/
|
||||
- title: Using Calico for NetworkPolicy
|
||||
path: /docs/getting-started-guides/network-policy/calico/
|
||||
- title: Using Romana for NetworkPolicy
|
||||
path: /docs/getting-started-guides/network-policy/romana/
|
||||
|
||||
- title: Batch Jobs
|
||||
section:
|
||||
- title: Jobs
|
||||
path: /docs/user-guide/jobs/
|
||||
- title: Parallel Processing using Expansions
|
||||
path: /docs/user-guide/jobs/expansions/
|
||||
- title: Coarse Parallel Processing using a Work Queue
|
||||
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
|
||||
section:
|
||||
- title: Connecting Applications with Services
|
||||
path: /docs/user-guide/connecting-applications/
|
||||
- title: Service Operations
|
||||
path: /docs/user-guide/services/operations/
|
||||
- title: Creating an External Load Balancer
|
||||
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
|
||||
section:
|
||||
- title: Running Your First Containers
|
||||
path: /docs/user-guide/simple-nginx/
|
||||
- title: Creating Single-Container Pods
|
||||
path: /docs/user-guide/pods/single-container/
|
||||
- title: Creating Multi-Container Pods
|
||||
path: /docs/user-guide/pods/multi-container/
|
||||
- title: Configuring Containers
|
||||
path: /docs/user-guide/configuring-containers/
|
||||
- title: Working with Containers in Production
|
||||
path: /docs/user-guide/production-pods/
|
||||
- title: Commands and Capabilities
|
||||
path: /docs/user-guide/containers/
|
||||
- title: Using Environment Variables
|
||||
path: /docs/user-guide/environment-guide/
|
||||
- title: Managing Compute Resources
|
||||
path: /docs/user-guide/compute-resources/
|
||||
- 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
|
||||
section:
|
||||
- title: Resource Usage Monitoring
|
||||
path: /docs/user-guide/monitoring/
|
||||
- title: Logging
|
||||
path: /docs/getting-started-guides/logging/
|
||||
- title: Logging with Elasticsearch and Kibana
|
||||
path: /docs/getting-started-guides/logging-elasticsearch/
|
||||
- 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
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/explorer
|
||||
|
||||
- title: Creating a Cluster
|
||||
section:
|
||||
- title: Picking the Right Solution
|
||||
path: /docs/getting-started-guides/
|
||||
- title: Running Kubernetes on Your Local Machine
|
||||
section:
|
||||
- title: Running Kubernetes Locally via Minikube
|
||||
path: /docs/getting-started-guides/minikube/
|
||||
- title: Deprecated Alternatives
|
||||
path: /docs/getting-started-guides/alternatives/
|
||||
- title: Running Kubernetes on Turn-key Cloud Solutions
|
||||
section:
|
||||
- title: Running Kubernetes on Google Container Engine
|
||||
path: https://cloud.google.com/container-engine/docs/before-you-begin/
|
||||
- title: Running Kubernetes on Google Compute Engine
|
||||
path: /docs/getting-started-guides/gce/
|
||||
- title: Running Kubernetes on AWS EC2
|
||||
path: /docs/getting-started-guides/aws/
|
||||
- title: Running Kubernetes on Azure
|
||||
path: /docs/getting-started-guides/azure/
|
||||
- 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
|
||||
path: https://github.com/patrocinio/kubernetes-softlayer
|
||||
- title: Running Kubernetes on Custom Solutions
|
||||
section:
|
||||
- title: Creating a Custom Cluster from Scratch
|
||||
path: /docs/getting-started-guides/scratch/
|
||||
- title: Custom Cloud Solutions
|
||||
section:
|
||||
- title: CoreOS on AWS or GCE
|
||||
path: /docs/getting-started-guides/coreos/
|
||||
- title: Ubuntu on AWS or Joyent
|
||||
path: /docs/getting-started-guides/juju/
|
||||
- title: CoreOS on Rackspace
|
||||
path: /docs/getting-started-guides/rackspace/
|
||||
- title: On-Premise VMs
|
||||
section:
|
||||
- title: CoreOS on Vagrant
|
||||
path: /docs/getting-started-guides/coreos/
|
||||
- title: Cloudstack
|
||||
path: /docs/getting-started-guides/cloudstack/
|
||||
- title: VMware vSphere
|
||||
path: /docs/getting-started-guides/vsphere/
|
||||
- title: VMware Photon Controller
|
||||
path: /docs/getting-started-guides/photon-controller/
|
||||
- title: Juju
|
||||
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
|
||||
section:
|
||||
- title: Running Kubernetes with rkt
|
||||
path: /docs/getting-started-guides/rkt/
|
||||
- title: Known Issues when Using rkt
|
||||
path: /docs/getting-started-guides/rkt/notes/
|
||||
- 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
|
||||
section:
|
||||
- title: Offline
|
||||
path: /docs/getting-started-guides/coreos/bare_metal_offline/
|
||||
- title: Fedora via Ansible
|
||||
path: /docs/getting-started-guides/fedora/fedora_ansible_config/
|
||||
- title: Fedora (Single Node)
|
||||
path: /docs/getting-started-guides/fedora/fedora_manual_config/
|
||||
- title: Fedora (Multi Node)
|
||||
path: /docs/getting-started-guides/fedora/flannel_multi_node_cluster/
|
||||
- title: CentOS
|
||||
path: /docs/getting-started-guides/centos/centos_manual_config/
|
||||
- title: CoreOS
|
||||
path: /docs/getting-started-guides/coreos
|
||||
- title: Ubuntu
|
||||
path: /docs/getting-started-guides/ubuntu/
|
||||
- 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
|
||||
section:
|
||||
- title: Admin Guide
|
||||
path: /docs/admin/
|
||||
- title: Cluster Management Guide
|
||||
path: /docs/admin/cluster-management/
|
||||
- title: kubeadm reference
|
||||
path: /docs/admin/kubeadm/
|
||||
- title: Installing Addons
|
||||
path: /docs/admin/addons/
|
||||
- title: Sharing a Cluster with Namespaces
|
||||
path: /docs/admin/namespaces/
|
||||
- title: Namespaces Walkthrough
|
||||
path: /docs/admin/namespaces/walkthrough/
|
||||
- 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: Federating Clusters
|
||||
path: /docs/admin/federation/
|
||||
- title: Using Multiple Clusters
|
||||
path: /docs/admin/multi-cluster/
|
||||
- title: Changing Cluster Size
|
||||
path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ#how-do-i-change-the-size-of-my-cluster/
|
||||
- title: Configuring Multiple Schedulers
|
||||
path: /docs/admin/multiple-schedulers/
|
||||
- title: Networking in Kubernetes
|
||||
path: /docs/admin/networking/
|
||||
- title: Using DNS Pods and Services
|
||||
path: /docs/admin/dns/
|
||||
- title: Setting Up and Configuring DNS
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/cluster-dns
|
||||
- title: Master <-> Node Communication
|
||||
path: /docs/admin/master-node-communication/
|
||||
- title: Network Plugins
|
||||
path: /docs/admin/network-plugins/
|
||||
- title: Static Pods
|
||||
path: /docs/admin/static-pods/
|
||||
- title: Configuring kubelet Garbage Collection
|
||||
path: /docs/admin/garbage-collection/
|
||||
- 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/
|
||||
@@ -1,4 +1,6 @@
|
||||
overrides:
|
||||
- path: docs/api-reference
|
||||
- path: docs/user-guide/kubectl
|
||||
- path: docs/admin/federation-apiserver.md
|
||||
- path: docs/admin/federation-controller-manager.md
|
||||
- path: docs/admin/kube-apiserver.md
|
||||
@@ -6,5 +8,12 @@ overrides:
|
||||
- path: docs/admin/kube-proxy.md
|
||||
- path: docs/admin/kube-scheduler.md
|
||||
- path: docs/admin/kubelet.md
|
||||
- changedpath: docs/api-reference/extensions/v1beta1/definitions.html _includes/v1.4/extensions-v1beta1-definitions.html
|
||||
- changedpath: docs/api-reference/extensions/v1beta1/operations.html _includes/v1.4/extensions-v1beta1-operations.html
|
||||
- changedpath: docs/api-reference/v1/definitions.html _includes/v1.4/v1-definitions.html
|
||||
- changedpath: docs/api-reference/v1/operations.html _includes/v1.4/v1-operations.html
|
||||
- copypath: k8s/federation/docs/api-reference/ docs/federation/
|
||||
- copypath: k8s/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.yaml docs/getting-started-guides/fluentd-gcp.yaml
|
||||
- copypath: k8s/examples/blog-logging/counter-pod.yaml docs/getting-started-guides/counter-pod.yaml
|
||||
- copypath: k8s/examples/blog-logging/counter-pod.yaml docs/user-guide/counter-pod.yaml
|
||||
|
||||
|
||||
+248
-71
@@ -1,97 +1,274 @@
|
||||
bigheader: "Reference Documentation"
|
||||
abstract: "Design docs, concept definitions, and references for APIs and CLIs."
|
||||
toc:
|
||||
- docs/reference/index.md
|
||||
- title: Reference Documentation
|
||||
path: /docs/reference/
|
||||
|
||||
- title: Using the API
|
||||
- title: Kubernetes API
|
||||
section:
|
||||
- docs/reference/api-overview.md
|
||||
- title: Kubernetes API Overview
|
||||
path: /docs/api/
|
||||
- title: Accessing the API
|
||||
section:
|
||||
- docs/admin/accessing-the-api.md
|
||||
- docs/admin/authentication.md
|
||||
- docs/admin/bootstrap-tokens.md
|
||||
- docs/admin/admission-controllers.md
|
||||
- docs/admin/extensible-admission-controllers.md
|
||||
- docs/admin/service-accounts-admin.md
|
||||
- title: Authorization
|
||||
section:
|
||||
- docs/admin/authorization/index.md
|
||||
- docs/admin/authorization/abac.md
|
||||
- docs/admin/authorization/rbac.md
|
||||
- docs/admin/authorization/node.md
|
||||
- docs/admin/authorization/webhook.md
|
||||
- docs/reference/deprecation-policy.md
|
||||
- title: Overview
|
||||
path: /docs/admin/accessing-the-api/
|
||||
- title: Authenticating
|
||||
path: /docs/admin/authentication/
|
||||
- title: Using Authorization Plugins
|
||||
path: /docs/admin/authorization/
|
||||
- title: Using Admission Controllers
|
||||
path: /docs/admin/admission-controllers/
|
||||
- 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: API Reference
|
||||
- title: Autoscaling API
|
||||
section:
|
||||
- title: v1.7
|
||||
path: /docs/api-reference/v1.7/
|
||||
- title: v1.6
|
||||
path: /docs/api-reference/v1.6/
|
||||
- title: v1.5
|
||||
path: /docs/api-reference/v1.5/
|
||||
- docs/reference/labels-annotations-taints.md
|
||||
- title: OpenAPI and Swagger
|
||||
section:
|
||||
- title: OpenAPI Spec
|
||||
path: https://git.k8s.io/kubernetes/api/openapi-spec/
|
||||
- title: Swagger Spec
|
||||
path: https://git.k8s.io/kubernetes/api/swagger-spec/
|
||||
- title: Autoscaling API Operations
|
||||
path: /docs/api-reference/autoscaling/v1/operations/
|
||||
- title: Autoscaling API Definitions
|
||||
path: /docs/api-reference/autoscaling/v1/definitions/
|
||||
|
||||
- title: Federation API
|
||||
- title: Batch API
|
||||
section:
|
||||
- docs/reference/federation/v1/operations.html
|
||||
- docs/reference/federation/v1/definitions.html
|
||||
- docs/reference/federation/v1beta1/operations.html
|
||||
- docs/reference/federation/v1beta1/definitions.html
|
||||
- docs/reference/federation/extensions/v1beta1/operations.html
|
||||
- docs/reference/federation/extensions/v1beta1/definitions.html
|
||||
- title: Batch API Operations
|
||||
path: /docs/api-reference/batch/v1/operations/
|
||||
- title: Batch API Definitions
|
||||
path: /docs/api-reference/batch/v1/definitions/
|
||||
|
||||
- title: Extensions API
|
||||
section:
|
||||
- title: Extensions API Operations
|
||||
path: /docs/api-reference/extensions/v1beta1/operations/
|
||||
- title: Extensions API Definitions
|
||||
path: /docs/api-reference/extensions/v1beta1/definitions/
|
||||
|
||||
- title: kubectl CLI
|
||||
section:
|
||||
- docs/user-guide/kubectl-overview.md
|
||||
- title: v1.7 Commands
|
||||
path: /docs/user-guide/kubectl/v1.7/
|
||||
- title: v1.6 Commands
|
||||
path: /docs/user-guide/kubectl/v1.6/
|
||||
- title: v1.5 Commands
|
||||
path: /docs/user-guide/kubectl/v1.5/
|
||||
- docs/user-guide/docker-cli-to-kubectl.md
|
||||
- docs/user-guide/kubectl-conventions.md
|
||||
- docs/user-guide/jsonpath.md
|
||||
- docs/user-guide/kubectl-cheatsheet.md
|
||||
- title: kubectl Overview
|
||||
path: /docs/user-guide/kubectl-overview/
|
||||
- title: kubectl for Docker Users
|
||||
path: /docs/user-guide/docker-cli-to-kubectl/
|
||||
- title: kubectl Usage Conventions
|
||||
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
|
||||
section:
|
||||
- title: kubectl
|
||||
path: /docs/user-guide/kubectl/
|
||||
- title: kubectl annotate
|
||||
path: /docs/user-guide/kubectl/kubectl_annotate/
|
||||
- title: kubectl api-versions
|
||||
path: /docs/user-guide/kubectl/kubectl_api-versions/
|
||||
- title: kubectl apply
|
||||
path: /docs/user-guide/kubectl/kubectl_apply/
|
||||
- title: kubectl attach
|
||||
path: /docs/user-guide/kubectl/kubectl_attach/
|
||||
- title: kubectl autoscale
|
||||
path: /docs/user-guide/kubectl/kubectl_autoscale/
|
||||
- title: kubectl cluster-info
|
||||
path: /docs/user-guide/kubectl/kubectl_cluster-info/
|
||||
- title: kubectl config
|
||||
path: /docs/user-guide/kubectl/kubectl_config/
|
||||
- title: kubectl config current-context
|
||||
path: /docs/user-guide/kubectl/kubectl_config_current-context/
|
||||
- title: kubectl config set-cluster
|
||||
path: /docs/user-guide/kubectl/kubectl_config_set-cluster/
|
||||
- title: kubectl config set-context
|
||||
path: /docs/user-guide/kubectl/kubectl_config_set-context/
|
||||
- title: kubectl config set-credentials
|
||||
path: /docs/user-guide/kubectl/kubectl_config_set-credentials/
|
||||
- title: kubectl config set
|
||||
path: /docs/user-guide/kubectl/kubectl_config_set/
|
||||
- title: kubectl config unset
|
||||
path: /docs/user-guide/kubectl/kubectl_config_unset/
|
||||
- title: kubectl config use-context
|
||||
path: /docs/user-guide/kubectl/kubectl_config_use-context/
|
||||
- title: kubectl config view
|
||||
path: /docs/user-guide/kubectl/kubectl_config_view/
|
||||
- title: kubectl convert
|
||||
path: /docs/user-guide/kubectl/kubectl_convert/
|
||||
- title: kubectl cordon
|
||||
path: /docs/user-guide/kubectl/kubectl_cordon/
|
||||
- title: kubectl create
|
||||
path: /docs/user-guide/kubectl/kubectl_create/
|
||||
- title: kubectl create configmap
|
||||
path: /docs/user-guide/kubectl/kubectl_create_configmap/
|
||||
- title: kubectl create namespace
|
||||
path: /docs/user-guide/kubectl/kubectl_create_namespace/
|
||||
- title: kubectl create secret docker-registry
|
||||
path: /docs/user-guide/kubectl/kubectl_create_secret_docker-registry/
|
||||
- title: kubectl create secret
|
||||
path: /docs/user-guide/kubectl/kubectl_create_secret/
|
||||
- title: kubectl create secret generic
|
||||
path: /docs/user-guide/kubectl/kubectl_create_secret_generic/
|
||||
- title: kubectl create serviceaccount
|
||||
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
|
||||
section:
|
||||
- title: kubectl namespace
|
||||
path: /docs/user-guide/kubectl/kubectl_namespace/
|
||||
- title: kubectl stop
|
||||
path: /docs/user-guide/kubectl/kubectl_stop/
|
||||
|
||||
- docs/admin/kubeadm.md
|
||||
|
||||
- title: Config Reference
|
||||
- title: Kubernetes Components
|
||||
section:
|
||||
- docs/admin/kubelet.md
|
||||
- docs/admin/kube-apiserver.md
|
||||
- docs/admin/kube-controller-manager.md
|
||||
- docs/admin/kube-proxy.md
|
||||
- docs/admin/kube-scheduler.md
|
||||
- docs/admin/federation-apiserver.md
|
||||
- docs/admin/federation-controller-manager.md
|
||||
- title: kube-apiserver
|
||||
path: /docs/admin/kube-apiserver/
|
||||
- title: kube-controller-manager
|
||||
path: /docs/admin/kube-controller-manager/
|
||||
- title: kube-proxy
|
||||
path: /docs/admin/kube-proxy/
|
||||
- title: kube-scheduler
|
||||
path: /docs/admin/kube-scheduler/
|
||||
- title: kubelet
|
||||
path: /docs/admin/kubelet/
|
||||
|
||||
- title: Glossary
|
||||
section:
|
||||
- title: Annotations
|
||||
path: /docs/user-guide/annotations/
|
||||
- title: Daemon Sets
|
||||
path: /docs/admin/daemons/
|
||||
- title: Deployments
|
||||
path: /docs/user-guide/deployments/
|
||||
- title: Horizontal Pod Autoscaling
|
||||
path: /docs/user-guide/horizontal-pod-autoscaling/
|
||||
- title: Images
|
||||
path: /docs/user-guide/images/
|
||||
- title: Ingress Resources
|
||||
path: /docs/user-guide/ingress/
|
||||
- title: Jobs
|
||||
path: /docs/user-guide/jobs/
|
||||
- title: Labels and Selectors
|
||||
path: /docs/user-guide/labels/
|
||||
- title: Names
|
||||
path: /docs/user-guide/identifiers/
|
||||
- title: Namespaces
|
||||
path: /docs/user-guide/namespaces/
|
||||
- title: Network Policies
|
||||
path: /docs/user-guide/networkpolicies/
|
||||
- title: Nodes
|
||||
path: /docs/admin/node/
|
||||
- title: Persistent Volumes
|
||||
path: /docs/user-guide/persistent-volumes/
|
||||
- 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
|
||||
section:
|
||||
- title: Kubernetes Architecture
|
||||
path: https://git.k8s.io/community/contributors/design-proposals/architecture.md
|
||||
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/architecture.md
|
||||
- title: Kubernetes Design Overview
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.6/docs/design
|
||||
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/
|
||||
- title: Kubernetes Identity and Access Management
|
||||
path: https://git.k8s.io/community/contributors/design-proposals/access.md
|
||||
- docs/admin/ovs-networking.md
|
||||
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/access.md
|
||||
- title: Kubernetes OpenVSwitch GRE/VxLAN networking
|
||||
path: /docs/admin/ovs-networking/
|
||||
- title: Security Contexts
|
||||
path: https://git.k8s.io/community/contributors/design-proposals/security_context.md
|
||||
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security_context.md
|
||||
- title: Security in Kubernetes
|
||||
path: https://git.k8s.io/community/contributors/design-proposals/security.md
|
||||
path: https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/security.md
|
||||
|
||||
- title: Kubernetes Issues and Security
|
||||
- title: Federation
|
||||
section:
|
||||
- title: Kubernetes Issue Tracker on GitHub
|
||||
path: https://github.com/kubernetes/kubernetes/issues/
|
||||
- docs/reference/security.md
|
||||
|
||||
|
||||
- title: Federation User Guide
|
||||
path: /docs/user-guide/federation/
|
||||
- title: Federated Events
|
||||
path: /docs/user-guide/federation/events/
|
||||
- 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
|
||||
section:
|
||||
- title: federation-apiserver
|
||||
path: /docs/admin/federation-apiserver
|
||||
- title : federation-controller-mananger
|
||||
path: /docs/admin/federation-controller-manager
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
bigheader: "Samples"
|
||||
abstract: "A collection of example applications that show how to use Kubernetes."
|
||||
toc:
|
||||
- title: Samples
|
||||
path: /docs/samples/
|
||||
|
||||
- title: Storage / Database / KV
|
||||
section:
|
||||
- title: Apache Cassandra Database
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/cassandra
|
||||
- title: Ceph
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/rbd/
|
||||
- title: CephFS
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/cephfs/
|
||||
- title: CockroachDB
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.4/examples/cockroachdb/
|
||||
- title: GlusterFS
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/glusterfs/
|
||||
- title: Hazelcast
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/hazelcast
|
||||
- title: iSCSI
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/iscsi/
|
||||
- title: MySQL Galera
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/mysql-galera
|
||||
- title: NFS
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/nfs/
|
||||
- title: Redis
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/redis/
|
||||
- title: RethinkDB
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/rethinkdb/
|
||||
- title: Vitess
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/vitess/
|
||||
|
||||
- title: Big Data
|
||||
section:
|
||||
- title: Apache Spark
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/spark
|
||||
- title: Apache Storm
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/storm
|
||||
|
||||
- title: Messaging / Queueing
|
||||
section:
|
||||
- title: Celery + RabbitMQ
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/celery-rabbitmq
|
||||
- title: Hazelcast
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/hazelcast
|
||||
|
||||
- title: Miscellaneous
|
||||
section:
|
||||
- title: Meteor Applications
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/meteor/
|
||||
- title: OpenShift Origin
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/openshift-origin/
|
||||
- title: Selenium
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/selenium/
|
||||
|
||||
- title: Monitoring and Logging
|
||||
section:
|
||||
- title: Elasticsearch
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/elasticsearch/
|
||||
- title: NewRelic
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/newrelic
|
||||
|
||||
- title: Multi-tier Applications
|
||||
section:
|
||||
- title: Guestbook - Go Server
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook-go/
|
||||
- title: GuestBook - PHP Server
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/guestbook/
|
||||
- title: MEAN stack on Google Cloud Platform
|
||||
path: /docs/getting-started-guides/meanstack/
|
||||
- title: MySQL + Wordpress
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/mysql-wordpress-pd/
|
||||
- title: MySQL + Phabricator Server
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/phabricator/
|
||||
- title: Nodejs + Mongo
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/nodesjs-mongodb
|
||||
- title: Petstore
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/k8petstore/
|
||||
@@ -1,4 +0,0 @@
|
||||
bigheader: ""
|
||||
abstract: ""
|
||||
toc:
|
||||
- docs/search.md
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
bigheader: "Setup"
|
||||
abstract: "Instructions for setting up a Kubernetes cluster."
|
||||
toc:
|
||||
- docs/setup/index.md
|
||||
- docs/setup/pick-right-solution.md
|
||||
|
||||
- title: Independent Solutions
|
||||
section:
|
||||
- docs/getting-started-guides/minikube.md
|
||||
|
||||
- title: Bootstrapping Clusters with kubeadm
|
||||
section:
|
||||
- docs/setup/independent/install-kubeadm.md
|
||||
- docs/setup/independent/create-cluster-kubeadm.md
|
||||
|
||||
- docs/getting-started-guides/scratch.md
|
||||
- docs/getting-started-guides/alternatives.md
|
||||
|
||||
- title: Hosted Solutions
|
||||
section:
|
||||
- title: Running Kubernetes on Google Container Engine
|
||||
path: https://cloud.google.com/container-engine/docs/before-you-begin/
|
||||
- title: Running Kubernetes on Azure Container Service
|
||||
path: https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough
|
||||
- title: Running Kubernetes on IBM Bluemix Container Service
|
||||
path: https://console.ng.bluemix.net/docs/containers/container_index.html
|
||||
|
||||
- title: Turn-key Cloud Solutions
|
||||
section:
|
||||
- docs/getting-started-guides/gce.md
|
||||
- docs/getting-started-guides/aws.md
|
||||
- docs/getting-started-guides/azure.md
|
||||
- docs/getting-started-guides/clc.md
|
||||
- title: Running Kubernetes on IBM Bluemix
|
||||
path: https://github.com/patrocinio/kubernetes-softlayer
|
||||
- docs/getting-started-guides/stackpoint.md
|
||||
|
||||
- title: Custom Solutions
|
||||
|
||||
section:
|
||||
- title: Custom Cloud Solutions
|
||||
section:
|
||||
- docs/getting-started-guides/coreos/index.md
|
||||
- docs/getting-started-guides/ubuntu/index.md
|
||||
- docs/getting-started-guides/kops.md
|
||||
- docs/getting-started-guides/kubespray.md
|
||||
- docs/getting-started-guides/running-cloud-controller.md
|
||||
|
||||
- title: On-Premise VMs
|
||||
section:
|
||||
- docs/getting-started-guides/coreos/index.md
|
||||
- docs/getting-started-guides/cloudstack.md
|
||||
- docs/getting-started-guides/vsphere.md
|
||||
- docs/getting-started-guides/photon-controller.md
|
||||
- docs/getting-started-guides/dcos.md
|
||||
- docs/getting-started-guides/libvirt-coreos.md
|
||||
- docs/getting-started-guides/ovirt.md
|
||||
- docs/getting-started-guides/openstack-heat.md
|
||||
|
||||
- title: rkt
|
||||
section:
|
||||
- docs/getting-started-guides/rkt/index.md
|
||||
- docs/getting-started-guides/rkt/notes.md
|
||||
|
||||
- docs/getting-started-guides/mesos/index.md
|
||||
- docs/getting-started-guides/mesos-docker.md
|
||||
|
||||
- title: Bare Metal
|
||||
section:
|
||||
- docs/getting-started-guides/coreos/bare_metal_offline.md
|
||||
- docs/getting-started-guides/fedora/fedora_ansible_config.md
|
||||
- docs/getting-started-guides/fedora/fedora_manual_config.md
|
||||
- docs/getting-started-guides/fedora/flannel_multi_node_cluster.md
|
||||
- docs/getting-started-guides/centos/centos_manual_config.md
|
||||
- docs/getting-started-guides/coreos/index.md
|
||||
- docs/getting-started-guides/ubuntu/index.md
|
||||
|
||||
- title: Ubuntu
|
||||
section:
|
||||
- docs/getting-started-guides/ubuntu/index.md
|
||||
- docs/getting-started-guides/ubuntu/validation.md
|
||||
- docs/getting-started-guides/ubuntu/backups.md
|
||||
- docs/getting-started-guides/ubuntu/upgrades.md
|
||||
- docs/getting-started-guides/ubuntu/scaling.md
|
||||
- docs/getting-started-guides/ubuntu/installation.md
|
||||
- docs/getting-started-guides/ubuntu/monitoring.md
|
||||
- docs/getting-started-guides/ubuntu/networking.md
|
||||
- docs/getting-started-guides/ubuntu/security.md
|
||||
- docs/getting-started-guides/ubuntu/storage.md
|
||||
- docs/getting-started-guides/ubuntu/troubleshooting.md
|
||||
- docs/getting-started-guides/ubuntu/decommissioning.md
|
||||
- docs/getting-started-guides/ubuntu/operational-considerations.md
|
||||
- docs/getting-started-guides/ubuntu/glossary.md
|
||||
- docs/getting-started-guides/ubuntu/local.md
|
||||
- docs/getting-started-guides/ubuntu/logging.md
|
||||
- docs/getting-started-guides/ubuntu/manual.md
|
||||
|
||||
- docs/getting-started-guides/windows/index.md
|
||||
|
||||
- docs/admin/node-conformance.md
|
||||
|
||||
- docs/concepts/cluster-administration/addons.md
|
||||
- docs/admin/salt.md
|
||||
- docs/admin/cluster-large.md
|
||||
- docs/admin/multiple-zones.md
|
||||
- docs/admin/high-availability/index.md
|
||||
- docs/getting-started-guides/binary_release.md
|
||||
@@ -0,0 +1,55 @@
|
||||
bigheader: "Support"
|
||||
abstract: "Troubleshooting resources, frequently asked questions, and community support channels."
|
||||
toc:
|
||||
- title: Support
|
||||
path: /docs/troubleshooting/
|
||||
|
||||
- title: Contributing to the Kubernetes Docs
|
||||
section:
|
||||
- title: Creating a Documentation Pull Request
|
||||
path: /docs/contribute/create-pull-request/
|
||||
- title: Writing a New Topic
|
||||
path: /docs/contribute/write-new-topic/
|
||||
- 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
|
||||
section:
|
||||
- title: Debugging Pods and Replication Controllers
|
||||
path: /docs/user-guide/debugging-pods-and-replication-controllers/
|
||||
- title: Application Introspection and Debugging
|
||||
path: /docs/user-guide/introspection-and-debugging/
|
||||
- title: Retrieving Logs
|
||||
path: /docs/user-guide/logging/
|
||||
- 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
|
||||
section:
|
||||
- title: User FAQ
|
||||
path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ/
|
||||
- title: Debugging FAQ
|
||||
path: https://github.com/kubernetes/kubernetes/wiki/Debugging-FAQ/
|
||||
- title: Services FAQ
|
||||
path: https://github.com/kubernetes/kubernetes/wiki/Services-FAQ/
|
||||
|
||||
- title: Other Resources
|
||||
section:
|
||||
- title: Kubernetes Issue Tracker on GitHub
|
||||
path: https://github.com/kubernetes/kubernetes/issues/
|
||||
- title: Report a Security Vulnerability
|
||||
path: /docs/reporting-security-issues/
|
||||
- title: Release Notes
|
||||
path: https://github.com/kubernetes/kubernetes/releases/
|
||||
- title: Release Roadmap
|
||||
path: https://github.com/kubernetes/kubernetes/milestones/
|
||||
- title: Contributing to Kubernetes Documentation
|
||||
path: /editdocs/
|
||||
+24
-161
@@ -1,171 +1,34 @@
|
||||
bigheader: "Tasks"
|
||||
abstract: "Step-by-step instructions for performing operations with Kubernetes."
|
||||
abstract: "Step-by-step instructions for performing operations with Kuberentes."
|
||||
toc:
|
||||
- docs/tasks/index.md
|
||||
|
||||
- title: Install Tools
|
||||
- title: Tasks
|
||||
path: /docs/tasks/
|
||||
- title: Configuring Pods and Containers
|
||||
section:
|
||||
- docs/tasks/tools/install-kubectl.md
|
||||
- docs/tasks/tools/install-minikube.md
|
||||
- docs/setup/independent/install-kubeadm.md
|
||||
|
||||
- title: Configure Pods and Containers
|
||||
- title: Defining Environment Variables for a Container
|
||||
path: /docs/tasks/configure-pod-container/define-environment-variable-container/
|
||||
- title: Defining a Command and Arguments for a Container
|
||||
path: /docs/tasks/configure-pod-container/define-command-argument-container/
|
||||
- title: Assigning CPU and RAM Resources to a Container
|
||||
path: /docs/tasks/configure-pod-container/assign-cpu-ram-container/
|
||||
- title: Accessing Applications in a Cluster
|
||||
section:
|
||||
- docs/tasks/configure-pod-container/assign-cpu-ram-container.md
|
||||
- docs/tasks/configure-pod-container/configure-volume-storage.md
|
||||
- docs/tasks/configure-pod-container/configure-persistent-volume-storage.md
|
||||
- docs/tasks/configure-pod-container/configure-projected-volume-storage.md
|
||||
- docs/tasks/configure-pod-container/projected-volume.md
|
||||
- docs/tasks/configure-pod-container/security-context.md
|
||||
- docs/tasks/configure-pod-container/environment-variable-expose-pod-information.md
|
||||
- docs/tasks/configure-pod-container/configure-service-account.md
|
||||
- docs/tasks/configure-pod-container/pull-image-private-registry.md
|
||||
- docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md
|
||||
- docs/tasks/configure-pod-container/assign-pods-nodes.md
|
||||
- docs/tasks/configure-pod-container/configure-pod-initialization.md
|
||||
- docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md
|
||||
- docs/tasks/configure-pod-container/configmap.md
|
||||
- docs/tasks/configure-pod-container/configure-pod-configmap.md
|
||||
- docs/tools/kompose/user-guide.md
|
||||
- title: Using Port Forwarding to Access Applications in a Cluster
|
||||
path: /docs/tasks/access-application-cluster/port-forward-access-application-cluster/
|
||||
|
||||
- title: Inject Data Into Applications
|
||||
|
||||
- title: Debugging Applications in a Cluster
|
||||
section:
|
||||
- docs/tasks/inject-data-application/define-command-argument-container.md
|
||||
- docs/tasks/inject-data-application/define-environment-variable-container.md
|
||||
- docs/tasks/inject-data-application/environment-variable-expose-pod-information.md
|
||||
- docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md
|
||||
- docs/tasks/inject-data-application/distribute-credentials-secure.md
|
||||
- docs/tasks/inject-data-application/podpreset.md
|
||||
- title: Determining the Reason for Pod Failure
|
||||
path: /docs/tasks/debug-application-cluster/determine-reason-pod-failure/
|
||||
|
||||
- title: Run Applications
|
||||
|
||||
- title: Accessing the Kubernetes API
|
||||
section:
|
||||
- docs/tasks/run-application/run-stateless-application-deployment.md
|
||||
- docs/tasks/run-application/run-single-instance-stateful-application.md
|
||||
- docs/tasks/run-application/run-replicated-stateful-application.md
|
||||
- docs/tasks/run-application/upgrade-pet-set-to-stateful-set.md
|
||||
- docs/tasks/run-application/scale-stateful-set.md
|
||||
- docs/tasks/run-application/delete-stateful-set.md
|
||||
- docs/tasks/run-application/force-delete-stateful-set-pod.md
|
||||
- docs/tasks/run-application/rolling-update-replication-controller.md
|
||||
- docs/tasks/run-application/horizontal-pod-autoscale.md
|
||||
- docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md
|
||||
- docs/tasks/run-application/configure-pdb.md
|
||||
|
||||
- title: Run Jobs
|
||||
- title: Using an HTTP Proxy to Access the Kubernetes API
|
||||
path: /docs/tasks/access-kubernetes-api/http-proxy-access-api/
|
||||
- title: Administering a Cluster
|
||||
section:
|
||||
- docs/tasks/job/parallel-processing-expansion.md
|
||||
- docs/tasks/job/coarse-parallel-processing-work-queue/index.md
|
||||
- docs/tasks/job/fine-parallel-processing-work-queue/index.md
|
||||
|
||||
- title: Access Applications in a Cluster
|
||||
section:
|
||||
- docs/tasks/access-application-cluster/web-ui-dashboard.md
|
||||
- docs/tasks/access-application-cluster/access-cluster.md
|
||||
- docs/tasks/access-application-cluster/authenticate-across-clusters-kubeconfig.md
|
||||
- docs/tasks/access-application-cluster/port-forward-access-application-cluster.md
|
||||
- docs/tasks/access-application-cluster/load-balance-access-application-cluster.md
|
||||
- docs/tasks/access-application-cluster/service-access-application-cluster.md
|
||||
- docs/tasks/access-application-cluster/connecting-frontend-backend.md
|
||||
- docs/tasks/access-application-cluster/create-external-load-balancer.md
|
||||
- docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md
|
||||
- docs/tasks/access-application-cluster/list-all-running-container-images.md
|
||||
- docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume.md
|
||||
- title: Configuring DNS for a Cluster
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/cluster-dns
|
||||
|
||||
- title: Monitor, Log, and Debug
|
||||
section:
|
||||
- docs/tasks/debug-application-cluster/resource-usage-monitoring.md
|
||||
- docs/tasks/debug-application-cluster/get-shell-running-container.md
|
||||
- docs/tasks/debug-application-cluster/monitor-node-health.md
|
||||
- docs/tasks/debug-application-cluster/logging-stackdriver.md
|
||||
- docs/tasks/debug-application-cluster/events-stackdriver.md
|
||||
- docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md
|
||||
- docs/tasks/debug-application-cluster/determine-reason-pod-failure.md
|
||||
- docs/tasks/debug-application-cluster/debug-init-containers.md
|
||||
- docs/tasks/debug-application-cluster/debug-pod-replication-controller.md
|
||||
- docs/tasks/debug-application-cluster/debug-service.md
|
||||
- docs/tasks/debug-application-cluster/debug-cluster.md
|
||||
- docs/tasks/debug-application-cluster/debug-application.md
|
||||
- docs/tasks/debug-application-cluster/debug-stateful-set.md
|
||||
- docs/tasks/debug-application-cluster/debug-application-introspection.md
|
||||
- docs/tasks/debug-application-cluster/audit.md
|
||||
- title: Use Explorer to Examine the Runtime Environment
|
||||
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/explorer
|
||||
|
||||
- title: Access and Extend the Kubernetes API
|
||||
section:
|
||||
- docs/tasks/access-kubernetes-api/http-proxy-access-api.md
|
||||
- docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions.md
|
||||
- docs/tasks/access-kubernetes-api/extend-api-third-party-resource.md
|
||||
- docs/tasks/access-kubernetes-api/migrate-third-party-resource.md
|
||||
- docs/tasks/access-kubernetes-api/configure-aggregation-layer.md
|
||||
- docs/tasks/access-kubernetes-api/setup-extension-api-server.md
|
||||
|
||||
- title: TLS
|
||||
section:
|
||||
- docs/tasks/tls/managing-tls-in-a-cluster.md
|
||||
|
||||
- title: Administer a Cluster
|
||||
section:
|
||||
- docs/tasks/administer-cluster/access-cluster-api.md
|
||||
- docs/tasks/administer-cluster/access-cluster-services.md
|
||||
- docs/tasks/administer-cluster/securing-a-cluster.md
|
||||
- docs/tasks/administer-cluster/encrypt-data.md
|
||||
- docs/tasks/administer-cluster/configure-upgrade-etcd.md
|
||||
- docs/tasks/administer-cluster/apply-resource-quota-limit.md
|
||||
- docs/tasks/administer-cluster/out-of-resource.md
|
||||
- docs/tasks/administer-cluster/cpu-memory-limit.md
|
||||
- docs/tasks/administer-cluster/reserve-compute-resources.md
|
||||
- docs/tasks/administer-cluster/static-pod.md
|
||||
- docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md
|
||||
- docs/tasks/administer-cluster/cluster-management.md
|
||||
- docs/tasks/administer-cluster/upgrade-1-6.md
|
||||
- docs/tasks/administer-cluster/kubeadm-upgrade-1-7.md
|
||||
- docs/tasks/administer-cluster/namespaces.md
|
||||
- docs/tasks/administer-cluster/namespaces-walkthrough.md
|
||||
- docs/tasks/administer-cluster/dns-horizontal-autoscaling.md
|
||||
- docs/tasks/administer-cluster/safely-drain-node.md
|
||||
- docs/tasks/administer-cluster/declare-network-policy.md
|
||||
- docs/tasks/administer-cluster/calico-network-policy.md
|
||||
- docs/tasks/administer-cluster/romana-network-policy.md
|
||||
- docs/tasks/administer-cluster/weave-network-policy.md
|
||||
- docs/tasks/administer-cluster/change-pv-reclaim-policy.md
|
||||
- docs/tasks/administer-cluster/configure-pod-disruption-budget.md
|
||||
- docs/tasks/administer-cluster/limit-storage-consumption.md
|
||||
- docs/tasks/administer-cluster/change-default-storage-class.md
|
||||
- docs/tasks/administer-cluster/share-configuration.md
|
||||
- docs/tasks/administer-cluster/running-cloud-controller.md
|
||||
- docs/tasks/administer-cluster/highly-available-master.md
|
||||
- docs/tasks/administer-cluster/configure-multiple-schedulers.md
|
||||
- docs/tasks/administer-cluster/ip-masq-agent.md
|
||||
- docs/tasks/administer-cluster/dns-custom-nameservers.md
|
||||
- title: Change Cluster Size
|
||||
path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ#how-do-i-change-the-size-of-my-cluster/
|
||||
|
||||
- title: Federation - Run an App on Multiple Clusters
|
||||
section:
|
||||
- docs/tasks/federation/federation-service-discovery.md
|
||||
- docs/tasks/federation/set-up-cluster-federation-kubefed.md
|
||||
- docs/tasks/federation/set-up-coredns-provider-federation.md
|
||||
- docs/tasks/federation/set-up-placement-policies-federation.md
|
||||
- docs/tasks/administer-federation/cluster.md
|
||||
- docs/tasks/administer-federation/configmap.md
|
||||
- docs/tasks/administer-federation/daemonset.md
|
||||
- docs/tasks/administer-federation/deployment.md
|
||||
- docs/tasks/administer-federation/events.md
|
||||
- docs/tasks/administer-federation/ingress.md
|
||||
- docs/tasks/administer-federation/namespaces.md
|
||||
- docs/tasks/administer-federation/replicaset.md
|
||||
- docs/tasks/administer-federation/secret.md
|
||||
|
||||
- title: Manage Cluster Daemons
|
||||
section:
|
||||
- docs/tasks/manage-daemon/update-daemon-set.md
|
||||
- docs/tasks/manage-daemon/rollback-daemon-set.md
|
||||
|
||||
- title: Manage GPUs
|
||||
section:
|
||||
- docs/tasks/manage-gpus/scheduling-gpus.md
|
||||
|
||||
- title: Assigning Pods to Nodes
|
||||
path: /docs/tasks/administer-cluster/assign-pods-nodes/
|
||||
|
||||
|
||||
+2
-19
@@ -1,22 +1,5 @@
|
||||
bigheader: "Tools"
|
||||
abstract: "Tools to help you use and enhance Kubernetes."
|
||||
toc:
|
||||
- docs/tools/index.md
|
||||
|
||||
- title: Native Tools
|
||||
section:
|
||||
- title: Kubectl
|
||||
path: /docs/user-guide/kubectl/
|
||||
- title: Kubeadm
|
||||
path: /docs/getting-started-guides/kubeadm
|
||||
- title: Kubefed
|
||||
path: /docs/admin/federation/kubefed/
|
||||
- title: Kubernetes Dashboard
|
||||
path: /docs/user-guide/ui/
|
||||
|
||||
- title: Third-Party Tools
|
||||
section:
|
||||
- docs/tools/kompose/index.md
|
||||
- docs/tools/kompose/user-guide.md
|
||||
- title: Helm
|
||||
path: https://github.com/kubernetes/helm
|
||||
- title: Tools
|
||||
path: /docs/tools/
|
||||
|
||||
+36
-43
@@ -1,64 +1,57 @@
|
||||
bigheader: "Tutorials"
|
||||
abstract: "Detailed walkthroughs of common Kubernetes operations and workflows."
|
||||
toc:
|
||||
- docs/tutorials/index.md
|
||||
- title: Tutorials
|
||||
path: /docs/tutorials/
|
||||
- title: Kubernetes Basics
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/index.html
|
||||
- title: Overview
|
||||
path: /docs/tutorials/kubernetes-basics/
|
||||
- title: 1. Create a Cluster
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/cluster-intro.html
|
||||
- docs/tutorials/kubernetes-basics/cluster-interactive.html
|
||||
- title: Using Minikube to Create a Cluster
|
||||
path: /docs/tutorials/kubernetes-basics/cluster-intro/
|
||||
- title: Interactive Tutorial - Creating a Cluster
|
||||
path: /docs/tutorials/kubernetes-basics/cluster-interactive/
|
||||
- title: 2. Deploy an App
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/deploy-intro.html
|
||||
- docs/tutorials/kubernetes-basics/deploy-interactive.html
|
||||
- title: Using kubectl to Create a Deployment
|
||||
path: /docs/tutorials/kubernetes-basics/deploy-intro/
|
||||
- title: Interactive Tutorial - Deploying an App
|
||||
path: /docs/tutorials/kubernetes-basics/deploy-interactive/
|
||||
- title: 3. Explore Your App
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/explore-intro.html
|
||||
- docs/tutorials/kubernetes-basics/explore-interactive.html
|
||||
- title: Viewing Pods and Nodes
|
||||
path: /docs/tutorials/kubernetes-basics/explore-intro/
|
||||
- title: Interactive Tutorial - Exploring Your App
|
||||
path: /docs/tutorials/kubernetes-basics/explore-interactive/
|
||||
- title: 4. Expose Your App Publicly
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/expose-intro.html
|
||||
- docs/tutorials/kubernetes-basics/expose-interactive.html
|
||||
- title: Using a Service to Expose Your App
|
||||
path: /docs/tutorials/kubernetes-basics/expose-intro/
|
||||
- title: Interactive Tutorial - Exposing Your App
|
||||
path: /docs/tutorials/kubernetes-basics/expose-interactive/
|
||||
- title: 5. Scale Your App
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/scale-intro.html
|
||||
- docs/tutorials/kubernetes-basics/scale-interactive.html
|
||||
- title: Running Multiple Instances of Your App
|
||||
path: /docs/tutorials/kubernetes-basics/scale-intro/
|
||||
- title: Interactive Tutorial - Scaling Your App
|
||||
path: /docs/tutorials/kubernetes-basics/scale-interactive/
|
||||
- title: 6. Update Your App
|
||||
section:
|
||||
- docs/tutorials/kubernetes-basics/update-intro.html
|
||||
- docs/tutorials/kubernetes-basics/update-interactive.html
|
||||
- title: Online Training Course
|
||||
path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
|
||||
- docs/tutorials/stateless-application/hello-minikube.md
|
||||
- title: Configuration
|
||||
section:
|
||||
- docs/tutorials/configuration/configure-redis-using-configmap.md
|
||||
- title: Object Management Using kubectl
|
||||
section:
|
||||
- docs/tutorials/object-management-kubectl/object-management.md
|
||||
- docs/tutorials/object-management-kubectl/imperative-object-management-command.md
|
||||
- docs/tutorials/object-management-kubectl/imperative-object-management-configuration.md
|
||||
- docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md
|
||||
- title: Performing a Rolling Update
|
||||
path: /docs/tutorials/kubernetes-basics/update-intro/
|
||||
- title: Interactive Tutorial - Updating Your App
|
||||
path: /docs/tutorials/kubernetes-basics/update-interactive/
|
||||
- title: Stateless Applications
|
||||
section:
|
||||
- docs/tasks/run-application/run-stateless-application-deployment.md
|
||||
- docs/tutorials/stateless-application/guestbook.md
|
||||
- docs/tasks/access-application-cluster/service-access-application-cluster.md
|
||||
- docs/tutorials/stateless-application/expose-external-ip-address.md
|
||||
- title: Running a Stateless Application Using a Deployment
|
||||
path: /docs/tutorials/stateless-application/run-stateless-application-deployment/
|
||||
- title: Using a Service to Access an Application in a Cluster
|
||||
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
|
||||
section:
|
||||
- docs/tutorials/stateful-application/basic-stateful-set.md
|
||||
- docs/tasks/run-application/run-single-instance-stateful-application.md
|
||||
- docs/tasks/run-application/run-replicated-stateful-application.md
|
||||
- docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md
|
||||
- docs/tutorials/stateful-application/cassandra.md
|
||||
- docs/tutorials/stateful-application/zookeeper.md
|
||||
- title: Clusters
|
||||
section:
|
||||
- docs/tutorials/clusters/apparmor.md
|
||||
- title: Services
|
||||
section:
|
||||
- docs/tutorials/services/source-ip.md
|
||||
|
||||
- title: Running a Single-Instance Stateful Application
|
||||
path: /docs/tutorials/stateful-application/run-stateful-application/
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
The topics in the `/docs/api-reference/` section of the Kubernetes docs
|
||||
are being moved to the [Reference](/docs/reference/) section. The content in this topic has moved to:
|
||||
@@ -0,0 +1,313 @@
|
||||
<style>
|
||||
#caseStudyTitle {
|
||||
margin-top: 1em !important;
|
||||
}
|
||||
|
||||
.gridPage p {
|
||||
color: rgb(26,26,26) !important;
|
||||
margin-left: 0 !important;
|
||||
padding-left: 0 !important;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
|
||||
.gridPage #mainContent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.gridPage #mainContent .content {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.gridPage main {
|
||||
max-width: 1100px !important;
|
||||
}
|
||||
|
||||
.gridPage .content {
|
||||
position: relative;
|
||||
margin: 0 auto 50px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.gridPage .content p {
|
||||
line-height: 24px !important;
|
||||
}
|
||||
|
||||
.gridPage .content h3 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.gridPage #hero h5 {
|
||||
padding-left: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.case-studies {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.case-study {
|
||||
position: relative;
|
||||
width: 50%;
|
||||
padding: 0 40px 0 242px;
|
||||
margin-bottom: 60px;
|
||||
min-height: 152px;
|
||||
}
|
||||
|
||||
.case-study:nth-child(3), .case-study:nth-child(4) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.gridPage #mainContent .content .case-study p {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
p.attrib {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.gridPage #video {
|
||||
background: #f9f9f9;
|
||||
height: auto;
|
||||
/*height: 340px;*/
|
||||
}
|
||||
|
||||
.gridPage #video main {
|
||||
position: relative;
|
||||
max-width: 900px !important;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 50px 20px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.gridPage #video main #zulilyLogo {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gridPage #video main img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.gridPage #video h3 {
|
||||
font-size: 32px;
|
||||
font-weight: 300;
|
||||
line-height: 38px;
|
||||
max-width: 80%;
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
|
||||
.gridPage #video p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.gridPage #video p.attrib {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.gridPage #video button > h6 {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
margin: 1em 0;
|
||||
color: #326de6;
|
||||
}
|
||||
|
||||
.gridPage #users {
|
||||
padding: 50px;
|
||||
}
|
||||
|
||||
.gridPage #users main {
|
||||
max-width: 1150px !important;
|
||||
}
|
||||
|
||||
.gridPage #users main h3 {
|
||||
padding-left: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a {
|
||||
display: inline-block;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a img {
|
||||
box-shadow: 1px 1px 2px transparent;
|
||||
transition: box-shadow 0.25s;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a img:hover {
|
||||
box-shadow: 1px 1px 2px #cccccc;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a:last-child img,
|
||||
.gridPage #usersGrid a:last-child img:hover {
|
||||
box-shadow: 1px 1px 2px transparent;
|
||||
}
|
||||
|
||||
.tell-your-story {
|
||||
border: 1px solid #dddddd;
|
||||
border-radius: 6px;
|
||||
box-shadow: 1px 2px 2px #dddddd;
|
||||
}
|
||||
|
||||
.gridPage .feature {
|
||||
position: relative;
|
||||
padding: 20px 0 20px 242px;
|
||||
}
|
||||
|
||||
.gridPage .feature img {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
section.bullets {
|
||||
background-color: #eeeeee;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
section.bullets main {
|
||||
position: relative;
|
||||
max-width: 1100px;
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
section.bullets .content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.bullet {
|
||||
position: relative;
|
||||
width: 50%;
|
||||
padding: 15px 30px;
|
||||
}
|
||||
|
||||
.bullet h4 {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.bullet li {
|
||||
margin-left: 1.25em;
|
||||
list-style: disc;
|
||||
font-weight: 300;
|
||||
color: rgb(26,26,26);
|
||||
line-height: 1.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.details h4, p {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.gridPage .feature p.quote {
|
||||
font-size: 20px;
|
||||
line-height: 28px !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.case-study {
|
||||
padding: 0 10%;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.case-study p.quote {
|
||||
margin-top: 20px !important;
|
||||
}
|
||||
|
||||
.case-study p.attrib {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px){
|
||||
.gridPage #video main {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div + div {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.gridPage #video h3 {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 640px){
|
||||
.case-study {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.case-study:nth-child(3) {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.gridPage .feature {
|
||||
margin-top: 50px;
|
||||
padding: 180px 0 0;
|
||||
}
|
||||
|
||||
.gridPage .feature img {
|
||||
top: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 480px){
|
||||
.gridPage #hero {
|
||||
padding-right: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 80%;
|
||||
min-width: 280px;
|
||||
}
|
||||
|
||||
.bullet {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
+2
-17
@@ -7,20 +7,5 @@
|
||||
```
|
||||
{: id="{{include.file | handleize}}"}
|
||||
{% endcapture %}
|
||||
<table class="includecode">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
{% if ghlink %}<a href="{{ghlink}}" download="{{include.file}}">{% endif %}
|
||||
<code>{{include.file}}</code>
|
||||
{% if ghlink %}</a>{% endif %}
|
||||
<img src="/images/copycode.svg" style="max-height:24px" onclick="copyCode('{{include.file | handleize}}')" title="Copy {{include.file}} to clipboard">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ mysample | markdownify }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="includecode"><thead><tr><th>{% if ghlink %}<a href="{{ghlink}}" download="{{include.file}}">{% endif %}<code>{{include.file}}</code></a><img src="/images/copycode.svg" style="max-height:24px" onClick="copyCode('{{include.file | handleize}}')" title="Copy {{include.file}} to clipboard"></th></tr></thead>
|
||||
<tr><td>{{ mysample | markdownify }}</td></tr></table>
|
||||
@@ -1,6 +0,0 @@
|
||||
You need to either have a dynamic PersistentVolume provisioner with a default
|
||||
[StorageClass](/docs/user-guide/persistent-volumes/#storageclasses),
|
||||
or [statically provision PersistentVolumes](/docs/user-guide/persistent-volumes/#provisioning)
|
||||
yourself to satisfy the [PersistentVolumeClaims](/docs/user-guide/persistent-volumes/#persistentvolumeclaims)
|
||||
used here.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{% if page.deprecated %}
|
||||
<section id="deprecationWarning">
|
||||
<main>
|
||||
<div class="content deprecation-warning">
|
||||
<h3>
|
||||
Documentation for Kubernetes {{ page.version}} is no longer actively maintained. The version you are currently viewing is a static snapshot.
|
||||
For up-to-date documentation, see the <a href="{{ page.currentUrl }}">latest</a> version.
|
||||
</h3>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
{% endif %}
|
||||
@@ -1,28 +0,0 @@
|
||||
<a href="#" id="feature-state-dialog-link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>{{ dialog_title }}</a>
|
||||
<div id="feature-state-dialog" class="ui-dialog-content" title="{{ dialog_title }}">
|
||||
{{ dialog_content | markdownify }}
|
||||
</div>
|
||||
{% raw %}<script>
|
||||
$(function(){
|
||||
|
||||
$( "#feature-state-dialog" ).dialog({
|
||||
autoOpen: false,
|
||||
width: {% endraw %}{{ dialog_width | default: "600" }}{% raw %},
|
||||
buttons: [
|
||||
{
|
||||
text: "Ok",
|
||||
click: function() {
|
||||
$( this ).dialog( "close" );
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// Link to open the dialog
|
||||
$( "#feature-state-dialog-link" ).click(function( event ) {
|
||||
$( "#feature-state-dialog" ).dialog( "open" );
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
});
|
||||
</script>{% endraw %}
|
||||
@@ -1,13 +0,0 @@
|
||||
{% assign dialog_title = "alpha" %}
|
||||
{% capture dialog_content %}
|
||||
This feature is currently in a *alpha* state, meaning:
|
||||
|
||||
* The version names contain alpha (e.g. v1alpha1).
|
||||
* Might be buggy. Enabling the feature may expose bugs. Disabled by default.
|
||||
* Support for feature may be dropped at any time without notice.
|
||||
* The API may change in incompatible ways in a later software release without notice.
|
||||
* Recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.
|
||||
|
||||
{% endcapture %}
|
||||
|
||||
**FEATURE STATE:** `Kubernetes {{ for_k8s_version | default: page.version }}` {% include feature-dialog.md %}
|
||||
@@ -1,14 +0,0 @@
|
||||
{% assign dialog_title = "beta" %}
|
||||
{% capture dialog_content %}
|
||||
This feature is currently in a *beta* state, meaning:
|
||||
|
||||
* The version names contain beta (e.g. v2beta3).
|
||||
* Code is well tested. Enabling the feature is considered safe. Enabled by default.
|
||||
* Support for the overall feature will not be dropped, though details may change.
|
||||
* The schema and/or semantics of objects may change in incompatible ways in a subsequent beta or stable release. When this happens, we will provide instructions for migrating to the next version. This may require deleting, editing, and re-creating API objects. The editing process may require some thought. This may require downtime for applications that rely on the feature.
|
||||
* Recommended for only non-business-critical uses because of potential for incompatible changes in subsequent releases. If you have multiple clusters that can be upgraded independently, you may be able to relax this restriction.
|
||||
* **Please do try our beta features and give feedback on them! After they exit beta, it may not be practical for us to make more changes.**
|
||||
|
||||
{% endcapture %}
|
||||
|
||||
**FEATURE STATE:** `Kubernetes {{ for_k8s_version | default: page.version }}` {% include feature-dialog.md %}
|
||||
@@ -1,6 +0,0 @@
|
||||
{% assign dialog_title = "deprecated" %}
|
||||
{% capture dialog_content %}
|
||||
This feature is *deprecated*. For more information on this state, see the [Kubernetes Deprecation Policy](/docs/reference/deprecation-policy/).
|
||||
{% endcapture %}
|
||||
|
||||
**DEPRECATION NOTICE:** As of `Kubernetes {{ for_k8s_version | default: page.version }}`, this has been {% include feature-dialog.md %}
|
||||
@@ -1,10 +0,0 @@
|
||||
{% assign dialog_title = "stable" %}
|
||||
{% capture dialog_content %}
|
||||
This feature is *stable*, meaning:
|
||||
|
||||
* The version name is vX where X is an integer.
|
||||
* Stable versions of features will appear in released software for many subsequent versions.
|
||||
|
||||
{% endcapture %}
|
||||
|
||||
**FEATURE STATE:** `Kubernetes {{ for_k8s_version | default: page.version }}` {% include feature-dialog.md %}
|
||||
@@ -1,8 +0,0 @@
|
||||
This guide assumes that you have a running Kubernetes Cluster
|
||||
Federation installation. If not, then head over to the
|
||||
[federation admin guide](/docs/tutorials/federation/set-up-cluster-federation-kubefed/) to learn how to
|
||||
bring up a cluster federation (or have your cluster administrator do
|
||||
this for you).
|
||||
Other tutorials, such as Kelsey Hightower's
|
||||
[Federated Kubernetes Tutorial](https://github.com/kelseyhightower/kubernetes-cluster-federation),
|
||||
might also help you create a Federated Kubernetes cluster.
|
||||
@@ -1,2 +0,0 @@
|
||||
The topics in the [Federation API](/docs/federation/api-reference/) section of the Kubernetes docs
|
||||
are being moved to the [Reference](/docs/reference/) section. The content in this topic has moved to:
|
||||
@@ -2,19 +2,19 @@
|
||||
|
||||
<style>
|
||||
.cse .gsc-control-cse, .gsc-control-cse, {
|
||||
padding: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.gsc-control-cse table, .gsc-control-cse-en table {
|
||||
margin:0px !important;
|
||||
margin:0px !important;
|
||||
}
|
||||
.gsc-above-wrapper-area {
|
||||
border-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-36037335-10', 'auto');
|
||||
@@ -22,32 +22,32 @@ ga('send', 'pageview');
|
||||
|
||||
// hide docs nav area if no nav is present, or if nav only contains a link to the current page
|
||||
(function () {
|
||||
window.addEventListener('DOMContentLoaded', init)
|
||||
window.addEventListener('DOMContentLoaded', init)
|
||||
|
||||
// play nice with our neighbors
|
||||
function init() {
|
||||
window.removeEventListener('DOMContentLoaded', init)
|
||||
hideNav()
|
||||
}
|
||||
// play nice with our neighbors
|
||||
function init() {
|
||||
window.removeEventListener('DOMContentLoaded', init)
|
||||
hideNav()
|
||||
}
|
||||
|
||||
function hideNav(toc){
|
||||
if (!toc) toc = document.querySelector('#docsToc')
|
||||
var container = toc.querySelector('.container')
|
||||
function hideNav(toc){
|
||||
if (!toc) toc = document.querySelector('#docsToc')
|
||||
var container = toc.querySelector('.container')
|
||||
|
||||
// container is built dynamically, so it may not be present on the first runloop
|
||||
if (container) {
|
||||
if (container.childElementCount === 0 || toc.querySelectorAll('a.item').length === 1) {
|
||||
toc.style.display = 'none'
|
||||
document.getElementById('docsContent').style.width = '100%'
|
||||
}
|
||||
} else {
|
||||
requestAnimationFrame(function () {
|
||||
hideNav(toc)
|
||||
})
|
||||
}
|
||||
}
|
||||
// container is built dynamically, so it may not be present on the first runloop
|
||||
if (container) {
|
||||
if (container.childElementCount === 0 || toc.querySelectorAll('a.item').length === 1) {
|
||||
toc.style.display = 'none'
|
||||
document.getElementById('docsContent').style.width = '100%'
|
||||
}
|
||||
} else {
|
||||
requestAnimationFrame(function () {
|
||||
hideNav(toc)
|
||||
})
|
||||
}
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- Commenting out AnswerDash for now; we need to work on our list of questions/answers/design first
|
||||
<!-- Start of AnswerDash script <script>var AnswerDash;!function(e,t,n,s,a){if(!t.getElementById(s)){var i,r=t.createElement(n),c=t.getElementsByTagName(n)[0];e[a]||(i=e[a]=function(){i.__oninit.push(arguments)},i.__oninit=[]),r.type="text/javascript",r.async=!0,r.src="https://p1.answerdash.com/answerdash.min.js?siteid=756",r.setAttribute("id",s),c.parentNode.insertBefore(r,c)}}(window,document,"script","answerdash-script","AnswerDash");</script> <!-- End of AnswerDash script -->
|
||||
<!-- Start of AnswerDash script <script>var AnswerDash;!function(e,t,n,s,a){if(!t.getElementById(s)){var i,r=t.createElement(n),c=t.getElementsByTagName(n)[0];e[a]||(i=e[a]=function(){i.__oninit.push(arguments)},i.__oninit=[]),r.type="text/javascript",r.async=!0,r.src="https://p1.answerdash.com/answerdash.min.js?siteid=756",r.setAttribute("id",s),c.parentNode.insertBefore(r,c)}}(window,document,"script","answerdash-script","AnswerDash");</script> <!-- End of AnswerDash script -->
|
||||
+27
-32
@@ -1,34 +1,29 @@
|
||||
<footer>
|
||||
<main class="light-text">
|
||||
<nav>
|
||||
<a href="/docs/tutorials/stateless-application/hello-minikube/">Get Started</a>
|
||||
<a href="/docs/home/">Documentation</a>
|
||||
<a href="http://blog.kubernetes.io/">Blog</a>
|
||||
<a href="/partners/">Partners</a>
|
||||
<a href="/community/">Community</a>
|
||||
<a href="/case-studies/">Case Studies</a>
|
||||
</nav>
|
||||
<div class="social">
|
||||
<div>
|
||||
<a href="https://twitter.com/kubernetesio" class="twitter"><span>twitter</span></a>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>Github</span></a>
|
||||
<a href="http://slack.k8s.io/" class="slack"><span>Slack</span></a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>Stack Overflow</span></a>
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-users" class="mailing-list"><span>Mailing List</span></a>
|
||||
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>Events Calendar</span></a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="/docs/setup/pick-right-solution/" class="button">Get Kubernetes</a>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="button">Contribute</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="miceType" class="center">
|
||||
© {{ 'now' | date: "%Y" }} The Kubernetes Authors | Documentation Distributed under <a href="https://git.k8s.io/kubernetes.github.io/LICENSE" class="light-text">CC BY 4.0</a>
|
||||
</div>
|
||||
<div id="miceType" class="center">
|
||||
Copyright © {{ 'now' | date: "%Y" }} The Linux Foundation®. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page: <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">https://www.linuxfoundation.org/trademark-usage</a>
|
||||
</div>
|
||||
</main>
|
||||
<main class="light-text">
|
||||
<nav>
|
||||
<a href="/docs/hellonode/">Get Started</a>
|
||||
<a href="/docs/">Documentation</a>
|
||||
<a href="http://blog.kubernetes.io/">Blog</a>
|
||||
<a href="/partners/">Partners</a>
|
||||
<a href="/community/">Community</a>
|
||||
<a href="/case-studies/">Case Studies</a>
|
||||
</nav>
|
||||
<div class="social">
|
||||
<div>
|
||||
<a href="https://twitter.com/kubernetesio" class="twitter"><span>twitter</span></a>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>Github</span></a>
|
||||
<a href="http://slack.k8s.io/" class="slack"><span>Slack</span></a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>Stack Overflow</span></a>
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-users" class="mailing-list"><span>Mailing List</span></a>
|
||||
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>Events Calendar</span></a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="//get.k8s.io" class="button">Download K8s</a>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="button">Contribute to the K8s codebase</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="miceType" class="center">© {{ 'now' | date: "%Y" }} The Kubernetes Authors | Distributed under <a href="https://github.com/kubernetes/kubernetes.github.io/blob/master/LICENSE" class="light-text">CC BY 4.0</a></div>
|
||||
</main>
|
||||
</footer>
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
{% if page.title %}{% assign title=page.title %}{% endif %}
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<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 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="/css/styles.css"/>
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="/css/sweetalert.css">
|
||||
<script src="/js/jquery-2.2.0.min.js"></script>
|
||||
<script src="/js/jquery-ui.min.js"></script>
|
||||
<script src="/js/script.js"></script>
|
||||
<script src="/js/sweetalert.min.js"></script>
|
||||
<script src="/js/bootstrap.min.js"></script>
|
||||
<title>Kubernetes - {{ title }}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="cellophane" onclick="kub.toggleMenu()"></div>
|
||||
<header>
|
||||
<a href="/" class="logo"></a>
|
||||
<div class="nav-buttons" data-auto-burger="primary">
|
||||
<ul class="global-nav">
|
||||
<li>
|
||||
<a href="#">
|
||||
{{page.version}} <span class="ui-icon ui-icon-carat-1-s"></span>
|
||||
</a>
|
||||
<ul>
|
||||
{% for version in page.versions %}
|
||||
<li><a href="{{ version.url }}">{{ version.version }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
<a href="/docs/" class="button" id="viewDocs" data-auto-burger-exclude>View Documentation</a>
|
||||
<a href="/docs/hellonode/" class="button" id="tryKubernetes" data-auto-burger-exclude>Try Kubernetes</a>
|
||||
<button id="hamburger" onclick="kub.toggleMenu()" data-auto-burger-exclude><div></div></button>
|
||||
</div>
|
||||
|
||||
<nav id="mainNav">
|
||||
<main data-auto-burger="primary">
|
||||
<div class="nav-box">
|
||||
<h3><a href="/docs/hellonode/">Get Started</a></h3>
|
||||
<p>Ready to get your hands dirty? Build a simple Kubernetes cluster that runs "Hello World" for Node.js.</p>
|
||||
</div>
|
||||
<div class="nav-box">
|
||||
<h3><a href="/docs/">Documentation</a></h3>
|
||||
<p>Learn how to use Kubernetes with the use of walkthroughs, samples, and reference documentation. You can even <a href="/editdocs/" data-auto-burger-exclude>help contribute to the docs</a>!</p>
|
||||
</div>
|
||||
<div class="nav-box">
|
||||
<h3><a href="/community/">Community</a></h3>
|
||||
<p>If you need help, you can connect with other Kubernetes users and the Kubernetes authors, attend community events, and watch video presentations from around the web.</p>
|
||||
</div>
|
||||
<div class="nav-box">
|
||||
<h3><a href="http://blog.kubernetes.io">Blog</a></h3>
|
||||
<p>Read the latest news for Kubernetes and the containers space in general, and get technical how-tos hot off the presses.</p>
|
||||
</div>
|
||||
</main>
|
||||
<main data-auto-burger="primary">
|
||||
<div class="left">
|
||||
<h5 class="github-invite">Interested in hacking on the core Kubernetes code base?</h5>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="button" data-auto-burger-exclude>View On Github</a>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<h5 class="github-invite">Explore the community</h5>
|
||||
<div class="social">
|
||||
<a href="https://twitter.com/kubernetesio" class="twitter"><span>Twitter</span></a>
|
||||
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>Github</span></a>
|
||||
<a href="http://slack.k8s.io/" class="slack"><span>Slack</span></a>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>Stack Overflow</span></a>
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-users" class="mailing-list"><span>Mailing List</span></a>
|
||||
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>Events Calendar</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear" style="clear: both"></div>
|
||||
</main>
|
||||
</nav>
|
||||
</header>
|
||||
+15
-22
@@ -1,24 +1,17 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" type="image/png" href="/images/favicon.png">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto+Mono">
|
||||
<link rel="stylesheet" type="text/css" href="/css/styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/jquery-ui.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/sweetalert.css">
|
||||
{% if page.class == "gridPage" %}<link rel="stylesheet" type="text/css" href="/css/gridpage.css">{% endif %}
|
||||
|
||||
{% if page.description %}
|
||||
<meta name="description" content="{{ page.description }}" />
|
||||
{% else %}
|
||||
<meta name="description" content="{{ page.title }}" />
|
||||
{% endif %}
|
||||
|
||||
<script src="/js/jquery-2.2.0.min.js"></script>
|
||||
<script src="/js/jquery-ui.min.js"></script>
|
||||
<script src="/js/script.js"></script>
|
||||
<script src="/js/sweetalert.min.js"></script>
|
||||
<script src="/js/bootstrap.min.js"></script>
|
||||
{% seo %}
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<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 rel="stylesheet" href='https://fonts.googleapis.com/css?family=Roboto+Mono' type='text/css'>
|
||||
<link rel="stylesheet" href="/css/styles.css"/>
|
||||
<link rel="stylesheet" href="/css/jquery-ui.min.css">
|
||||
<link rel="stylesheet" href="/css/sweetalert.css">
|
||||
{% if page.deprecated %}<link rel="stylesheet" type="text/css" href="/css/deprecation-warning.css">{% endif %}
|
||||
{% if page.class == "gridPage" %}<link rel="stylesheet" href="/css/gridpage.css">{% endif %}
|
||||
<script src="/js/jquery-2.2.0.min.js"></script>
|
||||
<script src="/js/jquery-ui.min.js"></script>
|
||||
<script src="/js/script.js"></script>
|
||||
<script src="/js/sweetalert.min.js"></script>
|
||||
<script src="/js/bootstrap.min.js"></script>
|
||||
</head>
|
||||
|
||||
+12
-3
@@ -5,11 +5,20 @@
|
||||
|
||||
<div class="nav-buttons" data-auto-burger="primary">
|
||||
<ul class="global-nav">
|
||||
<li><a href="/docs/home/">Documentation</a></li>
|
||||
<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>
|
||||
<li>
|
||||
<a href="#">
|
||||
{{page.version}} <span class="ui-icon ui-icon-carat-1-s"></span>
|
||||
</a>
|
||||
<ul>
|
||||
{% for version in page.versions %}
|
||||
<li><a href="{{ version.url }}">{{ version.version }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- <a href="/docs/home" 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>
|
||||
|
||||
+2
-234
@@ -279,246 +279,14 @@
|
||||
logo: 'harbur',
|
||||
link: 'https://harbur.io/',
|
||||
blurb: 'Based in Barcelona, Harbur is a consulting firm that helps companies deploy self-healing solutions empowered by Container technologies'
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Endocode',
|
||||
logo: 'endocode',
|
||||
link: 'https://endocode.com/kubernetes/',
|
||||
blurb: 'Endocode practices and teaches the open source way. Kernel to cluster - Dev to Ops. We offer Kubernetes trainings, services and support.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Spotinst',
|
||||
logo: 'spotinst',
|
||||
link: 'http://blog.spotinst.com/2016/08/04/elastigroup-kubernetes-minions-steroids/',
|
||||
blurb: 'Spotinst uses a prediction algorithm in the Amazon EC2 Spot allowing k8s clusters to increase performance and lower the infrastructure costs'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'inwinSTACK',
|
||||
logo: 'inwinstack',
|
||||
link: 'http://www.inwinstack.com/index.php/en/solutions-en/',
|
||||
blurb: 'Our container service leverages OpenStack-based infrastructure and its container orchestration engine Magnum to manage Kubernetes clusters.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Semantix',
|
||||
logo: 'semantix',
|
||||
link: 'http://www.semantix.com.br/',
|
||||
blurb: 'Semantix is a company that works with data analytics and distributed systems. Kubernetes is used to orchestrate services for our customers.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'ASM Technologies Limited',
|
||||
logo: 'asm',
|
||||
link: 'http://www.asmtech.com/',
|
||||
blurb: 'Our technology supply chain portfolio enables your software products to be accessible, viable and available more effectively.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'InfraCloud Technologies',
|
||||
logo: 'infracloud',
|
||||
link: 'http://blog.infracloud.io/state-of-kubernetes/',
|
||||
blurb: 'InfraCloud Technologies is software consultancy which provides services in Containers, Cloud and DevOps.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'SignalFx',
|
||||
logo: 'signalfx',
|
||||
link: 'https://github.com/signalfx/integrations/tree/master/kubernetes',
|
||||
blurb: 'Gain real-time visibility across metrics & the most intelligent alerts for todays architectures, including deep integration with Kubernetes'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'NATS',
|
||||
logo: 'nats',
|
||||
link: 'https://github.com/pires/kubernetes-nats-cluster',
|
||||
blurb: 'NATS is a simple, secure, and scalable cloud native messaging system.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'RX-M',
|
||||
logo: 'rxm',
|
||||
link: 'http://rx-m.com/training/kubernetes-training/',
|
||||
blurb: 'Market neutral Kubernetes Dev, DevOps and Production training and consulting services'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Emerging Technology Advisors',
|
||||
logo: 'eta',
|
||||
link: 'https://www.emergingtechnologyadvisors.com/services/kubernetes.html',
|
||||
blurb: 'ETA helps companies architect, implement, and manage scalable applications using Kubernetes on on public or private cloud.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'CloudPlex.io',
|
||||
logo: 'cloudplex',
|
||||
link: 'http://www.cloudplex.io',
|
||||
blurb: 'CloudPlex enables operations teams to visually deploy, orchestrate, manage, and monitor infrastructure, applications, and services in public or private cloud.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Kumina',
|
||||
logo: 'kumina',
|
||||
link: 'https://www.kumina.nl/managed_kubernetes',
|
||||
blurb: 'Kumina creates Kubernetes solutions on your choice of infrastructure with around-the-clock management and unlimited support.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'CA Technologies',
|
||||
logo: 'ca',
|
||||
link: 'https://www.ca.com/us/products/application-deployment.html',
|
||||
blurb: 'The RA CDE Kubernetes plugin enables an automated process for pushing changes to production by applying standard Kubernetes YAML files'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'CoScale',
|
||||
logo: 'coscale',
|
||||
link: 'http://www.coscale.com/blog/how-to-monitor-your-kubernetes-cluster',
|
||||
blurb: 'Full stack monitoring of containers and microservices orchestrated by Kubernetes. Powered by anomaly detection to find problems faster.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Supergiant.io',
|
||||
logo: 'supergiant',
|
||||
link: 'https://supergiant.io/blog/supergiant-packing-algorithm-unique-save-money',
|
||||
blurb: 'Supergiant autoscales hardware for Kubernetes. Open-source, it makes HA, distributed, stateful apps easy to deploy, manage, and scale.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Avi Networks',
|
||||
logo: 'avinetworks',
|
||||
link: 'https://kb.avinetworks.com/avi-vantage-openshift-installation-guide/',
|
||||
blurb: 'Avis elastic application services fabric provides scalable, feature rich & integrated L4-7 networking for K8S environments.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'codecrux web technologies pvt ltd',
|
||||
logo: 'codecrux',
|
||||
link: 'http://codecrux.com/kubernetes/',
|
||||
blurb: 'At CodeCrux we help your organization get the most out of Containers and Kubernetes, regardless of where you are in your journey'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Greenqloud',
|
||||
logo: 'qstack',
|
||||
link: 'https://www.qstack.com/application-orchestration/',
|
||||
blurb: 'Qstack provides self-serviceable on-site Kubernetes clusters with an intuitive User Interface for Infrastructure and Kubernetes management.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'StackOVerdrive.io',
|
||||
logo: 'stackoverdrive',
|
||||
link: 'http://www.stackoverdrive.net/kubernetes-consulting/',
|
||||
blurb: 'We are a devops consulting firm and we do alot of work with containers and Kunbernetes is one of our go to tools.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'F5 Networks',
|
||||
logo: 'f5networks',
|
||||
link: 'https://f5.com/about-us/news/press-kit',
|
||||
blurb: 'Integration of our ADC services with Kubernetes'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'StackIQ, Inc.',
|
||||
logo: 'stackiq',
|
||||
link: 'https://www.stackiq.com/kubernetes/',
|
||||
blurb: 'With Stacki and the Stacki Pallet for Kubernetes, you can go from bare metal to containers in one step very quickly and easily.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Cobe',
|
||||
logo: 'cobe',
|
||||
link: 'https://cobe.io/blog/posts/problems-within-your-kubernetes-cluster/',
|
||||
blurb: 'Manage Kubernetes clusters with a live, searchable model that captures all relationships and performance data in full visualised context.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Datawire',
|
||||
logo: 'datawire',
|
||||
link: 'http://www.datawire.io',
|
||||
blurb: 'Datawires open source tools let your microservices developers be awesomely productive on Kubernetes, while letting ops sleep at night.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Mashape, Inc.',
|
||||
logo: 'mashape',
|
||||
link: 'https://getkong.org/install/kubernetes/',
|
||||
blurb: 'Kong is a scalable open source API layer that runs in front of any RESTful API and can be provisioned to a Kubernetes cluster.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'F5 Networks',
|
||||
logo: 'f5networks',
|
||||
link: 'http://github.com/f5networks',
|
||||
blurb: 'We have a LB integration into Kubernetes.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Lovable Tech',
|
||||
logo: 'lovable',
|
||||
link: 'https://drive.google.com/file/d/0BxCnAyMK1pgBTUFOdEZsUndLa01xMGJYZWtUVmVOdldadk80/view?usp=sharing',
|
||||
blurb: ''
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'StackState',
|
||||
logo: 'stackstate',
|
||||
link: 'http://stackstate.com/platform/container-monitoring',
|
||||
blurb: 'Operational Analytics across teams and tools. Includes topology visualization, root cause analysis and anomaly detection for Kubernetes.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'INEXCCO INC',
|
||||
logo: 'inexcco',
|
||||
link: 'https://www.inexcco.com/',
|
||||
blurb: 'Strong DevOps and Cloud talent working with couple clients on kubernetes and helm implementations. '
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Bitnami',
|
||||
logo: 'bitnami',
|
||||
link: 'http://bitnami.com/kubernetes',
|
||||
blurb: 'Bitnami brings a catalog of trusted, up to date, and easy to use applications and application building blocks to Kubernetes.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Nebulaworks',
|
||||
logo: 'nebulaworks',
|
||||
link: 'http://www.nebulaworks.com/container-platforms',
|
||||
blurb: 'Nebulaworks provides services to help the enterprise adopt modern container platforms and optimized processes to enable innovation at scale.'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'EASYNUBE LTD',
|
||||
logo: 'easynube',
|
||||
link: 'https://www.carrefour.es/supermercado/?ic_source=portal-home&ic_medium=menu-links&ic_content=section-home',
|
||||
blurb: 'Provide consultancy, architecture and implementation'
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
name: 'Opcito Technologies',
|
||||
logo: 'opcito',
|
||||
link: 'http://www.opcito.com/kubernetes/',
|
||||
blurb: 'Opcito is a software consultancy that uses Kubernetes to help organisations build, architect & deploy highly scalable applications.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: 'Huawei Technologies Co., Ltd.',
|
||||
logo: 'huawei',
|
||||
link: 'http://developer.huawei.com/ict/en/site-paas',
|
||||
blurb: 'FusionStage is an enterprise-grade PaaS, the core of which is based on open source container technology including Kubernetes and Docker.'
|
||||
},
|
||||
{
|
||||
type: 0,
|
||||
name: '{code} by Dell EMC',
|
||||
logo: 'codedellemc',
|
||||
link: 'https://blog.codedellemc.com',
|
||||
blurb: 'Respected as a thought leader in storage persistence for containerized applications. Contributed significant work to K8 and Ecosystem'
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
var isvContainer = document.getElementById('isvContainer')
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{% assign tabsraw = tabspec | newline_to_br | split: '<br />' %}
|
||||
{% assign tabsetname = tabsraw[0] %}
|
||||
<script>$(function(){$("#{{tabsetname}}").tabs();});</script>
|
||||
<div id="{{tabsetname}}">
|
||||
<ul>{% for tab in tabsraw offset:1 %}{% assign thisTab = tab | split: ',' %}
|
||||
<li><a href="#{{ thisTab[0] | strip | handleize }}">{{ thisTab[0] | strip}}</a></li>{% endfor %}
|
||||
</ul>
|
||||
{% for tab in tabsraw offset:1 %}
|
||||
{% assign thisTab = tab | split: ',' %}
|
||||
{% assign tabLang=thisTab[1] %}
|
||||
{% assign tabFile=thisTab[2] %}
|
||||
{% assign tabGHLink=thisTab[3] %}
|
||||
<div id="{{ thisTab[0] | strip | handleize }}">
|
||||
{% include code.html language=tabLang file=tabFile ghlink=tabGHLink %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
@@ -1,15 +0,0 @@
|
||||
{% comment %} See /docs/tabs-example.md for usage example. {% endcomment %}
|
||||
{% assign tab_set_id = tab_set_name | default: "tabset" | slugify %}
|
||||
<div id="{{tab_set_id}}">
|
||||
<ul>
|
||||
{% for name in tab_names %}
|
||||
<li><a href="#{{tab_set_id}}-{{forloop.index0}}">{{ name | strip }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% for content in tab_contents %}
|
||||
<div id="{{tab_set_id}}-{{forloop.index0}}">
|
||||
{{ content | markdownify }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<script>$(function(){$("#{{tab_set_id}}").tabs();});</script>
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
{% if whatsnext %}
|
||||
|
||||
## What's next
|
||||
### What's next
|
||||
|
||||
{{ whatsnext }}
|
||||
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
{% if page.cards %}<!-- check for this before going any further; if not present, skip to else at bottom -->
|
||||
<style>
|
||||
h2, h3, h4 {
|
||||
border-bottom: 0px !important;
|
||||
font-size: 22px !important;
|
||||
padding-bottom: 20px !important;
|
||||
}
|
||||
.colContainer {
|
||||
padding-top:2px;
|
||||
padding-left: 2px;
|
||||
overflow: auto;
|
||||
}
|
||||
#samples a {
|
||||
color: #000;
|
||||
}
|
||||
.col3rd {
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 30px;
|
||||
margin-bottom: 30px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.col3rd h3, .col2nd h3 {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
.col3rd .button, .col2nd .button {
|
||||
margin-top: 20px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.col3rd p, .col2nd p {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.col2nd {
|
||||
display: block;
|
||||
width: 400px;
|
||||
float: left;
|
||||
margin-right: 30px;
|
||||
margin-bottom: 30px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.shadowbox {
|
||||
width: 250px;
|
||||
display: inline;
|
||||
float: left;
|
||||
text-transform: none;
|
||||
font-weight: bold;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
line-height: 24px;
|
||||
position: relative;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 2px 2px rgba(0,0,0,.24),0 0 2px rgba(0,0,0,.12);
|
||||
border-radius: 5px;
|
||||
background: #fff;
|
||||
transition: all .3s;
|
||||
padding: 16px;
|
||||
margin: 0 16px 16px 0;
|
||||
text-decoration: none;
|
||||
letter-spacing: .01em;
|
||||
height: 220px;
|
||||
}
|
||||
.shadowbox img {
|
||||
min-width: 100px;
|
||||
max-width: 100px;
|
||||
max-height: 50px;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
float: left;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="colContainer">
|
||||
{% for card in page.cards %}{% if card.title %}
|
||||
<div class="col3rd shadowbox">
|
||||
<h3>{{card.title}}</h3>
|
||||
<p>{% if card.image %}<img src="{{card.image}}">{% endif %}{{card.description}}</p>
|
||||
</div>
|
||||
{% endif %}{% endfor %}
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
### ERROR: You must define "cards" front-matter YAML
|
||||
{: style="color:red" }
|
||||
|
||||
This template requires that you insert YAML at the top of your document
|
||||
that defines the "cards" you'd like to display on the page. The cards will
|
||||
render in clickable boxes.
|
||||
|
||||
To get rid of this message and take advantage of this template, define `cards`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
cards:
|
||||
- progression: no
|
||||
- card:
|
||||
title: Mean Stack
|
||||
image: /docs/meanstack/image_0.png
|
||||
description: Lorem ipsum dolor it verberum.
|
||||
- card:
|
||||
title: Guestbook + Redis
|
||||
image: /images/docs/redis.svg
|
||||
description: Lorem ipsum dolor it verberum.
|
||||
- card:
|
||||
title: Cloud Native Cassandra
|
||||
image: /images/docs/cassandra.svg
|
||||
description: Lorem ipsum dolor it verberum.
|
||||
- card:
|
||||
title: WordPress + MySQL
|
||||
image: /images/docs/wordpress.svg
|
||||
description: Lorem ipsum dolor it verberum.
|
||||
---
|
||||
```
|
||||
|
||||
**Note:** If `progression` is set to `yes` then a "Start Here!" icon will be
|
||||
placed on the first card and arrows suggesting linear reading will be overlayed
|
||||
between the other cards, telling the reader that they should explore the content
|
||||
in a certain order.
|
||||
|
||||
{% endif %}
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
{% if prerequisites %}
|
||||
|
||||
## Before you begin
|
||||
### Before you begin
|
||||
|
||||
{{ prerequisites }}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
{% if whatsnext %}
|
||||
|
||||
## What's next
|
||||
### What's next
|
||||
|
||||
{{ whatsnext }}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
{% if objectives %}
|
||||
|
||||
## Objectives
|
||||
### Objectives
|
||||
|
||||
{{ objectives }}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
{% if prerequisites %}
|
||||
|
||||
## Before you begin
|
||||
### Before you begin
|
||||
|
||||
{{ prerequisites }}
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
{% if cleanup %}
|
||||
|
||||
## Cleaning up
|
||||
### Cleaning up
|
||||
|
||||
{{ cleanup }}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
{% if whatsnext %}
|
||||
|
||||
## What's next
|
||||
### What's next
|
||||
|
||||
{{ whatsnext }}
|
||||
|
||||
|
||||
@@ -1,15 +1 @@
|
||||
{% 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 %}
|
||||
{% 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 %}
|
||||
+6
-25
@@ -1,25 +1,6 @@
|
||||
{% for item in include.tree %}
|
||||
{% if item.section %}
|
||||
<div class="item" data-title="{{ item.title }}">
|
||||
<div class="container">
|
||||
{% include_cached tree.html tree=item.section %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
{% capture whitespace %}
|
||||
{% if item.path %}
|
||||
{% assign path = item.path %}
|
||||
{% assign title = item.title %}
|
||||
{% else %}
|
||||
{% assign found_page = site.pages | where: "path", item | first %}
|
||||
{% assign title = found_page.title %}
|
||||
{% assign path = found_page.url %}
|
||||
{% endif %}
|
||||
{% endcapture %}
|
||||
|
||||
{% if path %}
|
||||
<a class="item" data-title="{{ title }}" href="{{ path }}"></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for item in tree %}{% if item.section %}
|
||||
<div class="item" data-title="{{ item.title }}">
|
||||
<div class="container">{% assign tree = item.section %}{% include tree.html %}
|
||||
</div>
|
||||
</div>{% else %}{% assign prefix = item.path | slice: 0, 4 %}{% if prefix == "http" %}{% assign target=" target='_blank'" %}{% else %}{% assign target="" %}{% endif %}
|
||||
<a class="item" data-title="{{ item.title }}" href="{{ item.path }}"{{ target }}></a>{% endif %}{% endfor %}
|
||||
@@ -1,3 +0,0 @@
|
||||
The topics in the [User Guide](/docs/user-guide/) section of the Kubernetes docs
|
||||
are being moved to the [Tasks](/docs/tasks/), [Tutorials](/docs/tutorials/), and
|
||||
[Concepts](/docs/concepts) sections. The content in this topic has moved to:
|
||||
@@ -1,12 +0,0 @@
|
||||
|
||||
|
||||
<table style="background-color:#eeeeee">
|
||||
<tr>
|
||||
<td>
|
||||
<p><b>NOTICE</b></p>
|
||||
<p>As of March 14, 2017, the Kubernetes SIG-Docs-Maintainers group have begun migration of the User Guide content as announced previously to the <a href="https://git.k8s.io/community/sig-docs">SIG Docs community</a> through the <a href="https://groups.google.com/forum/#!forum/kubernetes-sig-docs">kubernetes-sig-docs</a> group and <a href="https://kubernetes.slack.com/messages/sig-docs/">kubernetes.slack.com #sig-docs</a> channel.</p>
|
||||
<p>The user guides within this section are being refactored into topics within Tutorials, Tasks, and Concepts. Anything that has been moved will have a notice placed in its previous location as well as a link to its new location. The reorganization implements a new table of contents and should improve the documentation's findability and readability for a wider range of audiences.</p>
|
||||
<p>For any questions, please contact: <a href="mailto:kubernetes-sig-docs@googlegroups.com">kubernetes-sig-docs@googlegroups.com</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -2079,7 +2079,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
||||
<div class="sect2">
|
||||
<h3 id="_v1_flexvolumesource">v1.FlexVolumeSource</h3>
|
||||
<div class="paragraph">
|
||||
<p>FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.</p>
|
||||
<p>FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.</p>
|
||||
</div>
|
||||
<table class="tableblock frame-all grid-all" style="width:100%; ">
|
||||
<colgroup>
|
||||
@@ -2535,7 +2535,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">flexVolume</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_flexvolumesource">v1.FlexVolumeSource</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
@@ -4275,10 +4275,10 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">host</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the<br>
|
||||
IP in the Spec of the parent Ingress.<br>
|
||||
IP in the Spec of the parent Ingress.<br>
|
||||
2. The <code>:</code> delimiter is not respected because ports are not allowed.<br>
|
||||
Currently the port of an Ingress is implicitly :80 for http and<br>
|
||||
:443 for https.<br>
|
||||
Currently the port of an Ingress is implicitly :80 for http and<br>
|
||||
:443 for https.<br>
|
||||
Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
@@ -5867,7 +5867,7 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">path</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a <em>/</em>. If unspecified, the path defaults to a catch all sending traffic to the backend.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Path is a extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a <em>/</em>. If unspecified, the path defaults to a catch all sending traffic to the backend.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -5578,7 +5578,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_ingress">create an Ingress</h3>
|
||||
<h3 id="_create_a_ingress">create a Ingress</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /apis/extensions/v1beta1/namespaces/{namespace}/ingresses</pre>
|
||||
@@ -5959,7 +5959,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_ingress">delete an Ingress</h3>
|
||||
<h3 id="_delete_a_ingress">delete a Ingress</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}</pre>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -2560,7 +2560,7 @@ The resulting set of endpoints can be viewed as:<br>
|
||||
<div class="sect2">
|
||||
<h3 id="_v1_flexvolumesource">v1.FlexVolumeSource</h3>
|
||||
<div class="paragraph">
|
||||
<p>FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.</p>
|
||||
<p>FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.</p>
|
||||
</div>
|
||||
<table class="tableblock frame-all grid-all" style="width:100%; ">
|
||||
<colgroup>
|
||||
@@ -3268,7 +3268,7 @@ The resulting set of endpoints can be viewed as:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">flexVolume</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_flexvolumesource">v1.FlexVolumeSource</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
@@ -5555,7 +5555,7 @@ The resulting set of endpoints can be viewed as:<br>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">flexVolume</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_flexvolumesource">v1.FlexVolumeSource</a></p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -2676,7 +2676,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_endpoints">create an Endpoints</h3>
|
||||
<h3 id="_create_a_endpoints">create a Endpoints</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /api/v1/namespaces/{namespace}/endpoints</pre>
|
||||
@@ -3057,7 +3057,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_endpoints">delete an Endpoints</h3>
|
||||
<h3 id="_delete_a_endpoints">delete a Endpoints</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /api/v1/namespaces/{namespace}/endpoints/{name}</pre>
|
||||
@@ -3619,7 +3619,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_event">create an Event</h3>
|
||||
<h3 id="_create_a_event">create a Event</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /api/v1/namespaces/{namespace}/events</pre>
|
||||
@@ -4000,7 +4000,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_event">delete an Event</h3>
|
||||
<h3 id="_delete_a_event">delete a Event</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /api/v1/namespaces/{namespace}/events/{name}</pre>
|
||||
|
||||
@@ -4393,10 +4393,10 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">host</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the<br>
|
||||
IP in the Spec of the parent Ingress.<br>
|
||||
IP in the Spec of the parent Ingress.<br>
|
||||
2. The <code>:</code> delimiter is not respected because ports are not allowed.<br>
|
||||
Currently the port of an Ingress is implicitly :80 for http and<br>
|
||||
:443 for https.<br>
|
||||
Currently the port of an Ingress is implicitly :80 for http and<br>
|
||||
:443 for https.<br>
|
||||
Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
@@ -6054,7 +6054,7 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">path</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e. this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a <em>/</em>. If unspecified, the path defaults to a catch all sending traffic to the backend.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a <em>/</em>. If unspecified, the path defaults to a catch all sending traffic to the backend.</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -5578,7 +5578,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_ingress">create an Ingress</h3>
|
||||
<h3 id="_create_a_ingress">create a Ingress</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /apis/extensions/v1beta1/namespaces/{namespace}/ingresses</pre>
|
||||
@@ -5959,7 +5959,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_ingress">delete an Ingress</h3>
|
||||
<h3 id="_delete_a_ingress">delete a Ingress</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}</pre>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -2676,7 +2676,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_endpoints">create an Endpoints</h3>
|
||||
<h3 id="_create_a_endpoints">create a Endpoints</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /api/v1/namespaces/{namespace}/endpoints</pre>
|
||||
@@ -3057,7 +3057,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_endpoints">delete an Endpoints</h3>
|
||||
<h3 id="_delete_a_endpoints">delete a Endpoints</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /api/v1/namespaces/{namespace}/endpoints/{name}</pre>
|
||||
@@ -3619,7 +3619,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_a_event">create an Event</h3>
|
||||
<h3 id="_create_a_event">create a Event</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /api/v1/namespaces/{namespace}/events</pre>
|
||||
@@ -4000,7 +4000,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_delete_a_event">delete an Event</h3>
|
||||
<h3 id="_delete_a_event">delete a Event</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>DELETE /api/v1/namespaces/{namespace}/events/{name}</pre>
|
||||
@@ -7885,7 +7885,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="sect2">
|
||||
<h3 id="_create_eviction_of_a_eviction">create eviction of an Eviction</h3>
|
||||
<h3 id="_create_eviction_of_a_eviction">create eviction of a Eviction</h3>
|
||||
<div class="listingblock">
|
||||
<div class="content">
|
||||
<pre>POST /api/v1/namespaces/{namespace}/pods/{name}/eviction</pre>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html id="{{ page.cid }}" lang="en" class="{{ page.class }}">
|
||||
|
||||
{% include head.html %}
|
||||
|
||||
<body>
|
||||
{% include header.html %}
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
{% include footer-scripts.html %}
|
||||
</body>
|
||||
</html>
|
||||
+57
-50
@@ -1,10 +1,10 @@
|
||||
{% for current_toc in site.tocs %}
|
||||
{% if found_toc %}
|
||||
{% break %}
|
||||
{% else %}
|
||||
{% assign toc=site.data[current_toc] %}
|
||||
{% include tocsearch.html tree=toc.toc toc=toc %}
|
||||
{% endif %}
|
||||
{% if found_toc %}
|
||||
{% break %}
|
||||
{% else %}
|
||||
{% assign toc=site.data[current_toc] %}
|
||||
{% include tocsearch.html tree=toc.toc toc=toc %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<!Doctype html>
|
||||
@@ -18,59 +18,66 @@
|
||||
|
||||
<!-- HERO -->
|
||||
<section id="hero" class="light-text">
|
||||
<h1>{{ toc.bigheader }}</h1>
|
||||
<h5>{{ toc.abstract }}</h5>
|
||||
<div id="vendorStrip" class="light-text">
|
||||
<ul>
|
||||
<li><a href="/docs/home/" {% if toc.bigheader == "Kubernetes Documentation" %}class="YAH"{% endif %}>HOME</a></li>
|
||||
<li><a href="/docs/setup/" {% if toc.bigheader == "Setup" %}class="YAH"{% endif %}>SETUP</a></li>
|
||||
<li><a href="/docs/concepts/" {% if toc.bigheader == "Concepts" %}class="YAH"{% endif %}>CONCEPTS</a></li>
|
||||
<li><a href="/docs/tasks/" {% if toc.bigheader == "Tasks" %}class="YAH"{% endif %}>TASKS</a></li>
|
||||
<li><a href="/docs/tutorials/" {% if toc.bigheader == "Tutorials" %}class="YAH"{% endif %}>TUTORIALS</a></li>
|
||||
<li><a href="/docs/reference/" {% if toc.bigheader == "Reference Documentation" %}class="YAH"{% endif %}>REFERENCE</a></li>
|
||||
</ul>
|
||||
<div id="searchBox">
|
||||
<input type="text" id="search" placeholder="Search" onkeydown="if (event.keyCode==13) window.location.replace('/docs/search/?q=' + this.value)" autofocus="autofocus">
|
||||
</div>
|
||||
</div>
|
||||
<h1>{{ toc.bigheader }}</h1>
|
||||
<h5>{{ toc.abstract }}</h5>
|
||||
<div id="vendorStrip" class="light-text">
|
||||
<ul>
|
||||
<li><a href="/docs/" {% if toc.bigheader == "Kubernetes Documentation" %}class="YAH"{% endif %}>DOCS HOME</a></li>
|
||||
<li><a href="/docs/user-guide/" {% if toc.bigheader == "Guides" %}class="YAH"{% endif %}>GUIDES</a></li>
|
||||
<li><a href="/docs/tutorials/" {% if toc.bigheader == "Tutorials" %}class="YAH"{% endif %}>TUTORIALS</a></li>
|
||||
<li><a href="/docs/tasks/" {% if toc.bigheader == "Tasks" %}class="YAH"{% endif %}>TASKS</a></li>
|
||||
<li><a href="/docs/concepts/" {% if toc.bigheader == "Concepts" %}class="YAH"{% endif %}>CONCEPTS</a></li>
|
||||
<li><a href="/docs/reference/" {% if toc.bigheader == "Reference Documentation" %}class="YAH"{% endif %}>REFERENCE</a></li>
|
||||
<li><a href="/docs/tools/" {% if toc.bigheader == "Tools" %}class="YAH"{% endif %}>TOOLS</a></li>
|
||||
<li><a href="/docs/samples/" {% if toc.bigheader == "Samples" %}class="YAH"{% endif %}>SAMPLES</a></li>
|
||||
<li><a href="/docs/troubleshooting/" {% if toc.bigheader == "Support" %}class="YAH"{% endif %}>SUPPORT</a></li>
|
||||
</ul>
|
||||
<div id="searchBox">
|
||||
<input type="text" id="search" placeholder="Search" onkeydown="if (event.keyCode==13) window.location.replace('/docs/search/?q=' + this.value)" autofocus="autofocus">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include deprecation-warning.html %}
|
||||
|
||||
<section id="encyclopedia">
|
||||
<div id="docsToc">
|
||||
<div class="pi-accordion">
|
||||
{% include_cached tree.html tree=toc.toc %}
|
||||
</div> <!-- /pi-accordion -->
|
||||
<button class="push-menu-close-button" onclick="kub.toggleToc()"></button>
|
||||
</div> <!-- /docsToc -->
|
||||
<div id="docsToc">
|
||||
<div class="pi-accordion">
|
||||
{% if toc.bigheader != "Kubernetes Documentation" %}
|
||||
{% include tree.html tree=toc.toc %}
|
||||
{% endif %}
|
||||
</div> <!-- /pi-accordion -->
|
||||
<button class="push-menu-close-button" onclick="kub.toggleToc()"></button>
|
||||
</div> <!-- /docsToc -->
|
||||
|
||||
<div id="docsContent">
|
||||
<p><a href="/editdocs#{{ page.path }}" id="editPageButton">Edit This Page</a></p>
|
||||
<div id="docsContent">
|
||||
<p><a href="/editdocs#{{ page.path }}" id="editPageButton">Edit This Page</a></p>
|
||||
|
||||
{% unless page.notitle %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
{% endunless %}
|
||||
{% 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>
|
||||
{% if page.url != "/404.html" and page.url != "/docs/search/" %}
|
||||
<script type="text/javascript">
|
||||
PDRTJS_settings_8345992 = {
|
||||
"id" : "8345992",
|
||||
"unique_id" : "{{ page.url }}",
|
||||
"title" : "{{ page.title }}",
|
||||
"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'));
|
||||
</script>
|
||||
<a href="" onclick="window.open('https://github.com/kubernetes/kubernetes.github.io/issues/new?title=Issue%20with%20' +
|
||||
'k8s.io'+window.location.pathname)" class="button issue">Create an Issue</a>
|
||||
<a href="/editdocs#{{ page.path }}" class="button issue">Edit this Page</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<p><a href=""><img src="https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/{{ page.path }}?pixel" alt="Analytics" /></a></p>
|
||||
{% if page.url != "/404.html" and page.url != "/docs/search/" %}
|
||||
<script type="text/javascript">
|
||||
PDRTJS_settings_8345992 = {
|
||||
"id" : "8345992",
|
||||
"unique_id" : "{{ page.url }}",
|
||||
"title" : "{{ page.title }}",
|
||||
"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'));
|
||||
</script>
|
||||
<a href="" onclick="window.open('https://github.com/kubernetes/kubernetes.github.io/issues/new?title=Issue%20with%20' +
|
||||
window.location.pathname)" class="button issue">Create an Issue</a>
|
||||
<a href="/editdocs#{{ page.path }}" class="button issue">Edit this Page</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% include_cached footer.html %}
|
||||
{% include footer.html %}
|
||||
{% include footer-scripts.html %}
|
||||
|
||||
</body>
|
||||
|
||||
+54
-20
@@ -258,12 +258,46 @@ ul.global-nav
|
||||
left: 0
|
||||
background: #fff
|
||||
|
||||
.ui-icon
|
||||
filter: brightness(0) invert(1)
|
||||
|
||||
ul
|
||||
display: none
|
||||
position: fixed
|
||||
top: 40px
|
||||
text-align: left
|
||||
|
||||
li
|
||||
display: block
|
||||
height: 28px
|
||||
|
||||
a
|
||||
background: $dark-grey
|
||||
color: #fff
|
||||
padding: 7px
|
||||
|
||||
li:last-child
|
||||
a
|
||||
border-radius: 7px
|
||||
|
||||
li:hover
|
||||
ul
|
||||
display: block
|
||||
|
||||
|
||||
.flip-nav ul.global-nav li a,
|
||||
.open-nav ul.global-nav li a,
|
||||
color: #333
|
||||
color: $dark-grey
|
||||
|
||||
.flip-nav ul.global-nav li a .ui-icon
|
||||
filter: brightness(0)
|
||||
|
||||
.flip-nav ul.global-nav li ul li a,
|
||||
background: #fff
|
||||
color: $dark-grey
|
||||
|
||||
.flip-nav ul.global-nav li a.active:after,
|
||||
.flip-nav ul.global-nav li ul li a.active:after,
|
||||
.open-nav ul.global-nav li a.active:after,
|
||||
|
||||
background: $blue
|
||||
@@ -968,8 +1002,8 @@ dd
|
||||
//font-weight: 700
|
||||
text-decoration: underline
|
||||
|
||||
// a:visited
|
||||
// color: blueviolet
|
||||
// a:visited
|
||||
// color: blueviolet
|
||||
|
||||
a.button
|
||||
border-radius: 2px
|
||||
@@ -1090,7 +1124,7 @@ $feature-box-div-margin-bottom: 40px
|
||||
#video
|
||||
width: 100%
|
||||
position: relative
|
||||
background-image: url(/images/kub_video_banner.jpg)
|
||||
background-image: url(/images/kub_video_thm.jpg)
|
||||
background-position: center center
|
||||
background-size: cover
|
||||
|
||||
@@ -1283,7 +1317,7 @@ $feature-box-div-margin-bottom: 40px
|
||||
background-color: $white
|
||||
box-shadow: 0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)
|
||||
|
||||
#calendarMeetings
|
||||
#calendarWrapper
|
||||
position: relative
|
||||
width: 80vw
|
||||
height: 60vw
|
||||
@@ -1297,7 +1331,7 @@ $feature-box-div-margin-bottom: 40px
|
||||
height: 30vw
|
||||
max-width: 1200px
|
||||
max-height: 450px
|
||||
margin: 20px auto
|
||||
margin: 20px auto
|
||||
|
||||
iframe
|
||||
position: absolute
|
||||
@@ -1553,8 +1587,8 @@ $feature-box-div-margin-bottom: 40px
|
||||
//font-weight: 700
|
||||
text-decoration: underline
|
||||
|
||||
// a:visited
|
||||
// color: blueviolet
|
||||
// a:visited
|
||||
// color: blueviolet
|
||||
|
||||
a.button
|
||||
border-radius: 2px
|
||||
@@ -1707,18 +1741,18 @@ $feature-box-div-margin-bottom: 40px
|
||||
|
||||
|
||||
//#bigSocial
|
||||
// text-align: center
|
||||
//
|
||||
// div
|
||||
// display: inline-block
|
||||
// float: none
|
||||
// padding-top: 125px
|
||||
// width: calc(90%)
|
||||
//
|
||||
// a
|
||||
// margin-top: 15px
|
||||
// font-size: 18px
|
||||
// text-align: center
|
||||
//
|
||||
// div
|
||||
// display: inline-block
|
||||
// float: none
|
||||
// padding-top: 125px
|
||||
// width: calc(90%)
|
||||
//
|
||||
// a
|
||||
// margin-top: 15px
|
||||
// font-size: 18px
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
+4
-18
@@ -3,15 +3,6 @@ $vendor-strip-height: 44px
|
||||
$video-section-height: 550px
|
||||
|
||||
@media screen and (min-width: 1025px)
|
||||
#hamburger
|
||||
display: none
|
||||
|
||||
ul.global-nav
|
||||
display: inline-block
|
||||
|
||||
#docs #vendorStrip #searchBox:before
|
||||
top: 15px
|
||||
|
||||
#vendorStrip
|
||||
height: $vendor-strip-height
|
||||
line-height: $vendor-strip-height
|
||||
@@ -49,7 +40,7 @@ $video-section-height: 550px
|
||||
|
||||
#searchBox
|
||||
float: right
|
||||
width: 320px
|
||||
width: 30%
|
||||
|
||||
#search
|
||||
vertical-align: middle
|
||||
@@ -74,7 +65,7 @@ $video-section-height: 550px
|
||||
|
||||
|
||||
#encyclopedia
|
||||
padding: 50px 50px 100px 100px
|
||||
padding: 50px 50px 20px 20px
|
||||
clear: both
|
||||
|
||||
#docsToc
|
||||
@@ -97,11 +88,6 @@ $video-section-height: 550px
|
||||
section, header, footer
|
||||
main
|
||||
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
|
||||
section, header, footer
|
||||
@@ -135,7 +121,7 @@ $video-section-height: 550px
|
||||
#video
|
||||
height: $video-section-height
|
||||
position: relative
|
||||
background-image: url(../images/kub_video_banner.jpg)
|
||||
background-image: url(../images/kub_video_thm.jpg)
|
||||
background-position: center center
|
||||
background-size: cover
|
||||
|
||||
@@ -290,7 +276,7 @@ $video-section-height: 550px
|
||||
text-align: left
|
||||
|
||||
h1
|
||||
padding: 20px 100px
|
||||
padding: 20px
|
||||
|
||||
#tryKubernetes
|
||||
width: auto
|
||||
|
||||
+81
-80
@@ -1,99 +1,100 @@
|
||||
---
|
||||
title: Case Studies
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
||||
|
||||
<!Doctype html>
|
||||
<html id="caseStudies" class="gridPage">
|
||||
{% include head-header.html %}
|
||||
|
||||
<section id="hero" class="light-text">
|
||||
<h1>Kubernetes User Case Studies</h1>
|
||||
<h5>A collection of users running Kubernetes in production.</h5>
|
||||
<h1>Kubernetes User Case Studies</h1>
|
||||
<h5>A collection of users running Kubernetes in production.</h5>
|
||||
</section>
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="case-studies">
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/pearson.png" alt="Pearson">
|
||||
<p class="quote">"We chose Kubernetes because of its flexibility, ease of management and the way it improves our engineers' productivity."</p>
|
||||
<!--<p class="attrib">— Chris Jackson, Director for Cloud Product Engineering, Pearson</p>-->
|
||||
<a href="./pearson/">Read about Pearson</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/wikimedia.png" alt="Wikimedia">
|
||||
<p class="quote">"With Kubernetes, we're simplifying our environment and making it easier for developers to build the tools that make wikis run better."</p>
|
||||
<!--<p class="attrib">— Yuvi Panda, Operations Engineer, Wikimedia Foundation</p>-->
|
||||
<a href="./wikimedia/">Read about Wikimedia</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/ebay.png" alt="eBay">
|
||||
<p class="quote">Inside eBay's shift to Kubernetes and containers atop OpenStack</p>
|
||||
<a href="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/">Read about eBay</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/box.png" alt="box">
|
||||
<p class="quote">Kubernetes at Box: Microservices at Maximum Velocity</p>
|
||||
<a href="https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/">Read about Box</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="case-studies">
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/pearson.png" alt="Pearson">
|
||||
<p class="quote">“We chose Kubernetes because of its flexibility, ease of management and the way it improves our engineers’ productivity.”</p>
|
||||
<!--<p class="attrib">— Chris Jackson, Director for Cloud Product Engineering, Pearson</p>-->
|
||||
<a href="./pearson/">Read about Pearson</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/wikimedia.png" alt="Wikimedia">
|
||||
<p class="quote">“With Kubernetes, we’re simplifying our environment and making it easier for developers to build the tools that make wikis run better.”</p>
|
||||
<!--<p class="attrib">— Yuvi Panda, Operations Engineer, Wikimedia Foundation</p>-->
|
||||
<a href="./wikimedia/">Read about Wikimedia</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/ebay.png" alt="eBay">
|
||||
<p class="quote">Inside eBay’s shift to Kubernetes and containers atop OpenStack</p>
|
||||
<a href="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/">Read about eBay</a>
|
||||
</div>
|
||||
<div class="case-study">
|
||||
<img src="/images/case_studies/box.png" alt="box">
|
||||
<p class="quote">Kubernetes at Box: Microservices at Maximum Velocity</p>
|
||||
<a href="https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/">Read about Box</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="video">
|
||||
<main>
|
||||
<!--<div>-->
|
||||
<!--<h3>"I don't want to deploy software the old way ever again"</h3>-->
|
||||
<!--<p class="attrib">— Dylan Carney, Lead Software Engineer, Zulily</p>-->
|
||||
<!--<img src="/images/case_studies/zulily.png" id="zulilyLogo" alt="zulily">-->
|
||||
<!--</div>-->
|
||||
<!--<div><button onclick="kub.showVideo()"><img src="/images/case_studies/video_thumb.jpg" alt="Zulily video"><h6>Kubernetes at zulily</h6></button></div>-->
|
||||
<div>
|
||||
<!--<h3>SAP</h3>-->
|
||||
<h3>SAP's OpenStack, running on Kubernetes in production</h3>
|
||||
<img src="/images/case_studies/sap_small.png" id="zulilyLogo" alt="SAP">
|
||||
</div>
|
||||
<div><button onclick="kub.showVideo()"><img src="/images/case_studies/video_thumb1.png" alt="SAP video"><h6>Kubernetes at SAP</h6></button></div>
|
||||
</main>
|
||||
<main>
|
||||
<!--<div>-->
|
||||
<!--<h3>“I don’t want to deploy software the old way ever again”</h3>-->
|
||||
<!--<p class="attrib">— Dylan Carney, Lead Software Engineer, Zulily</p>-->
|
||||
<!--<img src="/images/case_studies/zulily.png" id="zulilyLogo" alt="zulily">-->
|
||||
<!--</div>-->
|
||||
<!--<div><button onclick="kub.showVideo()"><img src="/images/case_studies/video_thumb.jpg" alt="Zulily video"><h6>Kubernetes at zulily</h6></button></div>-->
|
||||
<div>
|
||||
<!--<h3>SAP</h3>-->
|
||||
<h3>SAP's OpenStack, running on Kubernetes in production</h3>
|
||||
<img src="/images/case_studies/sap_small.png" id="zulilyLogo" alt="SAP">
|
||||
</div>
|
||||
<div><button onclick="kub.showVideo()"><img src="/images/case_studies/video_thumb1.png" alt="SAP video"><h6>Kubernetes at SAP</h6></button></div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="users">
|
||||
<main>
|
||||
<h3>Kubernetes Users</h3>
|
||||
<div id="usersGrid">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=P5qfyv_zGcU"><img src="/images/case_studies/nyt.png" alt="New York Times"></a>
|
||||
<a target="_blank" href="https://openai.com/blog/infrastructure-for-deep-learning"><img src="/images/case_studies/openai.png" alt="OpenAI"></a>
|
||||
<a target="_blank" href="http://blogs.wsj.com/cio/2016/02/24/big-changes-in-goldmans-software-emerge-from-small-containers/"><img src="/images/case_studies/gs.png" alt="Goldman Sachs"></a>
|
||||
<a target="_blank" href="https://youtu.be/4gyeixJLabo"><img src="/images/case_studies/sap.png" alt="SAP"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2016/05/24/samsung-experts-put-kubernetes-paces/"><img src="/images/case_studies/sds.png" alt="Samsung SDS"></a>
|
||||
<a target="_blank" href="http://thenewstack.io/wepay-kubernetes-changed-business/"><img src="/images/case_studies/wepay.png" alt="WePay"></a>
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=5378N5iLb2Q"><img src="/images/case_studies/soundcloud.png" alt="SoundCloud"></a>
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=F3iMkz_NSvU"><img src="/images/case_studies/homeoffice.png" alt="UK Home Office"></a>
|
||||
<a target="_blank" href="http://searchitoperations.techtarget.com/news/450297178/Tech-firms-roll-out-Kubernetes-in-production"><img src="/images/case_studies/concur.png" alt="Concur"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2015/08/04/amadeus-takes-off-with-containers-and-clouds/"><img src="/images/case_studies/amadeus.png" alt="Amadeus"></a>
|
||||
<a target="_blank" href="http://superuser.openstack.org/articles/how-ancestry-com-s-open-source-strategy-combines-kubernetes-and-openstack"><img src="/images/case_studies/ancestry.png" alt="Ancestry.com"></a>
|
||||
<a target="_blank" href="https://cloud.google.com/customers/ccp-games/"><img src="/images/case_studies/ccp.png" alt="CCP Games"></a>
|
||||
<a target="_blank" href="https://www.openstack.org/videos/video/running-kubernetes-on-openstack-at-liveperson"><img src="/images/case_studies/liveperson.png" alt="LivePerson"></a>
|
||||
<a target="_blank" href="https://youtu.be/YkOY7DgXKyw"><img src="/images/case_studies/monzo_logo.png" alt="monzo"></a>
|
||||
<a target="_blank" href="https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/"><img src="/images/case_studies/box_logo.png" alt="Box"></a>
|
||||
<a target="_blank" href="https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO-to-life-on-Google-Cloud.html"><img src="/images/case_studies/pokemon_go_logo.png" alt="Pokemon GO"></a>
|
||||
<a target="_blank" href="http://blog.kubernetes.io/2016/10/kubernetes-and-openstack-at-yahoo-japan.html"><img src="/images/case_studies/yahooJapan_logo.png" alt="Yahoo! Japan"></a>
|
||||
<a target="_blank" href="https://cloud.google.com/customers/philips/"><img src="/images/case_studies/philips_logo.png" alt="Philips"></a>
|
||||
<a target="_blank" href="https://youtu.be/EC_ZRLsw58M"><img src="/images/case_studies/buffer_logo.png" alt="buffer"></a>
|
||||
<a target="_blank" href="https://youtu.be/lmeFkH-rHII"><img src="/images/case_studies/comcast_logo.png" alt="Comcast"></a>
|
||||
<a href="./wikimedia/"><img src="/images/case_studies/wikimedia_logo.png" alt="Wikimedia"></a>
|
||||
<a href="./pearson/"><img src="/images/case_studies/pearson_logo.png" alt="Pearson"></a>
|
||||
<a target="_blank" href="#" onclick="event.preventDefault(); kub.showVideo()"><img src="/images/case_studies/zulily_logo.png" alt="zulily"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/"><img src="/images/case_studies/ebay_logo.png" alt="Ebay"></a>
|
||||
<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform" class="tell-your-story"><img src="/images/case_studies/story.png" alt="Tell your story"></a>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<h3>Kubernetes Users</h3>
|
||||
<div id="usersGrid">
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=P5qfyv_zGcU"><img src="/images/case_studies/nyt.png" alt="New York Times"></a>
|
||||
<a target="_blank" href="https://openai.com/blog/infrastructure-for-deep-learning"><img src="/images/case_studies/openai.png" alt="OpenAI"></a>
|
||||
<a target="_blank" href="http://blogs.wsj.com/cio/2016/02/24/big-changes-in-goldmans-software-emerge-from-small-containers/"><img src="/images/case_studies/gs.png" alt="Goldman Sachs"></a>
|
||||
<a target="_blank" href="https://youtu.be/4gyeixJLabo"><img src="/images/case_studies/sap.png" alt="SAP"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2016/05/24/samsung-experts-put-kubernetes-paces/"><img src="/images/case_studies/sds.png" alt="Samsung SDS"></a>
|
||||
<a target="_blank" href="http://thenewstack.io/wepay-kubernetes-changed-business/"><img src="/images/case_studies/wepay.png" alt="WePay"></a>
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=5378N5iLb2Q"><img src="/images/case_studies/soundcloud.png" alt="SoundCloud"></a>
|
||||
<a target="_blank" href="https://www.youtube.com/watch?v=F3iMkz_NSvU"><img src="/images/case_studies/homeoffice.png" alt="UK Home Office"></a>
|
||||
<a target="_blank" href="http://searchitoperations.techtarget.com/news/450297178/Tech-firms-roll-out-Kubernetes-in-production"><img src="/images/case_studies/concur.png" alt="Concur"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2015/08/04/amadeus-takes-off-with-containers-and-clouds/"><img src="/images/case_studies/amadeus.png" alt="Amadeus"></a>
|
||||
<a target="_blank" href="http://superuser.openstack.org/articles/how-ancestry-com-s-open-source-strategy-combines-kubernetes-and-openstack"><img src="/images/case_studies/ancestry.png" alt="Ancestry.com"></a>
|
||||
<a target="_blank" href="https://cloud.google.com/customers/ccp-games/"><img src="/images/case_studies/ccp.png" alt="CCP Games"></a>
|
||||
<a target="_blank" href="https://www.openstack.org/videos/video/running-kubernetes-on-openstack-at-liveperson"><img src="/images/case_studies/liveperson.png" alt="LivePerson"></a>
|
||||
<a target="_blank" href="http://techblog.yahoo.co.jp/infrastructure/os_n_k8s/"><img src="/images/case_studies/yahooJapan_logo.png" alt="Yahoo! Japan"></a>
|
||||
<a target="_blank" href="https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/"><img src="/images/case_studies/box_logo.png" alt="Box"></a>
|
||||
<a href="./wikimedia/"><img src="/images/case_studies/wikimedia_logo.png" alt="Wikimedia"></a>
|
||||
<a href="./pearson/"><img src="/images/case_studies/pearson_logo.png" alt="Pearson"></a>
|
||||
<a target="_blank" href="#" onclick="event.preventDefault(); kub.showVideo()"><img src="/images/case_studies/zulily_logo.png" alt="zulily"></a>
|
||||
<a target="_blank" href="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/"><img src="/images/case_studies/ebay_logo.png" alt="Ebay"></a>
|
||||
<a target="_blank" href="https://docs.google.com/a/google.com/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform" class="tell-your-story"><img src="/images/case_studies/story.png" alt="Tell your story"></a>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
|
||||
<div id="videoPlayer">
|
||||
<!--<iframe data-url="https://www.youtube.com/watch?v=B0_5Nms8sD0" frameborder="0" allowfullscreen></iframe>-->
|
||||
<iframe data-url="https://www.youtube.com/embed/4gyeixJLabo?autoplay=1" frameborder="0" allowfullscreen="true"></iframe>
|
||||
<button id="closeButton"></button>
|
||||
<!--<iframe data-url="https://www.youtube.com/watch?v=B0_5Nms8sD0" frameborder="0" allowfullscreen></iframe>-->
|
||||
<iframe data-url="https://www.youtube.com/embed/4gyeixJLabo?autoplay=1" frameborder="0" allowfullscreen></iframe>
|
||||
<button id="closeButton"></button>
|
||||
</div>
|
||||
{% include footer.html %}
|
||||
{% include case-study-styles.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+70
-63
@@ -1,81 +1,88 @@
|
||||
---
|
||||
title: Pearson Case Study
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
||||
|
||||
<!Doctype html>
|
||||
<html id="caseStudies" class="gridPage">
|
||||
{% include head-header.html %}
|
||||
|
||||
<section id="hero" class="light-text">
|
||||
<h1> Pearson Case Study</h1>
|
||||
<h1> Pearson Case Study</h1>
|
||||
</section>
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3 id="caseStudyTitle">Using Kubernetes to reinvent the world's largest educational company</h3>
|
||||
<p>
|
||||
Pearson, the world's education company, serving 75 million learners worldwide, set a goal to more than double that number to 200 million by 2025. A key part of this growth is in digital learning experiences, and that requires an infrastructure platform that is able to scale quickly and deliver products to market faster. So Pearson's Cloud Technology team chose Kubernetes to help build a platform to meet the business requirements. </p>
|
||||
<div class="feature">
|
||||
<img src="/images/case_studies/pearson.png" alt="Pearson">
|
||||
<p class="quote">
|
||||
"To transform our infrastructure, we had to think beyond simply enabling automated provisioning, we realized we had to build a platform that would allow Pearson developers to build manage and deploy applications in a completely different way. We chose Kubernetes because of its flexibility, ease of management and the way it would improve our engineers' productivity." </p>
|
||||
<p class="attrib">— Chris Jackson, Director for Cloud Product Engineering, Pearson</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3 id="caseStudyTitle">Using Kubernetes to reinvent the world’s largest educational company</h3>
|
||||
<p>
|
||||
Pearson, the world’s education company, serving 75 million learners worldwide, set a goal to more than double that number to 200 million by 2025. A key part of this growth is in digital learning experiences, and that requires an infrastructure platform that is able to scale quickly and deliver products to market faster. So Pearson’s Cloud Technology team chose Kubernetes to help build a platform to meet the business requirements. </p>
|
||||
<div class="feature">
|
||||
<img src="/images/case_studies/pearson.png" alt="Pearson">
|
||||
<p class="quote">
|
||||
“To transform our infrastructure, we had to think beyond simply enabling automated provisioning, we realized we had to build a platform that would allow Pearson developers to build manage and deploy applications in a completely different way. We chose Kubernetes because of its flexibility, ease of management and the way it would improve our engineers’ productivity.” </p>
|
||||
<p class="attrib">— Chris Jackson, Director for Cloud Product Engineering, Pearson</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="bullets">
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="bullet">
|
||||
<h4>Challenges:</h4>
|
||||
<ul>
|
||||
<li>Pearson had difficulty in scaling and adapting to the growing online audience. They wanted to build and deliver content primarily over the web.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Why Kubernetes:</h4>
|
||||
<ul>
|
||||
<li>Kubernetes will allow Pearson's teams to develop their apps in a consistent manner, saving time and minimizing complexity.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Approach:</h4>
|
||||
<ul>
|
||||
<li>Build a centralized platform for use across the entire enterprise</li>
|
||||
<li>Use container technology as the core of the platform</li>
|
||||
<li>Deploy Kubernetes to manage the platform</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Results:</h4>
|
||||
<ul>
|
||||
<li>Pearson is building an enterprise-wide platform for delivering innovative, web-based educational content. They expect engineers' productivity to increase by up to 20 percent.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="bullet">
|
||||
<h4>Challenges:</h4>
|
||||
<ul>
|
||||
<li>Pearson had difficulty in scaling and adapting to the growing online audience. They wanted to build and deliver content primarily over the web.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Why Kubernetes:</h4>
|
||||
<ul>
|
||||
<li>Kubernetes will allow Pearson’s teams to develop their apps in a consistent manner, saving time and minimizing complexity.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Approach:</h4>
|
||||
<ul>
|
||||
<li>Build a centralized platform for use across the entire enterprise</li>
|
||||
<li>Use container technology as the core of the platform</li>
|
||||
<li>Deploy Kubernetes to manage the platform</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Results:</h4>
|
||||
<ul>
|
||||
<li>Pearson is building an enterprise-wide platform for delivering innovative, web-based educational content. They expect engineers’ productivity to increase by up to 20 percent.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="details">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Kubernetes powers a comprehensive developer experience</h4>
|
||||
<p>Pearson wanted to use as much open source technology as possible for the platform given that it provides both technical and commercial benefits over the duration of the project. Jackson says, "Building an infrastructure platform based on open source technology in Pearson was a no-brainer, the sharing of technical challenges and advanced use cases in a community of people with talent far beyond what we could hire independently allows us to innovate at a level we could not reach on our own. Our engineers enjoy returning code to the community and participating in talks, blogs and meetings, it's a great way for us to allow our team to express themselves and share the pride they have in their work."</p>
|
||||
<p>It also wanted to use a container-focused platform. Pearson has 400 development groups and diverse brands with varying business and technical needs. With containers, each brand could experiment with building new types of content using their preferred technologies, and then deliver it using containers. Pearson chose Kubernetes because it believes that is the best technology for managing containers, has the widest community support and offers the most flexible and powerful tools."</p>
|
||||
<p>Kubernetes is at the core of the platform we've built for developers. After we get our big spike in back-to-school in traffic, much of Pearson's traffic will interact with Kubernetes. It is proving to be as effective as we had hoped," Jackson says.</p>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Kubernetes powers a comprehensive developer experience</h4>
|
||||
<p>Pearson wanted to use as much open source technology as possible for the platform given that it provides both technical and commercial benefits over the duration of the project. Jackson says, “Building an infrastructure platform based on open source technology in Pearson was a no-brainer, the sharing of technical challenges and advanced use cases in a community of people with talent far beyond what we could hire independently allows us to innovate at a level we could not reach on our own. Our engineers enjoy returning code to the community and participating in talks, blogs and meetings, it’s a great way for us to allow our team to express themselves and share the pride they have in their work.”</p>
|
||||
<p>It also wanted to use a container-focused platform. Pearson has 400 development groups and diverse brands with varying business and technical needs. With containers, each brand could experiment with building new types of content using their preferred technologies, and then deliver it using containers. Pearson chose Kubernetes because it believes that is the best technology for managing containers, has the widest community support and offers the most flexible and powerful tools.“</p>
|
||||
<p>Kubernetes is at the core of the platform we’ve built for developers. After we get our big spike in back-to-school in traffic, much of Pearson’s traffic will interact with Kubernetes. It is proving to be as effective as we had hoped,” Jackson says.</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="details">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Encouraging experimentation, saving engineers time</h4>
|
||||
<p>With the new platform, Pearson will increase stability and performance, and to bring products to market more quickly. The company says its engineers will also get a productivity boost because they won't spend time managing infrastructure. Jackson estimates 15 to 20 percent in productivity savings.</p>
|
||||
<p>Beyond that, Pearson says the platform will encourage innovation because of the ease with which new applications can be developed, and because applications will be deployed far more quickly than in the past. It expects that will help the company meet its goal of reaching 200 million learners within the next 10 years.</p>
|
||||
<p>"We're already seeing tremendous benefits with Kubernetes — improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online," says Jackson.</p>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Encouraging experimentation, saving engineers time</h4>
|
||||
<p>With the new platform, Pearson will increase stability and performance, and to bring products to market more quickly. The company says its engineers will also get a productivity boost because they won’t spend time managing infrastructure. Jackson estimates 15 to 20 percent in productivity savings.</p>
|
||||
<p>Beyond that, Pearson says the platform will encourage innovation because of the ease with which new applications can be developed, and because applications will be deployed far more quickly than in the past. It expects that will help the company meet its goal of reaching 200 million learners within the next 10 years.</p>
|
||||
<p>“We’re already seeing tremendous benefits with Kubernetes — improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online,” says Jackson.</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
{% include footer.html %}
|
||||
{% include case-study-styles.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+85
-78
@@ -1,96 +1,103 @@
|
||||
---
|
||||
title: Wikimedia Case Study
|
||||
layout: basic
|
||||
class: gridPage
|
||||
cid: caseStudies
|
||||
---
|
||||
|
||||
<!Doctype html>
|
||||
<html id="caseStudies" class="gridPage">
|
||||
{% include head-header.html %}
|
||||
|
||||
<section id="hero" class="light-text">
|
||||
<h1> Wikimedia Case Study</h1>
|
||||
<h1> Wikimedia Case Study</h1>
|
||||
</section>
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3 id="caseStudyTitle">Using Kubernetes to Build Tools to Improve the World's Wikis</h3>
|
||||
<p>
|
||||
The non-profit Wikimedia Foundation operates some of the largest collaboratively edited reference projects in the world, including Wikipedia. To help users maintain and use wikis, it runs Wikimedia Tool Labs, a hosting environment for community developers working on tools and bots to help editors and other volunteers do their work, including reducing vandalism. The community around Wikimedia Tool Labs began forming nearly 10 years ago.
|
||||
</p>
|
||||
<div class="feature">
|
||||
<img src="/images/case_studies/wikimedia.png" alt="Wikimedia">
|
||||
<p class="quote">
|
||||
"Wikimedia Tool Labs is vital for making sure wikis all around the world work as well as they possibly can. Because it's grown organically for almost 10 years, it has become an extremely challenging environment and difficult to maintain. It's like a big ball of mud — you really can't see through it. With Kubernetes, we're simplifying the environment and making it easier for developers to build the tools that make wikis run better."
|
||||
</p>
|
||||
<p class="attrib">— Yuvi Panda, operations engineer at Wikimedia Foundation and Wikimedia Tool Labs</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3 id="caseStudyTitle">Using Kubernetes to Build Tools to Improve the World's Wikis</h3>
|
||||
<p>
|
||||
The non-profit Wikimedia Foundation operates some of the largest collaboratively edited reference projects in the world, including Wikipedia. To help users maintain and use wikis, it runs Wikimedia Tool Labs, a hosting environment for community developers working on tools and bots to help editors and other volunteers do their work, including reducing vandalism. The community around Wikimedia Tool Labs began forming nearly 10 years ago.
|
||||
</p>
|
||||
<div class="feature">
|
||||
<img src="/images/case_studies/wikimedia.png" alt="Wikimedia">
|
||||
<p class="quote">
|
||||
“Wikimedia Tool Labs is vital for making sure wikis all around the world work as well as they possibly can. Because it’s grown organically for almost 10 years, it has become an extremely challenging environment and difficult to maintain. It’s like a big ball of mud — you really can’t see through it. With Kubernetes, we’re simplifying the environment and making it easier for developers to build the tools that make wikis run better.”
|
||||
</p>
|
||||
<p class="attrib">— Yuvi Panda, operations engineer at Wikimedia Foundation and Wikimedia Tool Labs</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="bullets">
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="bullet">
|
||||
<h4>Challenges:</h4>
|
||||
<ul>
|
||||
<li>Simplify a complex, difficult-to-manage infrastructure</li>
|
||||
<li>Allow developers to continue writing tools and bots using existing techniques</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Why Kubernetes:</h4>
|
||||
<ul>
|
||||
<li>Wikimedia Tool Labs chose Kubernetes because it can mimic existing workflows, while reducing complexity</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Approach:</h4>
|
||||
<ul>
|
||||
<li>Migrate old systems and a complex infrastructure to Kubernetes</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Results:</h4>
|
||||
<ul>
|
||||
<li>20 percent of web tools that account for more than 40 percent of web traffic now run on Kubernetes</li>
|
||||
<li>A 25-node cluster that keeps up with each new Kubernetes release</li>
|
||||
<li>Thousands of lines of old code have been deleted, thanks to Kubernetes</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<div class="bullet">
|
||||
<h4>Challenges:</h4>
|
||||
<ul>
|
||||
<li>Simplify a complex, difficult-to-manage infrastructure</li>
|
||||
<li>Allow developers to continue writing tools and bots using existing techniques</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Why Kubernetes:</h4>
|
||||
<ul>
|
||||
<li>Wikimedia Tool Labs chose Kubernetes because it can mimic existing workflows, while reducing complexity</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Approach:</h4>
|
||||
<ul>
|
||||
<li>Migrate old systems and a complex infrastructure to Kubernetes</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="bullet">
|
||||
<h4>Results:</h4>
|
||||
<ul>
|
||||
<li>20 percent of web tools that account for more than 40 percent of web traffic now run on Kubernetes</li>
|
||||
<li>A 25-node cluster that keeps up with each new Kubernetes release</li>
|
||||
<li>Thousands of lines of old code have been deleted, thanks to Kubernetes</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="details">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Using Kubernetes to provide tools for maintaining wikis</h4>
|
||||
<p>
|
||||
Wikimedia Tool Labs is run by a staff of four-and-a-half paid employees and two volunteers. The infrastructure didn't make it easy or intuitive for developers to build bots and other tools to make wikis work more easily. Yuvi says, "It's incredibly chaotic. We have lots of Perl and Bash duct tape on top of it. Everything is super fragile."
|
||||
</p>
|
||||
<p>
|
||||
To solve the problem, Wikimedia Tool Labs migrated parts of its infrastructure to Kubernetes, in preparation for eventually moving its entire system. Yuvi said Kubernetes greatly simplifies maintenance. The goal is to allow developers creating bots and other tools to use whatever development methods they want, but make it easier for the Wikimedia Tool Labs to maintain the required infrastructure for hosting and sharing them.
|
||||
</p>
|
||||
<p>
|
||||
"With Kubernetes, I've been able to remove a lot of our custom-made code, which makes everything easier to maintain. Our users' code also runs in a more stable way than previously," says Yuvi.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Using Kubernetes to provide tools for maintaining wikis</h4>
|
||||
<p>
|
||||
Wikimedia Tool Labs is run by a staff of four-and-a-half paid employees and two volunteers. The infrastructure didn't make it easy or intuitive for developers to build bots and other tools to make wikis work more easily. Yuvi says, “It’s incredibly chaotic. We have lots of Perl and Bash duct tape on top of it. Everything is super fragile.”
|
||||
</p>
|
||||
<p>
|
||||
To solve the problem, Wikimedia Tool Labs migrated parts of its infrastructure to Kubernetes, in preparation for eventually moving its entire system. Yuvi said Kubernetes greatly simplifies maintenance. The goal is to allow developers creating bots and other tools to use whatever development methods they want, but make it easier for the Wikimedia Tool Labs to maintain the required infrastructure for hosting and sharing them.
|
||||
</p>
|
||||
<p>
|
||||
“With Kubernetes, I’ve been able to remove a lot of our custom-made code, which makes everything easier to maintain. Our users’ code also runs in a more stable way than previously,” says Yuvi.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section class="details">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Simplifying infrastructure and keeping wikis running better</h4>
|
||||
<p>
|
||||
Wikimedia Tool Labs has seen great success with the initial Kubernetes deployment. Old code is being simplified and eliminated, contributing developers don't have to change the way they write their tools and bots, and those tools and bots run in a more stable fashion than they have in the past. The paid staff and volunteers are able to better keep up with fixing issues.
|
||||
</p>
|
||||
<p>
|
||||
In the future, with a more complete migration to Kubernetes, Wikimedia Tool Labs expects to make it even easier to host and maintain the bots and tools that help run wikis across the world. The tool labs already host approximately 1,300 tools and bots from 800 volunteers, with many more being submitted every day. Twenty percent of the tool labs' web tools that account for more than 60 percent of web traffic now run on Kubernetes. The tool labs has a 25-node cluster that keeps up with each new Kubernetes release. Many existing web tools are migrating to Kubernetes.
|
||||
</p>
|
||||
<p>
|
||||
"Our goal is to make sure that people all over the world can share knowledge as easily as possible. Kubernetes helps with that, by making it easier for wikis everywhere to have the tools they need to thrive," says Yuvi.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
<main>
|
||||
<div class="content">
|
||||
<h4>Simplifying infrastructure and keeping wikis running better</h4>
|
||||
<p>
|
||||
Wikimedia Tool Labs has seen great success with the initial Kubernetes deployment. Old code is being simplified and eliminated, contributing developers don’t have to change the way they write their tools and bots, and those tools and bots run in a more stable fashion than they have in the past. The paid staff and volunteers are able to better keep up with fixing issues.
|
||||
</p>
|
||||
<p>
|
||||
In the future, with a more complete migration to Kubernetes, Wikimedia Tool Labs expects to make it even easier to host and maintain the bots and tools that help run wikis across the world. The tool labs already host approximately 1,300 tools and bots from 800 volunteers, with many more being submitted every day. Twenty percent of the tool labs’ web tools that account for more than 60 percent of web traffic now run on Kubernetes. The tool labs has a 25-node cluster that keeps up with each new Kubernetes release. Many existing web tools are migrating to Kubernetes.
|
||||
</p>
|
||||
<p>
|
||||
“Our goal is to make sure that people all over the world can share knowledge as easily as possible. Kubernetes helps with that, by making it easier for wikis everywhere to have the tools they need to thrive,” says Yuvi.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
{% include footer.html %}
|
||||
{% include case-study-styles.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
## 如何参与 Kubernetes 文档汉化工作
|
||||
|
||||
我们非常欢迎,非常希望您参与 Kubernetes 文档汉化做出贡献。
|
||||
|
||||
您可以单击屏幕右上角的 **Fork** 按钮,在您的 Github 账户中创建一外名为 *fork* 的存储库副本。在您的分支中进行更改,当您准备好将这些更改发送给我们时,请转到您的仓库创建新的 pull 请求,让我们知道这一点。
|
||||
|
||||
关于更多的贡献信息,请参阅:
|
||||
|
||||
* [贡献于 Kubernetes 文档](http://kubernetes.io/editdocs/)
|
||||
* [创建文档拉取请求](http://kubernetes.io/docs/contribute/create-pull-request/)
|
||||
* [写一个新的话题](http://kubernetes.io/docs/contribute/write-new-topic/)
|
||||
* [暂停您的文档更改](http://kubernetes.io/docs/contribute/stage-documentation-changes/)
|
||||
* [更用页面模板](http://kubernetes.io/docs/contribute/page-templates/)
|
||||
* [文档样式指南](http://kubernetes.io/docs/contribute/style-guide/)
|
||||
|
||||
## 谢谢您!
|
||||
|
||||
Kubernetes 在社区参与中茁壮成长,我们非常感谢您对我们的网站和文档的贡献!
|
||||
@@ -1,2 +0,0 @@
|
||||
Kubernetes 文档的 [用户指南](/docs/user-guide/) 部分中的主题将被移动到 [任务](/docs/tasks/)、[教程](/docs/tutorials/)和
|
||||
[概念](/docs/concepts) 部分。 本主题的内容已转移到:
|
||||
@@ -1,119 +0,0 @@
|
||||
---
|
||||
assignees:
|
||||
- k8s-merge-robot
|
||||
|
||||
title: 认识 Kubernetes?
|
||||
---
|
||||
|
||||
Kubernetes 是一个 [开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作](http://www.slideshare.net/BrianGrant11/wso2con-us-2015-kubernetes-a-platform-for-automating-deployment-scaling-and-operations) 可以跨主机集群, 提供以容器为中心的基础架构。
|
||||
|
||||
使用 Kubernetes, 您可以快速高效地响应客户需求:
|
||||
|
||||
- 快速、可预测地部署您的应用程序
|
||||
- 拥有即时扩展应用程序的能力
|
||||
- 不影响现有业务的情况下,无缝地发布新功能。
|
||||
- 优化您的硬件资源,降低您的拥有成本
|
||||
|
||||
我们的目标是构建一个软件和工具的生态系统,以减轻您在公共云或私有云运行应用程序的负担。
|
||||
|
||||
#### Kubernetes 具有如下特点:
|
||||
|
||||
* **便携性**: 无论公有云、私有云、混合云还是多云架构都全面支持
|
||||
* **可扩展**: 它是模块化、可插拔、可挂载、可组合的,支持各种形式的扩展
|
||||
* **自修复**: 它可以自保持应用状态、可自重启、自复制、自缩放的,通过声明式语法提供了强大的自修复能力
|
||||
|
||||
Kubernetes 项目由 Google 公司在 2014 年启动。Kubernetes 建立在 [Google 公司超过十余年的运维经验基础之上,Google 所有的应用都运行在容器上](https://research.google.com/pubs/pub43438.html), 再与社区中最好的想法和实践相结合,也许它是最受欢迎的容器平台。
|
||||
|
||||
##### 准备好 [开始](/docs/getting-started-guides/)?
|
||||
|
||||
## 为什么是容器?
|
||||
|
||||
查看此文,可以了解为什么您要使用容器 [容器](http://aucouranton.com/2014/06/13/linux-containers-parallels-lxc-openvz-docker-and-more/)?
|
||||
|
||||

|
||||
|
||||
*传统* 部署应用程序的方式,一般是使用操作系统自带的包管理器在主机上安装应用依赖,之后再安装应用程序。这无疑将应用程序的可执行文件、应用的配置、应用依赖库和应用的生命周期与宿主机操作系统进行了紧耦合。在此情境下,可以通过构建不可改变的虚拟机镜像版本,通过镜像版本实现可预测的发布和回滚,但是虚拟机实在是太重量级了,且镜像体积太庞大,便捷性差。
|
||||
|
||||
*新方式* 是基于操作系统级虚拟化而不是硬件级虚拟化方法来部署容器。容器之间彼此隔离并与主机隔离:它们具有自己的文件系统,不能看到彼此的进程,并且它们所使用的计算资源是可以被限制的。它们比虚拟机更容易构建,并且因为它们与底层基础架构和主机文件系统隔离,所以它们可以跨云和操作系统快速分发。
|
||||
|
||||
由于容器体积小且启动快,因此可以在每个容器镜像中打包一个应用程序。这种一对一的应用镜像关系拥有很多好处。使用容器,不需要与外部的基础架构环境绑定, 因为每一个应用程序不需要外部依赖,更不需要与外部的基础架构环境依赖。完美解决了从开发到生产环境的一致性问题。
|
||||
|
||||
类似地,容器比虚拟机更加透明,这有助于监测和管理。真实的情况是,容器进程的生命周期由基础设施管理,而容器内的进程对外是隐藏的。最后,每个应用程序用容器封装,管理容器部署就等同于管理应用程序部署。
|
||||
|
||||
容器好处摘要:
|
||||
|
||||
* **敏捷的应用程序创建和部署**:
|
||||
与虚拟机镜像相比,容器镜像更容易创建,提升了硬件的使用效率。
|
||||
* **持续开发、集成和部署**:
|
||||
提供可靠与频繁的容器镜像构建和部署,可以很方便及快速的回滚 (由于镜像不可变性).
|
||||
* **关注开发与运维的分离**:
|
||||
在构建/发布时创建应用程序容器镜像,从而将应用程序与基础架构分离。
|
||||
* **开发、测试和生产环境的一致性**:
|
||||
在笔记本电脑上运行与云中一样。
|
||||
* **云和操作系统的可移植性**:
|
||||
可运行在 Ubuntu, RHEL, CoreOS, 内部部署, Google 容器引擎和其他任何地方。
|
||||
* **以应用为中心的管理**:
|
||||
提升了操作系统的抽象级别,以便在使用逻辑资源的操作系统上运行应用程序。
|
||||
* **松耦合、分布式、弹性伸缩 [微服务](http://martinfowler.com/articles/microservices.html)**:
|
||||
应用程序被分成更小,更独立的部分,可以动态部署和管理 - 而不是巨型单体应用运行在专用的大型机。
|
||||
* **资源隔离**:
|
||||
通过对应用进行资源隔离,可以很容易的预测应用程序性能。
|
||||
* **资源利用**:
|
||||
高效率和高密度。
|
||||
|
||||
#### 为什么我们需要 Kubernetes,它能做什么?
|
||||
|
||||
最基础的,Kubernetes 可以在物理或虚拟机集群上调度和运行应用程序容器。然而,Kubernetes 还允许开发人员从物理和虚拟机'脱离',从以**主机为中心**的基础架构转移到以**容器为中心**的基础架构,这样可以提供容器固有的全部优点和益处。Kubernetes 提供了基础设施来构建一个真正以**容器为中心**的开发环境。
|
||||
|
||||
Kubernetes 满足了生产中运行应用程序的许多常见的需求,例如:
|
||||
|
||||
* [Pod](/docs/user-guide/pods/) 提供复合应用并保留一个应用一个容器的容器模型,
|
||||
* [挂载外部存储](/docs/user-guide/volumes/),
|
||||
* [Secret管理](/docs/user-guide/secrets/),
|
||||
* [应用健康检查](/docs/user-guide/production-pods/#liveness-and-readiness-probes-aka-health-checks),
|
||||
* [副本应用实例](/docs/user-guide/replication-controller/),
|
||||
* [横向自动扩缩容](/docs/user-guide/horizontal-pod-autoscaling/),
|
||||
* [服务发现](/docs/user-guide/connecting-applications/),
|
||||
* [负载均衡](/docs/user-guide/services/),
|
||||
* [滚动更新](/docs/user-guide/update-demo/),
|
||||
* [资源监测](/docs/user-guide/monitoring/),
|
||||
* [日志采集和存储](/docs/user-guide/logging/overview/),
|
||||
* [支持自检和调试](/docs/user-guide/introspection-and-debugging/),
|
||||
* [认证和鉴权](/docs/admin/authorization/).
|
||||
|
||||
这提供了平台即服务 (PAAS) 的简单性以及基础架构即服务 (IAAS) 的灵活性,并促进跨基础设施供应商的可移植性。
|
||||
|
||||
有关详细信息,请参阅 [用户指南](/docs/user-guide/).
|
||||
|
||||
#### 为什么 Kubernetes 是一个平台?
|
||||
|
||||
Kubernetes 提供了很多的功能,总会有新的场景会受益于新特性。它可以简化应用程序的工作流,加快开发速度。被大家认可的应用编排通常需要有较强的自动化能力。这就是为什么 Kubernetes 被设计作为构建组件和工具的生态系统平台,以便更轻松地部署、扩展和管理应用程序。
|
||||
|
||||
[Label](/docs/user-guide/labels/) 允许用户按照自己的方式组织管理对应的资源。 [注解](/docs/user-guide/annotations/) 使用户能够以自定义的描述信息来修饰资源,以适用于自己的工作流,并为管理工具提供检查点状态的简单方法。
|
||||
|
||||
此外,[Kubernetes 控制面](/docs/admin/cluster-components) 是构建在相同的 [APIs](/docs/api/) 上面,开发员人和用户都可以用。用户可以编写自己的控制器, [调度器](https://git.k8s.io/community/contributors/devel/scheduler.md)等等,如果这么做,根据新加的[自定义 API](https://git.k8s.io/community/contributors/design-proposals/extending-api.md) ,可以扩展当前的通用 [CLI 命令行工具](/docs/user-guide/kubectl-overview/)。
|
||||
|
||||
这种 [设计](https://git.k8s.io/community/contributors/design-proposals/principles.md) 使得许多其他系统可以构建在 Kubernetes 之上。
|
||||
|
||||
#### Kubernetes 不是什么:
|
||||
|
||||
Kubernetes 不是一个传统意义上,包罗万象的 PaaS (平台即服务) 系统。我们保留用户选择的自由,这非常重要。
|
||||
|
||||
* Kubernetes 不限制支持的应用程序类型。 它不插手应用程序框架 (例如 [Wildfly](http://wildfly.org/)), 不限制支持的语言运行时 (例如 Java, Python, Ruby),只迎合符合 [12种因素的应用程序](http://12factor.net/),也不区分"应用程序"与"服务"。Kubernetes 旨在支持极其多样化的工作负载,包括无状态、有状态和数据处理工作负载。如果应用可以在容器中运行,它就可以在 Kubernetes 上运行。
|
||||
* Kubernetes 不提供作为内置服务的中间件 (例如 消息中间件)、数据处理框架 (例如 Spark)、数据库 (例如 mysql)或集群存储系统 (例如 Ceph)。这些应用可以运行在 Kubernetes 上。
|
||||
* Kubernetes 没有提供点击即部署的服务市场
|
||||
* Kubernetes 从源代码到镜像都是非垄断的。 它不部署源代码且不构建您的应用程序。 持续集成 (CI) 工作流是一个不同用户和项目都有自己需求和偏好的领域。 所以我们支持在 Kubernetes 分层的 CI 工作流,但不指定它应该如何工作。
|
||||
* Kubernetes 允许用户选择其他的日志记录,监控和告警系统 (虽然我们提供一些集成作为概念验证)
|
||||
* Kubernetes 不提供或授权一个全面的应用程序配置语言/系统 (例如 [jsonnet](https://github.com/google/jsonnet)).
|
||||
* Kubernetes 不提供也不采用任何全面机器配置、保养、管理或自我修复系统
|
||||
|
||||
另一方面,许多 PaaS 系统*运行*在 Kubernetes 上面,例如 [Openshift](https://github.com/openshift/origin), [Deis](http://deis.io/), and [Eldarion](http://eldarion.cloud/)。 您也可以自定义您自己的 PaaS, 与您选择的 CI 系统集成,或与 Kubernetes 一起使用: 将您的容器镜像部署到 Kubernetes。
|
||||
|
||||
由于 Kubernetes 在应用级别而不仅仅在硬件级别上运行,因此它提供 PaaS 产品通用的一些功能,例如部署、扩展、负载均衡、日志记录、监控等。但是,Kubernetes 不是单一的,默认解决方案是可选和可插拔的。
|
||||
|
||||
此处,Kubernetes 不仅仅是一个 "编排系统";它消除了编排的需要。 "编排"技术定义的是工作流的执行: 从 A 到 B,然后到 C。相反,Kubernetes 是包括一套独立、可组合的控制过程,通过声明式语法使其连续地朝着期望状态驱动当前状态。 不需要告诉它具体从 A 到 C 的过程,只要告诉到 C 的状态即可。 也不需要集中控制;该方法更类似于"编舞"。这使得系统更容易使用并且更强大、更可靠、更具弹性和可扩展性。
|
||||
|
||||
#### *Kubernetes* 是什么意思? K8s?
|
||||
|
||||
名称 **Kubernetes** 源于希腊语,意为 "舵手" 或 "飞行员", 且是英文 "governor" 和 ["cybernetic"](http://www.etymonline.com/index.php?term=cybernetics)的词根。 **K8s** 是通过将 8 个字母 "ubernete" 替换为 8 而导出的缩写。另外,在中文里,k8s 的发音与 Kubernetes 的发音比较接近。
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
title: 交互式教程 - 创建集群
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/1" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/deploy-intro/" role="button">Continue to Module 2<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,110 +0,0 @@
|
||||
---
|
||||
redirect_from:
|
||||
- "/docs/tutorials/getting-started/create-cluster/"
|
||||
- "/docs/tutorials/getting-started/create-cluster.html"
|
||||
title: 使用 Minikube 创建一个集群
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>了解什么是 Kubernetes 集群</li>
|
||||
<li>了解什么是 Minikube</li>
|
||||
<li>使用在线终端启动 Kubernetes 集群</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>Kubernetes 集群</h3>
|
||||
<p>
|
||||
<b>Kubernetes 用于协调高度可用的计算机集群,这些计算机群集被连接作为单个单元工作。</b> Kubernetes 中的抽象允许您将容器化的应用程序部署到集群,而不必专门将其绑定到单个计算机。为了利用这种新的部署模型,应用程序需要以将它们与各个主机分离的方式打包: 它们需要被容器化。容器化应用程序比过去的部署模型更灵活和可用,其中应用程序直接安装到特定机器上,作为深入集成到主机中的软件包。 <b>Kubernetes 以更有效的方式自动化、跨集群的容器应用程序的分发和调度。</b> Kubernetes 是一个 <a href="https://github.com/kubernetes/kubernetes">开源</a> 平台,为生产环境准备的。
|
||||
</p>
|
||||
<p>Kubernetes 集群由两种类型的资源组成:
|
||||
<ul>
|
||||
<li>一个 <b>Master</b> 调度节点</li>
|
||||
<li><b>Nodes</b> 应用程序实际运行的地方</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>概要:</h3>
|
||||
<ul>
|
||||
<li>Kubernetes 集群</li>
|
||||
<li>Minikube</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
Kubernetes 是一个生产级的开源平台,用于协调计算机集群内部和跨计算机集群的应用程序容器的分发(调度)和运行。
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">集群图</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_01_cluster.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><b>Master 负责管理集群。</b> master 协调集群中的所有活动,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。</p>
|
||||
<p><b>node 是 Kubernetes 集群中的工作机器,可以是物理机或虚拟机。</b> 每个工作节点都有一个 Kubelet,它是管理 node 并与 Kubernetes Master 节点进行通信的代理。node 上还应具有处理容器操作的工作,例如 <a href="https://www.docker.com/">Docker</a> 或 <a href="https://coreos.com/rkt/">rkt</a>。一个 Kubernetes 工作集群至少有三个 node 节点。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> Master 管理集群和 Nodes 用于托管正在运行的应用程序。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>当您在 Kubernetes 上部署应用程序时,您可以告诉 master 启动应用程序容器。Master 调度容器在集群的 Node 上运行。<b> Nodes 使用 Master 公开的 Kubernetes API 与 Master 通信</b>。最终用户还可以直接使用 Kubernetes 的 API 与集群交互。</p>
|
||||
|
||||
<p>Kubernetes 集群可以部署在物理机或虚拟机上。要开始使用 Kubernetes 开发,您可以使用 <a href="https://github.com/kubernetes/minikube">Minikube</a>。Minikube 是一个轻量级的 Kubernetes 实现,在本机创建一台虚拟机,并部署一个只包含一个节点的简单集群。 Minikube 适用于 Linux, Mac OS 和 Windows 系统。Minikube CLI 提供了集群的基本引导操作,包括启动、停止、状态和删除。但是,对于此基础训练,您将使用预先安装了 Minikube 的在线终端。</p>
|
||||
|
||||
<p>现在您已经知道 Kubernetes 是什么,让我们使用在线教程,开始我们的第一个集群!</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/cluster-interactive/" role="button">启动交互教程 <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
title: 交互式教程 - 部署应用程序
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<br>
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/7" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/explore-intro/" role="button">Continue to Module 3<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,108 +0,0 @@
|
||||
---
|
||||
title: 使用 kubectl 创建部署
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>了解应用程序部署</li>
|
||||
<li>使用 kubectl 在 Kubernetes 上部署您的第一个应用程序</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>Kubernetes 部署</h3>
|
||||
<p>
|
||||
一旦运行了 Kubernetes 集群,您可以在其上部署容器化应用程序。为此,您可以创建一个 Kubernetes <b>Deployment</b>。Deployment 负责创建和更新应用程序实例。创建 Deployment 后, Kubernetes master 会将 Deployment 创建的应用程序实例调度到集群中的各个节点。
|
||||
</p>
|
||||
|
||||
<p>创建应用程序实例后,Kubernetes Deployment 控制器会持续监视这些实例。如果托管它的节点不可用或删除,则 Deployment 控制器将替换实例。 <b>这提供了一种解决机器故障或维护的自愈机制。</b></p>
|
||||
|
||||
<p>在编排前的世界中,通常会使用安装脚本启动应用程序,但是它们并不能从机器故障中恢复。通过创建应用程序实例并使其运行在跨节点的机器之间,Kubernetes Deployments 提供了截然不同的应用管理方法。 </p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>概要:</h3>
|
||||
<ul>
|
||||
<li>Deployments</li>
|
||||
<li>Kubectl</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
Deployment 负责创建和更新应用程序的实例
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">在 Kubernetes 上部署您的第一个应用程序</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>您可以使用 Kubernetes 命令行工具 <b>Kubectl</b>创建和管理 Deployment。Kubectl 使用 Kubernetes API 与集群进行交互。在本模块中,您将学习在 Kubernetes 集群上运行应用程序部署所需的最常见 Kubectl 命令。</p>
|
||||
|
||||
<p>创建部署时,您需要为应用程序指定容器镜像以及要运行的副本数。您可以稍后通过更新部署来更改该信息;模块 <a href="/docs/tutorials/kubernetes-basics/scale-intro/">5</a> 和 <a href="/docs/tutorials/kubernetes-basics/update-intro/">6</a> 是一个基础训练讨论如何扩展和更新您的部署。</p>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> 应用程序需要打包成支持的容器格式之一,以便部署在 Kubernetes 上。</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p>对于我们的第一个部署,我们将使用 <a href="https://nodejs.org">Node.js</a> 应用程序打包到 Docker 容器。源代码和 Dockerfile 可在 Kubernetes Bootcamp <a href="https://github.com/kubernetes/kubernetes-bootcamp">GitHub 存储库</a> 中找到。</p>
|
||||
|
||||
<p>现在您已经知道部署是什么,我来再来看看在线教程,并部署我们的第一个应用程序!</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/deploy-interactive/" role="button">启动交互式教程 <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
title: 交互式教程 - 应用程序探索
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<br>
|
||||
<div class="katacoda">
|
||||
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/4" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/expose-intro/" role="button">Continue to Module 4<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,142 +0,0 @@
|
||||
---
|
||||
title: 查看 Pods 和 Nodes
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>了解 Kubernetes Pods</li>
|
||||
<li>了解 Kubernetes Nodes</li>
|
||||
<li>已部署应用故障排除</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h2>Kubernetes Pods</h2>
|
||||
<p>当您在模块 <a href="/docs/tutorials/kubernetes-basics/deploy-intro/">2</a>中创建部署时,Kubernetes 创建了一个 <b>Pod</b> 来托管您的应用程序实例。Pod 是一个 Kubernetes 的资源抽象,表示一个或多个应用容器 (例如 Docker 或 rkt) 组,以及一些用于这些容器的共享资源。这些资源包括:</p>
|
||||
<ul>
|
||||
<li>共享存储,如卷</li>
|
||||
<li>网络,作为唯一的集群 IP 地址</li>
|
||||
<li>每个容器如何运行的信息,例如容器镜像版本或要使用的特定端口</li>
|
||||
</ul>
|
||||
<p>Pod 模型可以理解为应用程序特定的 "逻辑主机",并且可以包含相对紧密耦合的不同应用程序容器。例如,Pod 可能包含带有 Node.js 应用程序的容器以及用于提供要由 Node.js Web 服务器发布数据的不同容器。Pod 中的容器共享 IP 地址和端口空间,始终位于同一位置并且统一调度,并在相同的节点上运行,共享上下文环境。</p>
|
||||
|
||||
<p>Pods 是 Kubernetes 平台上的原子单元。当我们在 Kubernetes 上创建一个部署时,该部署将在其中创建包含容器的 Pod (而不是直接创建容器)。每个 Pod 绑定到它被调度的节点,并且保持在那里,直到终止 (根据重启策略) 或删除。在节点故障的情况下,在集群中的其他可用节点上调度相同的 Pod。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>概要:</h3>
|
||||
<ul>
|
||||
<li>Pods</li>
|
||||
<li>Nodes</li>
|
||||
<li>Kubectl 主要命令</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
Pod 是一组或多个应用程序容器 (例如 Docker 或 rkt),包含共享存储 (卷),IP 地址以及有关如何运行它们的信息。
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">Pods 概览</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_pods.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>Nodes</h2>
|
||||
<p>Pod 总是运行在 <b>Node</b>上。Node 是 Kubernetes 的工作机器,可以是一个虚拟机或物理,这取决于在集群的安装情况。每个 Node 由 Master 管理。一个 Node 上可以有多个 Pod, Kubernetes master 会自动处理调度集群各个 Node 上的 Pod。 Master 在自动调度时,会考虑每个 Node 上的可用资源。</p>
|
||||
|
||||
<p>每个 Kubernetes Node 节点至少运行以下组件:</p>
|
||||
<ul>
|
||||
<li>Kubelet 是负责 Kubernetes Master 和 所有 Node 节点之间通信的进程,它管理机器上运行的 Pod 和容器。</li>
|
||||
<li>容器运行时(例如 Docker, rkt) 负责从镜像仓库中拉取容器镜像,解包容器并运行应用程序。</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> 如果一些容器强耦合并且需要共享资源(例如 磁盘),那么这些容器应该放到单个 Pod 中一起调度。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">Node 概述</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_nodes.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>使用 kubectl 进行故障排除</h2>
|
||||
<p>在模块 <a href="/docs/tutorials/kubernetes-basics/deploy-intro/">2</a>中,您使用了 Kubectl 命令行接口。您将在模块 3 中继续使用它来获取有关已部署应用程序及其环境信息。最常见的操作可以通过以下 kubectl 命令完成:</p>
|
||||
<ul>
|
||||
<li><b>kubectl get</b> - 列出可用资源</li>
|
||||
<li><b>kubectl describe</b> - 显示有关资源的详细信息</li>
|
||||
<li><b>kubectl logs</b> - 从 Pod 中的容器打印日志</li>
|
||||
<li><b>kubectl exec</b> - 在 Pod 中的容器执行命令</li>
|
||||
</ul>
|
||||
|
||||
<p>您可以使用这些命令来查看应用程序部署的时间,它们当前的状态,运行的位置及其配置。</p>
|
||||
|
||||
<p>现在我们更多地了解了集群组件和命令行交互,接下来,一起来探索分析我们的应用程序。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> Node 是 Kubernetes 中的工作机器,可能是物理机或虚拟机,具体取决于集群的安装配置。多个 Pod 可以在一个 Node 上运行。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/explore-interactive/" role="button">启动交互式教程<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,36 +0,0 @@
|
||||
---
|
||||
title: 交互性教程 - 应用外部可见
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/8" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/scale-intro/" role="button">Continue to Module 5<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,138 +0,0 @@
|
||||
---
|
||||
title: 使用服务让您的应用程序外部可见
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>了解 Kubernetes 服务</li>
|
||||
<li>了解 Kubernetes 标签</li>
|
||||
<li>应用程序在 Kubernetes 外部可见</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>Kubernetes Services</h3>
|
||||
|
||||
<p>虽然每个 Pod 在所在的集群中拥有自己独立的 IP 地址,但这些 IP 地址不会暴露在 Kubernetes 集群外部。考虑到 Pod 可能随时会被终止、删除或被其他 Pod 替换,我们需要一种方法让其他 Pod 和应用程序自动发现彼此。Kubernetes 通过 Service 对 Pods 进行分组来解决此问题。一个 Kubernetes <b>Service</b> 是一个抽象层,它定义了一组逻辑的 Pods,并让这些 Pods 对外部流量可见,可以被负载均衡和服务发现。 </p>
|
||||
|
||||
<p>此抽象允许我们将 Pods 暴露给集群外部的流量访问。Services 具有自己的唯一集群专用 IP 地址,并显示一个端口以接收流量。如果选择在集群外公开 Service,则有如下选项:</p>
|
||||
<ul>
|
||||
<li>LoadBalancer - 提供公有 IP 地址 (在 GCP 或 AWS 上运行 Kubernetes 通常使用此方式)</li>
|
||||
<li>NodePort - 使用 NAT 在集群的每个 Node 节点的同一端口让服务可见。(所有 Kubernetes 集群和 Minikube 中都可用此方式)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>摘要:</h3>
|
||||
<ul>
|
||||
<li>Pod 流量外部可见</li>
|
||||
<li>Pods 流量负载均衡</li>
|
||||
<li>使用标签</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>
|
||||
Kubernetes Service 是一个抽象层,它定义了一组逻辑的 Pods,并为这些 Pods 启用了外部流量访问、负载均衡和服务发现。
|
||||
</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">Services 概述</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_services.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>一个 Service 提供了一组 Pods 的流量负载均衡。通过创建服务以对来自特定部署的所有 Pods 进行分组时,这是有用的(当我们有多个实例运行时,我们的应用程序将在下一个模块中使用这一点)。</p>
|
||||
|
||||
<p>Services 还负责集群内部的服务发现 (包含在 <a href="/docs/user-guide/connecting-applications/#accessing-the-service">访问服务</a>中)。 例如,这将允许前端服务 (如 web 服务器) 从后端服务 (如 数据库) 接收流量,而不必考虑 Pod。 </p>
|
||||
|
||||
<p>Services 使用标签选择器匹配一组 Pods,标签选择器支持在标签上进行原始逻辑分组的能力。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> 您可以通过添加 --expose 作为 kubectl 运行命令的参数,在创建 Deployment 的同时创建 Service。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><b>Labels</b> 是附加到对象的 键/值对,例如 Pods,您可以将它们视为社交媒体的标签符号。它们用于以对用户有意义的方式组织相关对象,如:</p>
|
||||
<ul>
|
||||
<li>生产环境 (生产、测试、开发)</li>
|
||||
<li>应用程序版本 (beta、v1.3)</li>
|
||||
<li>服务类型 (前端、后端、数据库)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> Labels 是附加到对象的键/值对。</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">Labels</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_labels.svg"></p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>Labels 可以在创建时或以后附加到对象,并可以随时修改。
|
||||
在使用 kubectl run 命令新建 Pods/Deployment 时,会设置一些默认的 Labels/Label。标签和标签选择器之间的链接定义了 Deployment 及其创建 Pod 之间的关系。</p>
|
||||
|
||||
<p>现在,让我们在 Service 的帮助下公开我们的应用程序,并应用一些新的标签。</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/expose-interactive/" role="button">启动交互式教程<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,106 +0,0 @@
|
||||
---
|
||||
title: 概述
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="./public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<h2>Kubernetes 基础</h2>
|
||||
<p>本教程介绍了 Kubernetes 集群编排系统的基础知识。每个模块包含关于 Kubernetes 主要特性和概念的一些背景信息,并包括一个交互式在线教程。这些交互式教程让您可以自己管理一个简单的集群及其容器化应用程序。</p>
|
||||
<p>使用交互式教程,您可以学习:</p>
|
||||
<ul>
|
||||
<li>在集群上部署容器化应用程序</li>
|
||||
<li>弹性部署</li>
|
||||
<li>使用新的软件版本,更新容器化应用程序</li>
|
||||
<li>调试容器化应用程序</li>
|
||||
</ul>
|
||||
<p>教程 Katacoda 在您的浏览器中运行一个虚拟终端,在浏览器中运行 Minikube,这是一个可在任何地方小规模本地部署的 Kubernetes 集群。没有安装任何软件或进行任何配置; 每个交互性教程都直接从您的网页浏览器上运行。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<h2>Kubernetes 可以为您做些什么?</h2>
|
||||
<p>现代的 Web 服务,用户希望应用程序能够 24/7 全天候使用,开发人员希望每天可以多次发布部署新版本的应用程序。 容器化可以帮助软件包服务于这些目标,使应用程序能够以简单快速的方式发布和更新,而无需停机。Kubernetes 帮助您确保这些容器化的应用程序在您想要的地方和时间运行,并帮助应用程序找到它们需要的资源的工具。 <a href="http://kubernetes.io/docs/whatisk8s/">Kubernetes</a> 是一个生产可用的开源平台,具有 Google 容器集群方面的设计与经验积累,拥有来自社区的最佳实践。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content__modules">
|
||||
<h2>Kubernetes 基础模块</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/cluster-intro/"><img src="./public/images/module_01.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="cluster-intro/"><h5>1. 创建一个 Kubernetes 集群</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/deploy-intro/"><img src="./public/images/module_02.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="deploy-intro/"><h5>2. 部署应用程序</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/explore-intro/"><img src="./public/images/module_03.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="explore-intro/"><h5>3. 应用程序探索</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/expose-intro/"><img src="./public/images/module_04.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="expose-intro/"><h5>4. 应用外部可见</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/scale-intro/"><img src="./public/images/module_05.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="scale-intro/"><h5>5. 应用可伸缩</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail">
|
||||
<a href="/docs/tutorials/kubernetes-basics/update-intro/"><img src="./public/images/module_06.svg?v=1469803628347" alt=""></a>
|
||||
<div class="caption">
|
||||
<a href="update-intro/"><h5>6. 应用更新</h5></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/cluster-intro/" role="button">开始教程<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
title: 交互式教程 - 扩展您的应用程序
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/5" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/update-intro/" role="button">Continue to Module 6<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<a class="scrolltop" href="#top"></a>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,120 +0,0 @@
|
||||
---
|
||||
title: 运行应用程序的多个实例
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>使用 kubectl 缩放应用程序</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>缩放应用程序</h3>
|
||||
|
||||
<p>在之前的模块中,我们创建了一个 <a href="http://kubernetes.io/docs/user-guide/deployments/"> Deployment</a>,然后通过 <a href="http://kubernetes.io/docs/user-guide/services/">Service</a>让应用程序外部可见。Deployment 仅为我们的应用程序创建了一个 Pod。 当流量增加时,我们将需要扩展应用程序以跟上用户需求。</p>
|
||||
|
||||
<p><b>Scaling</b> 是通过更改 Deployment 中的副本数量实现的。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>摘要:</h3>
|
||||
<ul>
|
||||
<li>Deployment 的缩放</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i> 您可以使用 kubectl run 命令的 --replicas 参数,在创建 Deployment 时指定多个实例。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">Scaling 概述</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-8">
|
||||
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item active">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling1.svg">
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling2.svg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="sr-only ">Previous</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>扩展 Deployment 将确保新创建的 Pods 会调度到可用资源的 Node 节点上,收缩会保证 Pods 数量减少至新的所需状态。 Kubernetes 还支持 Pods 的 <a href="http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/"> 自动缩放版 </a> ,但不在本教程范围之内。收缩到零也是可以的,此时它将终止指定 Deployment 的所有 Pod。 </p>
|
||||
|
||||
<p>运行应用程序的多个实例需要一种将流量分发给所有实例的方法。服务有内置的负载均衡器,可将网络流量分配给 Deployment 暴露的所有 Pods。服务通过使用 endpoints 持续监控运行的 Pods,以确保流量仅发送到可用的 Pods。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>通过更改 Deployment 中的副本数可以实现伸缩应用程序。</i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p> 一旦您有应用程序的多个实例,您将能够滚动更新而不会停止服务。我们将在下一个模块中介绍。现在,我们去在线终端扩展我们的应用程序。</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/scale-interactive/" role="button">启动交互式教程 <span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
title: 交互式教程 - 更新您的应用程序
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
<script src="https://katacoda.com/embed.js"></script>
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content katacoda-content">
|
||||
|
||||
<div class="katacoda">
|
||||
<div class="katacoda__alert">
|
||||
To interact with the Terminal, please use the desktop/tablet version
|
||||
</div>
|
||||
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/6" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,135 +0,0 @@
|
||||
---
|
||||
title: 执行滚动更新
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
|
||||
|
||||
<div class="layout" id="top">
|
||||
|
||||
<main class="content">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>目标</h3>
|
||||
<ul>
|
||||
<li>使用 kubectl 执行滚动更新</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h3>更新应用程序</h3>
|
||||
|
||||
<p>用户期望应用程序始终可用,并且开发人员有望每天部署新版本。这就是 Kubernetes 的滚动更新。 <b>Rolling updates</b> 允许通过使用新的 Pods 实例逐个更新来实现零停机的更新部署。新的 Pods 会被调度到可用资源的 Node 节点上。</p>
|
||||
|
||||
<p>在上一个模块中,我们将应用程序扩展为运行多个实例。这是执行更新但不影响应用可用性的要求。默认情况下,更新期间最大数量的 Pods 可能不可用,此时创建和更新 Pod 的最大数量是一。 这两个选项可以配置为数字或百分比(Pods)。
|
||||
在 Kubernetes 中,更新已版本化,任何部署更新都可以恢复到以前的 (稳定) 版本。</p>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_lined">
|
||||
<h3>摘要:</h3>
|
||||
<ul>
|
||||
<li>更新应用程序</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>滚动更新允许通过使用新的 Pods 实例逐个更新来实现零停机的部署更新。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2 style="color: #3771e3;">滚动更新概述</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-1"></div>
|
||||
<div class="col-md-8">
|
||||
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="3"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item active">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates1.svg" >
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates2.svg">
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates3.svg">
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates4.svg">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="sr-only ">Previous</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
|
||||
<p>与应用程序缩放类似,如果 Deployment 外部可见,则 Service 将在更新期间将流量负载均衡到可用的 Pod。可用的 Pod 指的是应用程序用户可用的实例。</p>
|
||||
|
||||
<p>滚动更新允许以下操作:</p>
|
||||
<ul>
|
||||
<li>将应用程序从一个环境升级到另一个环境 (通过容器镜像更新)</li>
|
||||
<li>回滚到以前的版本</li>
|
||||
<li>持续集成和持续交付,实现应用程序零故障</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="content__box content__box_fill">
|
||||
<p><i>如果部署外部可见,则服务将在更新期间将流量负载均衡到可用的 Pod。 </i></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<p> 在下面的交互式教程中,我们将把应用程序更新到一个新版本,并执行回滚。</p>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/update-interactive/" role="button">启动交互式教程<span class="btn__next">›</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
assignees:
|
||||
- k8s-merge-robot
|
||||
title: 认识 Kubernetes?
|
||||
---
|
||||
|
||||
{% include user-guide-content-moved.md %}
|
||||
|
||||
[认识 Kubernetes?](/docs/concepts/overview/what-is-kubernetes/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Community
|
||||
---
|
||||
|
||||
<!Doctype html>
|
||||
<html id="community">
|
||||
{% include head-header.html %}
|
||||
|
||||
<section id="hero" class="light-text">
|
||||
<h1>Community</h1>
|
||||
</section>
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3>Ensuring Kubernetes works well everywhere and for everyone.</h3>
|
||||
<p>Connect with the Kubernetes community on our <a href="http://slack.k8s.io/">Slack channel</a> or join the
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-dev">Kubernetes-dev Google group</a>. A weekly
|
||||
community meeting takes place via video conference to discuss the state of affairs,
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-community-video-chat">get a calendar invite</a>
|
||||
to participate.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h3>SIGs</h3>
|
||||
<p>Have a special interest in how Kubernetes works with another technology? See our ever growing
|
||||
<a href="https://github.com/kubernetes/kubernetes/wiki/Special-Interest-Groups-(SIGs)">lists of SIGs</a>,
|
||||
from AWS and Openstack to Big Data and Scalability, there’s a place for you to contribute and instructions
|
||||
for forming a new SIG if your special interest isn’t covered (yet).</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h3>Events</h3>
|
||||
<div id="calendarWrapper">
|
||||
<iframe src="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com&ctz=America/Los_Angeles"
|
||||
frameborder="0" scrolling="no"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="talkToUs">
|
||||
<main>
|
||||
<h3>Talk to Us!</h3>
|
||||
<h4>We would love to hear from you, how you are using Kubernetes,<br> and what we can do to make it better.</h4>
|
||||
<div id="bigSocial">
|
||||
<div>
|
||||
<a href="https://twitter.com/kubernetesio">@kubernetesio</a>
|
||||
<p>Get the latest news and updates.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://github.com/kubernetes/kubernetes">Github Project</a>
|
||||
<p>Check out the project and consider contributing.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://slack.k8s.io/">#kubernetes-users</a>
|
||||
<p>Our Slack channel is the best way to contact our engineers and share your ideas with them.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes">Stack Overflow</a>
|
||||
<p>Our user forum is a great place to go for community support.</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,71 +0,0 @@
|
||||
---
|
||||
title: Community
|
||||
layout: basic
|
||||
cid: community
|
||||
---
|
||||
|
||||
<section id="hero" class="light-text">
|
||||
<h1>Community</h1>
|
||||
</section>
|
||||
|
||||
<section id="mainContent">
|
||||
<main>
|
||||
<div class="content">
|
||||
<h3>Ensuring Kubernetes works well everywhere and for everyone.</h3>
|
||||
<p>Connect with the Kubernetes community on our <a href="http://slack.k8s.io/">Slack channel</a> or join the
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-dev">Kubernetes-dev Google group</a>. A weekly
|
||||
community meeting takes place via video conference to discuss the state of affairs,
|
||||
<a href="https://groups.google.com/forum/#!forum/kubernetes-community-video-chat">get a calendar invite</a>
|
||||
to participate.</p>
|
||||
<p>You can also join Kubernauts all around the world through our
|
||||
<a href="https://www.meetup.com/topics/kubernetes/">Kubernetes Meetup Community</a> and the
|
||||
<a href="https://www.meetup.com/Kubernetes-Cloud-Native-Online-Meetup/">Kubernetes Cloud Native Meetup Community</a>.</p>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h3>Special Interest Groups (SIGs)</h3>
|
||||
<p>Have a special interest in how Kubernetes works with another technology? See our ever growing
|
||||
<a href="https://github.com/kubernetes/kubernetes/wiki/Special-Interest-Groups-(SIGs)">lists of SIGs</a>,
|
||||
from AWS and Openstack to Big Data and Scalability, there's a place for you to contribute and instructions
|
||||
for forming a new SIG if your special interest isn't covered (yet).</p>
|
||||
|
||||
<p>As a member of the Kubernetes community, you are welcome to join any of the SIG meetings
|
||||
you are interested in. No registration required.</p>
|
||||
<div id="calendarMeetings">
|
||||
<iframe src="https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com&ctz=America/Los_Angeles"
|
||||
frameborder="0" scrolling="no"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h3>Events</h3>
|
||||
<div id="calendarEvents">
|
||||
<iframe src="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com&ctz=America/Los_Angeles"
|
||||
frameborder="0" scrolling="no"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
|
||||
<section id="talkToUs">
|
||||
<main>
|
||||
<h3>Talk to Us!</h3>
|
||||
<h4>We would love to hear from you, how you are using Kubernetes,<br> and what we can do to make it better.</h4>
|
||||
<div id="bigSocial">
|
||||
<div>
|
||||
<a href="https://twitter.com/kubernetesio">@kubernetesio</a>
|
||||
<p>Get the latest news and updates.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="https://github.com/kubernetes/kubernetes">Github Project</a>
|
||||
<p>Check out the project and consider contributing.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://slack.k8s.io/">#kubernetes-users</a>
|
||||
<p>Our Slack channel is the best way to contact our engineers and share your ideas with them.</p>
|
||||
</div>
|
||||
<div>
|
||||
<a href="http://stackoverflow.com/questions/tagged/kubernetes">Stack Overflow</a>
|
||||
<p>Our user forum is a great place to go for community support.</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</section>
|
||||
@@ -0,0 +1,6 @@
|
||||
.deprecation-warning {
|
||||
padding: 20px;
|
||||
margin: 20px 0;
|
||||
border-radius: 3px;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
@@ -1,310 +0,0 @@
|
||||
#caseStudyTitle {
|
||||
margin-top: 1em !important;
|
||||
}
|
||||
|
||||
.gridPage p {
|
||||
color: rgb(26,26,26) !important;
|
||||
margin-left: 0 !important;
|
||||
padding-left: 0 !important;
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
|
||||
.gridPage #mainContent {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.gridPage #mainContent .content {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.gridPage main {
|
||||
max-width: 1100px !important;
|
||||
}
|
||||
|
||||
.gridPage .content {
|
||||
position: relative;
|
||||
margin: 0 auto 50px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.gridPage .content p {
|
||||
line-height: 24px !important;
|
||||
}
|
||||
|
||||
.gridPage .content h3 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.gridPage #hero h5 {
|
||||
padding-left: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.case-studies {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.case-study {
|
||||
position: relative;
|
||||
width: 50%;
|
||||
padding: 0 40px 0 242px;
|
||||
margin-bottom: 60px;
|
||||
min-height: 152px;
|
||||
}
|
||||
|
||||
.case-study:nth-child(3), .case-study:nth-child(4) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.gridPage #mainContent .content .case-study p {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 16px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
p.attrib {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.gridPage #video {
|
||||
background: #f9f9f9;
|
||||
height: auto;
|
||||
/*height: 340px;*/
|
||||
}
|
||||
|
||||
.gridPage #video main {
|
||||
position: relative;
|
||||
max-width: 900px !important;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 50px 20px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.gridPage #video main #zulilyLogo {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.gridPage #video main img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.gridPage #video h3 {
|
||||
font-size: 32px;
|
||||
font-weight: 300;
|
||||
line-height: 38px;
|
||||
max-width: 80%;
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
|
||||
.gridPage #video p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.gridPage #video p.attrib {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.gridPage #video button > h6 {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
margin: 1em 0;
|
||||
color: #326de6;
|
||||
}
|
||||
|
||||
.gridPage #users {
|
||||
padding: 50px;
|
||||
}
|
||||
|
||||
.gridPage #users main {
|
||||
max-width: 1150px !important;
|
||||
}
|
||||
|
||||
.gridPage #users main h3 {
|
||||
padding-left: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a {
|
||||
display: inline-block;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a img {
|
||||
box-shadow: 1px 1px 2px transparent;
|
||||
transition: box-shadow 0.25s;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a img:hover {
|
||||
box-shadow: 1px 1px 2px #cccccc;
|
||||
}
|
||||
|
||||
.gridPage #usersGrid a:last-child img,
|
||||
.gridPage #usersGrid a:last-child img:hover {
|
||||
box-shadow: 1px 1px 2px transparent;
|
||||
}
|
||||
|
||||
.tell-your-story {
|
||||
border: 1px solid #dddddd;
|
||||
border-radius: 6px;
|
||||
box-shadow: 1px 2px 2px #dddddd;
|
||||
}
|
||||
|
||||
.gridPage .feature {
|
||||
position: relative;
|
||||
padding: 20px 0 20px 242px;
|
||||
}
|
||||
|
||||
.gridPage .feature img {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
section.bullets {
|
||||
background-color: #eeeeee;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
section.bullets main {
|
||||
position: relative;
|
||||
max-width: 1100px;
|
||||
padding: 50px 0;
|
||||
}
|
||||
|
||||
section.bullets .content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.bullet {
|
||||
position: relative;
|
||||
width: 50%;
|
||||
padding: 15px 30px;
|
||||
}
|
||||
|
||||
.bullet h4 {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.bullet li {
|
||||
margin-left: 1.25em;
|
||||
list-style: disc;
|
||||
font-weight: 300;
|
||||
color: rgb(26,26,26);
|
||||
line-height: 1.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.details h4, p {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.gridPage .feature p.quote {
|
||||
font-size: 20px;
|
||||
line-height: 28px !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.case-study {
|
||||
padding: 0 10%;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.case-study p.quote {
|
||||
margin-top: 20px !important;
|
||||
}
|
||||
|
||||
.case-study p.attrib {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px){
|
||||
.gridPage #video main {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div + div {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.gridPage #video h3 {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 640px){
|
||||
.case-study {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.case-study:nth-child(3) {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.case-study img {
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.gridPage .feature {
|
||||
margin-top: 50px;
|
||||
padding: 180px 0 0;
|
||||
}
|
||||
|
||||
.gridPage .feature img {
|
||||
top: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 480px){
|
||||
.gridPage #hero {
|
||||
padding-right: 20px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.gridPage #video main > div {
|
||||
width: 80%;
|
||||
min-width: 280px;
|
||||
}
|
||||
|
||||
.bullet {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,16 @@ assignees:
|
||||
- bgrant0607
|
||||
- erictune
|
||||
- lavalamp
|
||||
title: Controlling Access to the Kubernetes API
|
||||
|
||||
---
|
||||
|
||||
This document describes how access to the Kubernetes API is controlled.
|
||||
|
||||
## Overview
|
||||
|
||||
Users [access the API](/docs/user-guide/accessing-the-cluster) using `kubectl`,
|
||||
client libraries, or by making REST requests. Both human users and
|
||||
[Kubernetes service accounts](/docs/tasks/configure-pod-container/configure-service-account/) can be
|
||||
[Kubernetes service accounts](/docs/user-guide/service-accounts/) can be
|
||||
authorized for API access.
|
||||
When a request reaches the API, it goes through several stages, illustrated in the
|
||||
following diagram:
|
||||
@@ -20,7 +24,7 @@ following diagram:
|
||||
In a typical Kubernetes cluster, the API served on port 443. A TLS connection is
|
||||
established. The API server presents a certificate. This certificate is
|
||||
often self-signed, so `$USER/.kube/config` on the user's machine typically
|
||||
contains the root certificate for the API server's certificate, which when specified
|
||||
contains the root certficate for the API server's certificate, which when specified
|
||||
is used in place of the system default root certificates. This certificate is typically
|
||||
automatically written into your `$USER/.kube/config` when you create a cluster yourself
|
||||
using `kube-up.sh`. If the cluster has multiple users, then the creator needs to share
|
||||
@@ -38,7 +42,7 @@ The input to the authentication step is the entire HTTP request, however, it typ
|
||||
just examines the headers and/or client certificate.
|
||||
|
||||
Authentication modules include Client Certificates, Password, and Plain Tokens,
|
||||
Bootstrap Tokens, and JWT Tokens (used for service accounts).
|
||||
and JWT Tokens (used for service accounts).
|
||||
|
||||
Multiple authentication modules can be specified, in which case each one is tried in sequence,
|
||||
until one of them succeeds.
|
||||
@@ -57,48 +61,43 @@ users in its object store.
|
||||
|
||||
## Authorization
|
||||
|
||||
After the request is authenticated as coming from a specific user, the request must be authorized. This is shown as step **2** in the diagram.
|
||||
Once the request is authenticated as coming from a specific user,
|
||||
it moves to a generic authorization step. This is shown as step **2** in the
|
||||
diagram.
|
||||
|
||||
A request must include the username of the requester, the requested action, and the object affected by the action. The request is authorized if an existing policy declares that the user has permissions to complete the requested action.
|
||||
The input to the Authorization step are attributes of the REST request, including:
|
||||
- the username determined by the Authentication step.
|
||||
- a `verb` associated with the API request. Most object support these common operations: `list, watch, create, update, patch, delete`. Some objects have "special verbs"; for example pods and services can be `proxy`-ed.
|
||||
- any subresource associated with the API request (e.g. `status`).
|
||||
- the Group, Version, and Kind of the API resource (e.g. `v1 pod`, or `batch/v1 job`) being
|
||||
operated on.
|
||||
- the name and namespace of the object.
|
||||
|
||||
For example, if Bob has the policy below, then he can read pods only in the namespace `projectCaribou`:
|
||||
There are multiple supported Authorization Modules. The cluster creator configures the API
|
||||
server with which Authorization Modules should be used. When multiple Authorization Modules
|
||||
are configured, each is checked in sequence, and if any Module authorizes the request,
|
||||
then the request can proceed. If all deny the request, then the request is denied (HTTP status
|
||||
code 403).
|
||||
|
||||
```json
|
||||
{
|
||||
"apiVersion": "abac.authorization.kubernetes.io/v1beta1",
|
||||
"kind": "Policy",
|
||||
"spec": {
|
||||
"user": "bob",
|
||||
"namespace": "projectCaribou",
|
||||
"resource": "pods",
|
||||
"readonly": true
|
||||
}
|
||||
}
|
||||
```
|
||||
If Bob makes the following request, the request is authorized because he is allowed to read objects in the `projectCaribou` namespace:
|
||||
The [Authorization Modules](/docs/admin/authorization) page describes what authorization modules
|
||||
are available and how to configure them.
|
||||
|
||||
```json
|
||||
{
|
||||
"apiVersion": "authorization.k8s.io/v1beta1",
|
||||
"kind": "SubjectAccessReview",
|
||||
"spec": {
|
||||
"resourceAttributes": {
|
||||
"namespace": "projectCaribou",
|
||||
"verb": "get",
|
||||
"group": "unicorn.example.org",
|
||||
"resource": "pods"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
If Bob makes a request to write (`create` or `update`) to the objects in the `projectCaribou` namespace, his authorization is denied. If Bob makes a request to read (`get`) objects in a different namespace such as `projectFish`, then his authorization is denied.
|
||||
For version 1.2, clusters created by `kube-up.sh` are configured so that no authorization is
|
||||
required for any request.
|
||||
|
||||
Kubernetes authorization requires that you use common REST attributes to interact with existing organization-wide or cloud-provider-wide access control systems. It is important to use REST formatting because these control systems might interact with other APIs besides the Kubernetes API.
|
||||
As of version 1.3, clusters created by `kube-up.sh` are configured so that the ABAC authorization
|
||||
modules is enabled. However, its input file is initially set to allow all users to do all
|
||||
operations. The cluster administrator needs to edit that file, or configure a different authorizer
|
||||
to restrict what users can do.
|
||||
|
||||
Kubernetes supports multiple authorization modules, such as ABAC mode, RBAC Mode, and Webhook mode. When an administrator creates a cluster, they configured the authorization modules that should be used in the API server. If more than one authorization modules are configured, Kubernetes checks each module, and if any module authorizes the request, then the request can proceed. If all of the modules deny the request, then the request is denied (HTTP status code 403).
|
||||
|
||||
To learn more about Kubernetes authorization, including details about creating policies using the supported authorization modules, see [Authorization Overview](/docs/admin/authorization).
|
||||
The Authorization step is designed to operate on attributes that are likely to be common to most
|
||||
REST requests, such as object name, kind, etc. This is intended to facilitate interation with
|
||||
existing organization-wide or cloud-provider-wide access control systems (which may handle
|
||||
other APIs besides the Kubernetes API.
|
||||
|
||||
Access controls and policies that depend on specific fields of specific Kinds of objects
|
||||
are handled by Admission Controllers.
|
||||
|
||||
## Admission Control
|
||||
|
||||
@@ -109,7 +108,7 @@ They act on objects being created, deleted, updated or connected (proxy), but no
|
||||
|
||||
Multiple admission controllers can be configured. Each is called in order.
|
||||
|
||||
This is shown as step **3** in the diagram.
|
||||
This is shown as step **3** in the diagram.
|
||||
|
||||
Unlike Authentication and Authorization Modules, if any admission controller module
|
||||
rejects, then the request is immediately rejected.
|
||||
@@ -123,17 +122,17 @@ Once a request passes all admission controllers, it is validated using the valid
|
||||
for the corresponding API object, and then written to the object store (shown as step **4**).
|
||||
|
||||
|
||||
## API Server Ports and IPs
|
||||
## API Server Ports and IPs
|
||||
|
||||
The previous discussion applies to requests sent to the secure port of the API server
|
||||
(the typical case). The API server can actually serve on 2 ports:
|
||||
|
||||
By default the Kubernetes API server serves HTTP on 2 ports:
|
||||
By default the Kubernetes APIserver serves HTTP on 2 ports:
|
||||
|
||||
1. `Localhost Port`:
|
||||
|
||||
- is intended for testing and bootstrap, and for other components of the master node
|
||||
(scheduler, controller-manager) to talk to the API
|
||||
(scheduler, controller-manager) to talk to the API
|
||||
- no TLS
|
||||
- default is port 8080, change with `--insecure-port` flag.
|
||||
- defaults IP is localhost, change with `--insecure-bind-address` flag.
|
||||
@@ -142,14 +141,14 @@ By default the Kubernetes API server serves HTTP on 2 ports:
|
||||
- protected by need to have host access
|
||||
|
||||
2. `Secure Port`:
|
||||
|
||||
- use whenever possible
|
||||
|
||||
- use whenever possible
|
||||
- uses TLS. Set cert with `--tls-cert-file` and key with `--tls-private-key-file` flag.
|
||||
- default is port 6443, change with `--secure-port` flag.
|
||||
- default IP is first non-localhost network interface, change with `--bind-address` flag.
|
||||
- request handled by authentication and authorization modules.
|
||||
- request handled by admission control module(s).
|
||||
- authentication and authorisation modules run.
|
||||
- authentication and authoriation modules run.
|
||||
|
||||
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
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Add-ons extend the functionality of Kubernetes.
|
||||
|
||||
This page lists some of the available add-ons and links to their respective installation instructions.
|
||||
|
||||
Add-ons in each section are sorted alphabetically - the ordering does not imply any preferential status.
|
||||
|
||||
## 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.
|
||||
* [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.
|
||||
* [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).
|
||||
* [Weave Net](https://www.weave.works/docs/net/latest/kube-addon/) provides networking and network policy, will carry on working on both sides of a network partition, and does not require an external database.
|
||||
|
||||
## Visualization & Control
|
||||
|
||||
* [Dashboard](https://github.com/kubernetes/dashboard#kubernetes-dashboard) is a dashboard web interface for Kubernetes.
|
||||
* [Weave Scope](https://www.weave.works/documentation/scope-latest-installing/#k8s) is a tool for graphically visualizing your containers, pods, services etc. Use it in conjunction with a [Weave Cloud account](https://cloud.weave.works/) or host the UI yourself.
|
||||
|
||||
## Legacy Add-ons
|
||||
|
||||
There are several other add-ons documented in the deprecated [cluster/addons](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons) directory.
|
||||
|
||||
Well-maintained ones should be linked to here. PRs welcome!
|
||||
@@ -6,7 +6,7 @@ assignees:
|
||||
- erictune
|
||||
- janetkuo
|
||||
- thockin
|
||||
title: Using Admission Controllers
|
||||
|
||||
---
|
||||
|
||||
* TOC
|
||||
@@ -87,7 +87,7 @@ The ImagePolicyWebhook plug-in allows a backend webhook to make admission decisi
|
||||
```
|
||||
|
||||
#### Configuration File Format
|
||||
ImagePolicyWebhook uses the admission config file `--admission-control-config-file` to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format:
|
||||
ImagePolicyWebhook uses the admission controller config file (`--admission-controller-config-file`) to set configuration options for the behavior of the backend. This file may be json or yaml and has the following format:
|
||||
|
||||
```javascript
|
||||
{
|
||||
@@ -101,7 +101,7 @@ ImagePolicyWebhook uses the admission config file `--admission-control-config-fi
|
||||
}
|
||||
```
|
||||
|
||||
The config file must reference a [kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/) formatted file which sets up the connection to the backend. It is required that the backend communicate over TLS.
|
||||
The config file must reference a [kubeconfig](/docs/user-guide/kubeconfig-file/) formatted file which sets up the connection to the backend. It is required that the backend communicate over TLS.
|
||||
|
||||
The kubeconfig file's cluster field must point to the remote service, and the user field must contain the returned authorizer.
|
||||
|
||||
@@ -120,13 +120,13 @@ users:
|
||||
client-certificate: /path/to/cert.pem # cert for the webhook plugin to use
|
||||
client-key: /path/to/key.pem # key matching the cert
|
||||
```
|
||||
For additional HTTP configuration, refer to the [kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/) documentation.
|
||||
For additional HTTP configuration, refer to the [kubeconfig](/docs/user-guide/kubeconfig-file/) documentation.
|
||||
|
||||
#### Request Payloads
|
||||
|
||||
When faced with an admission decision, the API Server POSTs a JSON serialized api.imagepolicy.v1alpha1.ImageReview object describing the action. This object contains fields describing the containers being admitted, as well as any pod annotations that match `*.image-policy.k8s.io/*`.
|
||||
|
||||
Note that webhook API objects are subject to the same versioning compatibility rules as other Kubernetes API objects. Implementers should be aware of looser compatibility promises for alpha objects and check the "apiVersion" field of the request to ensure correct deserialization. Additionally, the API Server must enable the imagepolicy.k8s.io/v1alpha1 API extensions group (`--runtime-config=imagepolicy.k8s.io/v1alpha1=true`).
|
||||
Note that webhook API objects are subject to the same versioning compatibility rules as other Kubernetes API objects. Implementers should be aware of looser compatibility promises for alpha objects and check the “apiVersion” field of the request to ensure correct deserialization. Additionally, the API Server must enable the imagepolicy.k8s.io/v1alpha1 API extensions group (`--runtime-config=imagepolicy.k8s.io/v1alpha1=true`).
|
||||
|
||||
An example request body:
|
||||
|
||||
@@ -151,7 +151,7 @@ An example request body:
|
||||
}
|
||||
```
|
||||
|
||||
The remote service is expected to fill the ImageReviewStatus field of the request and respond to either allow or disallow access. The response body's "spec" field is ignored and may be omitted. A permissive response would return:
|
||||
The remote service is expected to fill the ImageReviewStatus field of the request and respond to either allow or disallow access. The response body’s “spec” field is ignored and may be omitted. A permissive response would return:
|
||||
|
||||
```
|
||||
{
|
||||
@@ -197,7 +197,7 @@ We strongly recommend using this plug-in if you intend to make use of Kubernetes
|
||||
|
||||
### SecurityContextDeny
|
||||
|
||||
This plug-in will deny any pod that attempts to set certain escalating [SecurityContext](/docs/user-guide/security-context) fields. This should be enabled if a cluster doesn't utilize [pod security policies](/docs/user-guide/pod-security-policy) to restrict the set of values a security context can take.
|
||||
This plug-in will deny any pod with a [SecurityContext](/docs/user-guide/security-context) that defines options that were not available on the `Container`.
|
||||
|
||||
### ResourceQuota
|
||||
|
||||
@@ -205,7 +205,7 @@ This plug-in will observe the incoming request and ensure that it does not viola
|
||||
enumerated in the `ResourceQuota` object in a `Namespace`. If you are using `ResourceQuota`
|
||||
objects in your Kubernetes deployment, you MUST use this plug-in to enforce quota constraints.
|
||||
|
||||
See the [resourceQuota design doc](https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md) and the [example of Resource Quota](/docs/concepts/policy/resource-quotas/) for more details.
|
||||
See the [resourceQuota design doc](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/admission_control_resource_quota.md) and the [example of Resource Quota](/docs/admin/resourcequota/) for more details.
|
||||
|
||||
It is strongly encouraged that this plug-in is configured last in the sequence of admission control plug-ins. This is
|
||||
so that quota is not prematurely incremented only for the request to be rejected later in admission control.
|
||||
@@ -218,7 +218,7 @@ your Kubernetes deployment, you MUST use this plug-in to enforce those constrain
|
||||
be used to apply default resource requests to Pods that don't specify any; currently, the default LimitRanger
|
||||
applies a 0.1 CPU requirement to all Pods in the `default` namespace.
|
||||
|
||||
See the [limitRange design doc](https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md) and the [example of Limit Range](/docs/tasks/configure-pod-container/limit-range/) for more details.
|
||||
See the [limitRange design doc](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/design/admission_control_limit_range.md) and the [example of Limit Range](/docs/admin/limitrange/) for more details.
|
||||
|
||||
### InitialResources (experimental)
|
||||
|
||||
@@ -227,7 +227,7 @@ then the plug-in auto-populates a compute resource request based on historical u
|
||||
If there is not enough data to make a decision the Request is left unchanged.
|
||||
When the plug-in sets a compute resource request, it annotates the pod with information on what compute resources it auto-populated.
|
||||
|
||||
See the [InitialResouces proposal](https://git.k8s.io/community/contributors/design-proposals/initial-resources.md) for more details.
|
||||
See the [InitialResouces proposal](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/proposals/initial-resources.md) for more details.
|
||||
|
||||
### NamespaceLifecycle
|
||||
|
||||
@@ -252,67 +252,9 @@ This plugin ignores any `PersistentVolumeClaim` updates, it acts only on creatio
|
||||
See [persistent volume](/docs/user-guide/persistent-volumes) documentation about persistent volume claims and
|
||||
storage classes and how to mark a storage class as default.
|
||||
|
||||
### DefaultTolerationSeconds
|
||||
|
||||
This plug-in sets the default forgiveness toleration for pods, which have no forgiveness tolerations, to tolerate
|
||||
the taints `notready:NoExecute` and `unreachable:NoExecute` for 5 minutes.
|
||||
|
||||
### PodNodeSelector
|
||||
|
||||
This plug-in defaults and limits what node selectors may be used within a namespace by reading a namespace annotation and a global configuration.
|
||||
|
||||
#### Configuration File Format
|
||||
PodNodeSelector uses the admission config file `--admission-control-config-file` to set configuration options for the behavior of the backend.
|
||||
|
||||
Note that the configuration file format will move to a versioned file in a future release.
|
||||
|
||||
This file may be json or yaml and has the following format:
|
||||
|
||||
```yaml
|
||||
podNodeSelectorPluginConfig:
|
||||
clusterDefaultNodeSelector: <node-selectors-labels>
|
||||
namespace1: <node-selectors-labels>
|
||||
namespace2: <node-selectors-labels>
|
||||
```
|
||||
|
||||
#### Configuration Annotation Format
|
||||
PodNodeSelector uses the annotation key `scheduler.alpha.kubernetes.io/node-selector` to assign node selectors to namespaces.
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/node-selector: <node-selectors-labels>
|
||||
name: namespace3
|
||||
```
|
||||
|
||||
### PodSecurityPolicy
|
||||
|
||||
This plug-in acts on creation and modification of the pod and determines if it should be admitted
|
||||
based on the requested security context and the available Pod Security Policies.
|
||||
|
||||
For Kubernetes < 1.6.0, the API Server must enable the extensions/v1beta1/podsecuritypolicy API
|
||||
extensions group (`--runtime-config=extensions/v1beta1/podsecuritypolicy=true`).
|
||||
|
||||
See also [Pod Security Policy documentation](/docs/concepts/policy/pod-security-policy/)
|
||||
for more information.
|
||||
|
||||
### NodeRestriction
|
||||
|
||||
This plug-in limits the `Node` and `Pod` objects a kubelet can modify. In order to be limited by this admission plugin,
|
||||
kubelets must use credentials in the `system:nodes` group, with a username in the form `system:node:<nodeName>`.
|
||||
Such kubelets will only be allowed to modify their own `Node` API object, and only modify `Pod` API objects that are bound to their node.
|
||||
Future versions may add additional restrictions to ensure kubelets have the minimal set of permissions required to operate correctly.
|
||||
|
||||
## Is there a recommended set of plug-ins to use?
|
||||
|
||||
Yes.
|
||||
For Kubernetes >= 1.6.0, we strongly recommend running the following set of admission control plug-ins (order matters):
|
||||
|
||||
```shell
|
||||
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds
|
||||
```
|
||||
|
||||
For Kubernetes >= 1.4.0, we strongly recommend running the following set of admission control plug-ins (order matters):
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user