Compare commits

..

1678 Commits

Author SHA1 Message Date
zhangchaolei aae3bfaf3e Release 1.7 (#4094)
* Minor fixes in the Deployment doc

Signed-off-by: Michail Kargakis <mkargaki@redhat.com>

* add NodeRestriction to admission-controllers (#3842)

* Admins Can Configure Zones in Storage Class

The PR #38505 (https://github.com/kubernetes/kubernetes/pull/38505) added zones optional parameter to Storage Class for AWS and GCE provisioners.

That's why documentation needs to be updated accordingly.

* document custom resource definitions

* add host paths to psp (#3971)

* add host paths to psp

* add italics

* Update ConfigMap doc to explain TTL-based cache updates (#3989)

* Update ConfigMap doc to explain TTL-based cache updates

* swap word order

Change "When a ConfigMap being already consumed..." to "When a ConfigMap already being consumed..."

* Update NetworkPolicy docs for v1

* StorageOS Volume plugin

* Update GPU docs

* docs: HPA autoscaling/v2alpha1 status conditions

This commit documents the new status conditions feature for HPA
autoscaling/v2alpha1.  It demonstrates how to get the status conditions
using `kubectl describe`, and how to interpret them.

* Update description about NodeRestriction

kubelet node can alse create mirror pods for their own static pods.

* adding storage as a supported resource to node allocatable

Signed-off-by: Vishnu kannan <vishnuk@google.com>

* Add documentation for podpreset opt-out annotation

This adds the annotation for having the podpreset admission controller
to skip (opt-out) manipulating the pod spec.

Also, the annotation format for what presets have acted on a pod has
been modified to add a prefix of "podpreset-". The new naming makes it such
that there is no chance of collision with the newly introduced opt-out
annotation (or future ones yet to be added).

Opt-out annotation PR:
kubernetes/kubernetes#44965

* Update PDB documentation to explain new field (#3885)

* update-docs-pdb

* Addressed erictune@'s comments

* Fix title and add a TOC to the logging concept page

* Patch #4118 for typos

* Describe setting coredns server in nameserver resolv chain

* Address comments in PR #3997.

Comment is in
https://github.com/kubernetes/kubernetes.github.io/pull/3997/files/f6eb59c67e28efc298c87b1ef49a96bc6adacd1e#diff-7a14981f3dd8eb203f897ce6c11d9828

* Update task for DaemonSet history and rollback (#4098)

* Update task for DaemonSet history and rollback

Also remove mentions of templateGeneration field because it's deprecated

* Address comments

* removed lt and gt as operators (#4152)

* removed lt and gt as operators

* replace lt and gt for node-affinfity

* updated based on bsalamat review

* Initial draft of upgrade guide for kubeadm clusters.

In-place upgrades are supported between 1.6 and 1.7 releases. Rollback
instructions to come in a separate commit.

Fixes https://github.com/kubernetes/kubeadm/issues/278

* Add local volume documentation (#4050)

* Add local volume documentation

* Add PV local volume example

* Patch PR #3999

* Add documentation for Stackdriver event exporter

* Add documentation about controller metrics

* Federation: Add task for setting up placement policies (#4075)

* Add task for setting up placement policies

* Update version of management sidecar in policy engine deployment

* Address @nikhiljindal's comments

- Lower case filenames
- Comments in policy
- Typo fixes
- Removed type LoadBalancer from OPA Service

* Add example that sets cluster selector

Per-@nikhiljindal's suggestion

* Fix wording and templating per @chenopis

* PodDisruptionBudget documentation Improvements (#4140)

* Changes from #3885

Title: Update PDB documentation to explain new field
Author: foxish

* Added Placeholder Disruptions Concept Guide

New file: docs/concepts/workloads/pods/disruptions.md
Intented contents: concept for Pod Disruption Budget,
 cross reference to Eviction and Preemption docs.
Linked from: concepts > workloads > pods

* Added placeholder Configuring PDB Task

New file: docs/tasks/run-application/configure-pdb.md
Intented contents: task for writing a Pod Disruption Budget.
Linked from: tasks > configuring-applications > configure pdb.

* Add refs to the "drain a node" task.

* Refactor PDB docs.

Move the "Requesting an eviction" section from:
docs/tasks/administer-cluster/configure-pod-disruption-budget.md
-- which is going away -- to:
docs/tasks/administer-cluster/safely-drain-node.md

The move is verbatim, except for an introductory sentence.

Also added assignees.

* Refactor of PDB docs

Moved the section:
Specifying a PodDisruptionBudget
from:
docs/tasks/administer-cluster/configure-pod-disruption-budget.md
to:
docs/tasks/run-application/configure-pdb.md
because that former file is going away.
Move is verbatim.

* Explain how Eviction tools should handle failures

* Refactor PDB docs

Move text from:
docs/tasks/administer-cluster/configure-pod-disruption-budget.md
to:
docs/concepts/workloads/pods/disruptions.md

Delete the now empty:
docs/tasks/administer-cluster/configure-pod-disruption-budget.md

Added a redirects_from section to the new doc, containing the path
of the now-deleted doc, plus all the redirects from the deleted
doc.

* Expand PDB Concept guide

Building on a little content from the old task,
greatly expanded the Disruptions concept
guide, including an abstract example.

* Update creating a pdb Task.

* Address review comments.

* Fixed for all cody-clark's review comments

* Address review comments from mml

* Address review comments from maisem

* Fix missing backtick

* Api and Kubectl reference docs updates for 1.7 (#4193)

* Fix includes groups

* Generated kubectl docs for 1.7

* Generated references docs for 1.7 api

* Document node authorization mode

* API Aggregator (#4173)

* API Aggregator

* Additional bullet points

* incorporated feedback for apiserver-aggregation.md

* split setup-api-aggregator.md into two docs and address feedback

* fix link

* addressed docs feedback

* incorporate feedback

* integrate feedback

* Add documentation for DNS stub domains (#4063)

* Add documentation for DNS stub domains

* add additional prereq

* fix image path

* review feedback

* minor grammar and style nits

* documentation for using hostAliases to manage hosts file (#4080)

* documentation for using hostAliases to manage hosts file

* add to table of contents

* review comments

* update the right command to see hosts file

* reformat doc based on suggestion and change some wording

* Fix typo for #4080

* Patch PR #4063

* Fix wording in placement policy task introduction

* Add update to statefulset concepts and basic tutorial (#4174)

* Add update to statefulset concpets and basic tutorial

* Address tech comments.

* Update ESIPP docs for new added API fields

* Custom resource docs

* update audit document with advanced audit features added in 1.7

* kubeadm v1.7 documentation updates (#4018)

* v1.7 updates for kubeadm

* Address review comments

* Address Luke's comments

* Encrypting secrets at rest and cluster security guide

* Edits for Custom DNS Documentation (#4207)

* reorganize custom dns doc

* format fixes

* Update version numbers to 1.7

* Patch PR #4140 (#4215)

* Patch PR #4140

* fix link and typos

* Update PR template

* Update TLS bootstrapping with 1.7 features

This includes documenting the new CSR approver built into the
controller manager and the kubelet alpha features for certificate
rotation.

Since the CSR approver changed over the 1.7 release cycle we need
to call out the migration steps for those using the alpha feature.
This document as a whole could probably use some updates, but the
main focus of this PR is just to get these features minimally
documented before the release.

* Federated ClusterSelector

formatting updates from review

* complete PR #4181 (#4223)

* complete PR #4181

* fix security link

* Extensible admission controller (#4092)

* extensible-admission-controllers

* Update extensible-admission-controllers.md

* more on initializers

* fixes

* Expand external admission webhooks documentation

* wrap at 80 chars

* more

* add reference

* Use correct apigroup for network policy

* Docs changes to PR #4092 (#4224)

* Docs changes to PR #4092

* address feedback

* add doc for --as-group in cli

Add doc for this pr:
https://github.com/kubernetes/kubernetes/pull/43696
2017-06-29 22:39:40 -07:00
Ahmet Alp Balkan cbdb17706f cassandra.md: Fix Liquid syntax warning
Fixes #4198

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-29 15:58:48 -07:00
Patrick Christopher 46be5c6bc7 add small blurb about reclaim policies and SCs 2017-06-28 23:27:17 -07:00
Christoph Blecker 2e192598a0 Update links to proper repos 2017-06-28 22:08:36 -07:00
Yohann B 206a264c0e Add no_proxy settings to use minikube and kubectl (#4108)
* Add no_proxy settings one might need to use minikube and kubectl behind a proxy.

* add extra line before shell block for formatting

* include suggestions from chenopis
2017-06-28 11:51:25 -07:00
Bastian Klein 00df48fb9c Fix installing autocompletion documentation (#4189)
* Fix installing autocompletion documentation

The written solution did not work for me with the error `-bash: __git_ps1: command not found`. Since the auto-completion is already installed you can simply add the Kubernetes autocompletion to it.

* Remove sourcing bash-completion in .bash_profile
2017-06-28 11:49:52 -07:00
Andrew Chen ad23d013d7 Merge pull request #4219 from chaintng/master
Set storageClassName to match earlier manual disk creation
2017-06-28 11:49:11 -07:00
Chainarong Tangsurakit c6d4695cb8 Set storageClassName to match earlier manual disk creation
https://github.com/kubernetes/kubernetes.github.io/issues/4218
2017-06-28 14:02:28 +07:00
jianglingxia 68b4abc1f4 outdate link (#4199)
* outdate link

* resubmit the outdate link
2017-06-27 21:08:02 -07:00
Zachary Corleissen 37311bc0d8 Removed -fs from troubleshooting command (#4177)
* Removed -fs from troubleshooting command

* Add YAML file for configmaps in concepts

* Add new topic for configmaps in concepts

* Add configuration entry for understanding configmaps

* Move Understanding Configmaps to a separate concept file

* Revert "Move Understanding Configmaps to a separate concept file"

This reverts commit 71bd80d7bccd090d0aa1829ae9e4db6cc4dc590c.

* Revert "Add configuration entry for understanding configmaps"

This reverts commit c27fc13f56453dff6e6b8b8f1f9641cbad8ace53.

* Revert "Add new topic for configmaps in concepts"

This reverts commit 3d535f59170a4b5cb290975871f167217484e7ab.

* Revert "Add YAML file for configmaps in concepts"

This reverts commit 8ecabd6d106647631819441be8bf7e834f0dbb54.
2017-06-27 16:41:01 -07:00
Steve Perry 2727003775 Update definitions for Task and Tutorial. (#4206)
* Update definitions for Task and Tutorial.

* Fix broken links.

* Still fixing broken links.
2017-06-27 15:26:50 -07:00
Andrew Chen 3d5e8086b6 Merge pull request #4201 from kubernetes/ryanmcginnis-patch-1-1
Prevents sweetAlert in copyCode function from being cut off on page
2017-06-27 09:42:45 -07:00
Ryan McGinnis f0c445980d Update script.js
In copyCode function, removes target.value from if (succeed) sweetAlert function. 

Sometimes target.value is too long, which causes the sweetAlert box to be cut off from the page. The confirmation button also gets cut off, which means that the user can't close the box, which means they need to refresh the page to continue.

Instead, the alert tells the user which file was copied.
2017-06-27 08:58:02 -07:00
Dan Kohn 67e4f54aaa Replace remaining kargo usages to kubespray 2017-06-27 08:49:03 -07:00
Andrew Chen 56ae8bf3f7 Merge pull request #4197 from kubernetes/chenopis-task-template-patch
update example templates
2017-06-26 16:33:52 -07:00
Andrew Chen 4d3a7a315d update example templates 2017-06-26 16:12:21 -07:00
Andrew Chen d8a8d8d718 Merge pull request #4195 from ahmetb/meanstack-fix
redirect fix for meanstack article
2017-06-26 15:51:48 -07:00
Ahmet Alp Balkan d94196e14f redirect fix for meanstack article
Linking to the correct article.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-26 15:41:17 -07:00
Ahmet Alp Balkan 9ec9c73466 /docs/samples revamp: move examples to /tutorials
Addresses the work described at #4134.

- Remove /docs/samples page: This page mostly had links to examples on
  kubernetes/kubernetes (examples dir) which is now at kubernetes/examples
  repository. It was linking to README.md files for tutorials. Now removing
  this page as we are moving tutorials from kubernetes/examples to here:

  - Create redirects from /docs/samples/ to /docs/tutorials/ (both JS and
    redirect_from).
  - Deprecate "MEAN Stack" tutorial: This tutorial overlaps quite a bit with
    existing "maintained" examples and has been out-of-date for a while.
    Creating an external redirect to its original and more up-to-date location:
    https://medium.com/google-cloud/running-a-mean-stack-on-google-cloud-platform-with-app-engine-and-mongolab-4bbd2040ea75

- Import README.md files of maintained examples (guestbook, wordpress+mysql and
  cassandra) to this repository and serve them under /docs/tutorial.

- Update /docs/tutorials ToC:
  - Link to imported tutorials.
  - Fix missing articles on sidebar (_data/tutorials.yml) and make the tutorials
    listed on tutorials/index.md available on the sidebar (closes #4007).

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-26 11:22:35 -07:00
Ahmet Alp Balkan d33222a6c3 Copy-to-clipboard fix (#4190)
* Copy-to-clipboard fix

target.setSelectionRange(0, target.value.length); does not always seem to be
working. It doesn't work once the text is unselected. Using textarea.select()
function: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select

Fixes #3965.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>

* Empty commit

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-26 11:12:14 -07:00
Jamie Hannaford ddb6636f2c Document kubeadm KUBELET_DNS_ARGS issue 2017-06-26 09:00:20 -07:00
Denis Gladkikh 8716e152b3 CronJobs aren't enabled in 1.6 by default 2017-06-26 08:56:03 -07:00
hanks 386a2a0982 Fix typo
trivial update `kublet` to `kubelet`
2017-06-26 08:46:54 -07:00
Michail Kargakis 8c414800a0 Document pod-template-hash label
Signed-off-by: Michail Kargakis <mkargaki@redhat.com>
2017-06-25 20:42:50 -07:00
Andrew Chen 25b8f9a799 Merge pull request #4187 from Starefossen/patch-1
Rename last remaining reference of kargo to kubespray
2017-06-25 14:35:09 -07:00
Hans Kristian Flaatten 9794339d2a Rename last remaining reference of kargo to kubespray 2017-06-25 22:46:02 +02:00
Matej Baćo 9347a503c8 fixed loopback plugin link 2017-06-25 12:23:10 -07:00
Jamie Hannaford 686b7aef38 Document how to use custom certs with kubeadm (#4113) 2017-06-25 11:44:44 -07:00
Jamie Hannaford fac7653113 Document product_uuid and MAC reqs 2017-06-25 11:43:49 -07:00
Vincent 80c90ba8fb fixed #3968 (#4105)
* fixed #3968

* advise from @chenopis
2017-06-23 14:03:07 -07:00
Daniel Nardo 79eca9b815 Add documentation for ip-masq-agent. 2017-06-23 01:29:35 -07:00
Ihor Dvoretskyi 24820772e5 Update installation instructions with snap (#4171)
* Update installation instructions with snap

Update installation instructions with snap - the package manager for Ubuntu and other Linux distributions.

* fix md formatting

* fix shell formating

* fix shell block

* fix shell for Check the kubectl configuration

* switch to full width shell
2017-06-23 01:22:08 -07:00
xinsnake dc4819e3ff Update scratch.md: include download binary tarball (#3933)
* Update scratch.md: include download binary tarball

As `kubernetes-server-linux-amd64.tar.gz` is not provided with the tarball now, an extra step is required.

* Updated scratch.md to follow review comments
2017-06-23 01:03:52 -07:00
Selvi K 0b5ff11185 Typo in authentication.md 2017-06-23 00:49:31 -07:00
jlewi e74ec1f2a9 Fix broken links to client samples. (#4139)
* Remove code snippets since they will just get out of sync with the samples.
2017-06-22 17:57:17 -07:00
cody-clark e32c0aea6e Edits for clarity, concision, style, formatting, (#4160)
and according to the getting started project.
2017-06-22 15:23:27 -07:00
Spencer Smith 60054a2f04 rename kargo to kubespray in getting started docs (#4119)
* rename kargo to kubespray in getting started docs

* remove old kargo guide, update link to kubespray doc

* update setup.yml with new kubespray pointer
2017-06-22 14:56:19 -07:00
Dragons 0dbeb6d1bf whatisk8s - Chinese version (#3243)
* whatisk8s

* kubernetes-basics tutorials

* Update whatisk8s.md

* Update what-is-kubernetes.md
2017-06-22 14:39:41 -07:00
Peter d092214f84 split rows and nest to stack columns (#4129)
* split rows and nest to stack columns

* fix order
2017-06-22 14:24:48 -07:00
Murad Korejo bbffb34c6c Updates to docs/admin/kubelet-tls-bootstrapping (#3617)
* update TLS bootstrapping doc

* formatting edits on top of prev edits

* revert to lowercase b in title
2017-06-22 14:22:20 -07:00
Nail Islamov 6283e51faa Replace "Pod Injection Policy" with "Pod Preset" (#3667)
* Replace "Pod Injection Policy" with "Pod Preset"

There are some leftovers of the old term, fixing it.

* Extra typos fix, line breaks
2017-06-22 14:21:14 -07:00
Remi Rampin 1984b52e7a Change example PersistentVolumeClaim
If a default storage class exists, it is going to create a new persistent volume to bind to that claim instead of using our example one, which will make the tutorial fail. In particular, this happens on minikube.

Specifying an empty storageClassName will prevent the storage class to be used, and force our volume to be selected.
2017-06-22 14:20:27 -07:00
Charlie R.C 4edbe7449d add PodNodeSelector to admission-controllers (#3691) 2017-06-22 14:19:28 -07:00
Jonas Kongslund f2f0842e1f Get pods using a label selector instead of hardcoded indexes. Use JsonPath instead of go-template. 2017-06-22 14:14:47 -07:00
Weihua Meng 4d89c1421b correct_init_container_state (#3972) 2017-06-22 14:14:12 -07:00
Radhika Puthiyetath a5a898347a kubernetes.github.io/docs/tasks/administer-cluster: operating etcd clusters 2017-06-22 14:07:53 -07:00
Jeremy Visser 14a39dfcb5 Remove --no-check-certificate flag in bare_metal_offline.md
Using `--no-check-certificate` is, frankly, dangerous and we shouldn't be recommending that users use it. Not without a good reason, anyway.

If a user's system is sufficiently broken that they are getting certificate validation problems during this step, I fail to see how it is our problem to tell the user to overcome that. Let's focus on installing Kubernetes here.
2017-06-22 14:02:43 -07:00
Charlie R.C 4ac5baaf51 Document the use of verb if set resourceNames
ref to https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/rbac/helpers.go#L225
2017-06-22 13:29:30 -07:00
Ahmet Alp Balkan e883a27f3b networkpolicies.md --> network-policies.md for SEO
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-22 10:47:34 -07:00
cody-clark 71ed960d75 Added link (#4161) 2017-06-22 10:37:05 -07:00
Jeremy Visser a877e63b8b Use "sudo -i" instead of "sudo su -"
`sudo su -` is redundant, as you are asking the system to elevate you after you have already elevated.

If what you actually want is to get a login environment, the `sudo -i` flag is designed exactly for that.
2017-06-22 10:27:59 -07:00
Ahmet Alp Balkan 01b9cf25f3 Create a section for kubeadm topics
This helps group kubeadm-related Setup topics together.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-22 10:26:24 -07:00
Steve Perry 9da5890274 Consolidate SecurityContext topics. (#4005) 2017-06-21 18:12:44 -07:00
Mitsuhiro Tanino 0c6b381b7c Typo fix in "Adding ConfigMap data to a Volume" section (#3966) 2017-06-21 16:56:38 -07:00
Federico Gimenez 0b5d13704a bump openstack cli tools versions to working values 2017-06-20 16:31:22 -07:00
Ricky Pai cdf729e223 fix header size for sub-sections under Services 2017-06-20 16:14:09 -07:00
Andrew Chen d2cecced7e Merge pull request #4148 from kubernetes/chenopis-4036-patch
Finish #4036
2017-06-20 16:12:57 -07:00
Andrew Chen f81a6fc682 Finish #4036 2017-06-20 16:07:42 -07:00
Eric Mountain @ Amadeus e53bdeb5d0 Be more specific about cpu-shares passed to Docker (#4016)
Docker documentation (https://docs.docker.com/engine/reference/run/) reads:
  
"To modify the proportion from the default of 1024, use the -c or --cpu-shares flag to set the weighting to 2 or higher. If 0 is set, the system will ignore the value and use the default of 1024."

So the Kubernetes documentation gives the impression that if requests.cpu is zero, Docker would end up applying a value of 1024, which isn't the case.

This change makes the explanation more precise, hopefully without making it much more difficult to read.
2017-06-20 16:01:16 -07:00
Sahdev P. Zala 82449c5dcf Clarify the required uniqueness of Label Key
fixes #16812

https://github.com/kubernetes/kubernetes/issues/16812

The issue was opened year back against Kubernetes, not moving it to k8s.
github.io issues but I will close the issue once these changes merge.
2017-06-20 15:58:26 -07:00
Tommy Falgout fb2ba2d962 Add --show-all to documentation
`kubectl get pods -l jobgroup=jobexample --show-all -o name`
will not show the completed jobs.  This caught me when running through the steps myself.
2017-06-20 15:56:50 -07:00
Ross Guarino 2d159b86f6 docs(service): remove invalid , from example
Remove invalid `,` from the ExternalIP example YAML.
2017-06-20 15:49:20 -07:00
Jorge Bianquetti bed2527af1 Add "remove" example for kubectl patch (#4042) 2017-06-20 15:47:42 -07:00
Tomas Pizarro 63687c5ace Fix wrong link to create a ConfigMap 2017-06-20 15:30:03 -07:00
Jonathan MacMillan daca587c77 Fix a typo in the High Availability docs (#4048) 2017-06-20 15:19:04 -07:00
Mark Petrovic 8e06188af4 Remove ports from ExternalName Service example
The text of this document says Services of type ExternalName do not define ports.  This PR removes the port definition from the example.
2017-06-20 15:08:41 -07:00
Pooya Sanooei f58cc22a20 remove extra that 2017-06-20 14:27:10 -07:00
Eren Güven 582f6f5bd3 update kops installation instructions
* change version v1.4.1 -> 1.6.1
* add note about Homebrew
2017-06-20 14:26:35 -07:00
Sameer Naik 7047cdefbf fixes typos and corrects links in the minikube guide (#4051) 2017-06-20 14:14:37 -07:00
Elliot Anderson 6ce8d8e475 Use native patch functionality instead of JQ 2017-06-20 13:48:44 -07:00
xilabao f527759087 add the introduce of using wildcard '*' in nonResourceURL 2017-06-20 13:17:05 -07:00
Janet Kuo fcbef29da7 Rephrase doc about Deployment .spec.rollbackTo field 2017-06-20 11:09:34 -07:00
Ahmet Alp Balkan 3c84f8180a create-cluster-kubeadm: add ToC using task template
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-20 11:03:08 -07:00
Ahmet Alp Balkan 553e091742 install-kubeadm: fix What's Next link text
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-20 11:01:39 -07:00
Jorge Bianquetti eb3f374d37 info about cron jobs updated (#4110) 2017-06-20 10:33:22 -07:00
Charlie R.C a9863612bc fix example in configure-pod-configmap.md 2017-06-20 10:26:55 -07:00
Steve Perry 57a3ad4544 Remove extraneous files from autogeneration of ref pages. (#4044)
* Remove extraneous files from autogeneration of ref pages.

* Revert "Remove extraneous files from autogeneration of ref pages."

This reverts commit 39ec47ee44354c96070f89064374eb729d6da5ec.
2017-06-20 09:17:07 -07:00
Jamie Hannaford 0ef468e48b Add notes for file/flag precedence 2017-06-19 16:53:02 -07:00
ianchakeres b4b64e9dc2 Removed "networked" from PersistentVolume (PV) definition. (#4121) 2017-06-19 16:31:08 -07:00
Andrew Chen 5bf06f9e4e Merge pull request #4130 from jerairrest/patch-1
Fix documentation syntax err in Persistent Volume example
2017-06-19 16:23:56 -07:00
Jeremy Ayerst a988182a96 Fix syntax err in example
Missing " made example unusable
2017-06-18 09:44:13 -05:00
Ahmet Alp Balkan ce4fe04bb3 Merge pull request #4122 from xLegoz/patch-1
Fix documentation typo: 'bash' -> 'brew'
2017-06-16 22:06:52 -07:00
Joey Pereira 951a3211a3 Fix typo 'bash' -> 'brew' 2017-06-16 18:53:30 -04:00
Adnan Abdulhussein 1088bca024 update pod persistent volume example storage class (#3979)
* update pod persistent volume example storage class

When binding to a manually created PersistentVolume, the claim must
disable dynamic provisioning by specifying an empty storage class.

Fixes #2803

* use specific storageclass

* revert gibibytes -> gigabytes change
2017-06-13 23:55:58 -07:00
Phillip Wittrock eb71492f88 Merge pull request #4014 from irfanurrehman/patch-1
Fix typo in update-imported-docs.sh
2017-06-13 09:31:47 -07:00
Steve Perry e2a898ad41 Change Task titles to imperative: Admin. (#4033) 2017-06-08 15:13:29 -07:00
Steve Perry 6c99bbb509 Change Task titles to imperative: Daemons, GPUs. (#4032) 2017-06-08 14:48:46 -07:00
Steve Perry 54eb7d2449 Change Task titles to imperative: Federation. (#4031) 2017-06-08 14:42:56 -07:00
Steve Perry 2167367a6a Change Task titles to imperative: TLS. (#4030) 2017-06-08 14:34:34 -07:00
Steve Perry fbf7782ebf Change Task titles to imperative: Access Extend. (#4029) 2017-06-08 13:47:48 -07:00
Steve Perry 423884e8b7 Change Task titles to imperative: Monitor. (#4028) 2017-06-08 13:41:57 -07:00
Steve Perry c59b2b6935 Change Task titles to imperative: Access Apps. (#4027) 2017-06-08 13:29:52 -07:00
Steve Perry 63c282927c Change Task title to imperative: Run Job. (#4026) 2017-06-08 13:21:07 -07:00
Steve Perry 10cd61bc62 Change Task titles to imperative: Run Apps. (#4025) 2017-06-08 13:15:43 -07:00
Steve Perry 962989b443 Change Task titles to imperative: Inject. (#4024) 2017-06-08 12:12:52 -07:00
Steve Perry e1e00561f3 Change Task titles to imperative: Tools. (#4023) 2017-06-08 11:58:27 -07:00
Steve Perry adf00a04a2 Change Task titles to imperative. (#4022) 2017-06-08 11:48:28 -07:00
irfanurrehman 7d06b71131 Fix typo in update-imported-docs.sh 2017-06-08 11:26:21 +05:30
Mitsuhiro Tanino 67ece8bc15 Add internal provisioner support matrix (#4009)
* Add internal provisioner support matrix

* Change links and add example of NFS plugin

* Remove usages related to hostpath
2017-06-07 14:12:59 -07:00
Alejandro Escobar ffc4769285 fixed the line giving the template for creating configmap, should include the word configmap as part of the creation process. 2017-06-07 10:22:26 -07:00
Karthik Gaekwad 1808475968 Fixes issue #3939
Adds comment for per issue #3939
2017-06-07 10:20:31 -07:00
Harry Zhang ed00765f3c Add CRI runtime support 2017-06-07 10:05:06 -07:00
Michal Cwienczek 9305c4a9aa Updaated install-kubeadm.md, removed redundant kubectl installation (#4006) 2017-06-06 15:53:20 -07:00
Onuralp Taner 783de986d9 Add Chocolatey Package Manager for Windows (#4000)
* Add Chocolatey Package Manager for Windows

* Small grammar changes
2017-06-06 13:17:33 -07:00
Ahmet Alp Balkan bec1399cc1 Make issue title automatically a link
e.g. "Issue with k8s.io/docs/getting-started-guides/kubeadm/" when people
open issues on the repo. This way we can just select the text, right-click
and say Go to Link.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-06-06 09:21:38 -07:00
Andrew Chen 3824fdf5c7 Merge pull request #3737 from cblecker/update-mac-bash
Update directions for macOS bash completion
2017-06-06 09:02:44 -07:00
Christoph Blecker 1bb02c055e Update directions for macOS bash completion 2017-06-05 21:52:25 -07:00
tompizmor 9f2ecee260 Add TCP socket health check example (#3977)
* Add TCP socket health check example

* Add test case for pod-with-tcp-socket-healthcheck
2017-06-05 13:50:29 -07:00
kshafiee 8d20ed8580 Update networking.md (#3950)
* Update networking.md

Added CNI-Genie as one of the many options

* Update networking.md

Addressed!

* Update networking.md
2017-06-05 11:04:45 -07:00
Andrew Chen b5c0e0603e Merge pull request #3985 from CaoShuFeng/webhook
[authorization] Fix invalid url for webhook
2017-06-05 10:48:44 -07:00
Cao Shufeng 8dd901ee98 [authorization] fix invalid href for webhook 2017-06-05 11:42:13 +08:00
Andrew Chen bec79028f5 Merge pull request #3980 from kubernetes/ryanmcginnis-patch-1
Remove self-referential link
2017-06-02 15:06:47 -07:00
Ryan McGinnis 8117b56cc6 Remove self-referential link
The second link in the "What's next" section redirects the reader to this doc. This PR removes this link.
2017-06-02 15:01:05 -07:00
Mitsuhiro Tanino 1cec609586 Add fibre channel volume explanation (#3967)
* Add fibre channel volume explanation

This patch adds explanation of fibre channel volume including
usage of multiple WWNs.

Fix #33602

* Fix typos
2017-06-02 14:53:19 -07:00
Jordan Liggitt 2841f6dabe Improve RBAC doc (#3951)
* Remove spurious cluster-status role description

* Indicate controller-manager must be granted controller roles when not run with --use-service-account-credentials
2017-06-02 14:26:39 -07:00
Kevin Kirsche a6f31d4896 Clarify CNI acronym
Fixes kubernetes/kubernetes.github.io#3964
2017-06-02 14:14:21 -07:00
Kyle Gordon 71c7f9efc4 Fix 404 to kubectl install link 2017-06-02 14:03:10 -07:00
Andrew Chen 1946b06070 Merge pull request #3969 from techtonik/patch-1
install-kubectl.md: Fix Windows texts, link to latest macOS binaries
2017-06-02 13:16:43 -07:00
anatoly techtonik 12ad70a8ca install-kubectl.md: Fix Windows texts, link to latest macOS binaries
Fixes https://github.com/kubernetes/kubernetes.github.io/pull/3859#issuecomment-305710498
2017-06-02 10:32:19 +03:00
Steve Perry 57385e8d86 Create Installing kubeadm topic. (#3709)
* Create Installing kubeadm topic.

* Put kubeadm installation under Setup.

* Move topics to setup directory.

* Move topics to setup directory.

* Add redirects.
2017-06-01 18:03:47 -07:00
Kenny Lee Sin Cheong d41dbfcf14 Fix example in the "Adding ConfigMap data to a Volume" section
"special.key" does not exist in the given ConfigMap example. It should
be "special.level" instead.
2017-06-01 16:18:38 -07:00
Andrew Martin 35f6ce8b6f Update ExternalName example
As per design proposal: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/service-external-name.md

The existing example is not validated by Kubernetes 1.6.3
2017-06-01 15:12:07 -07:00
Andrew Chen d55efd0da0 Merge pull request #3963 from kubernetes/chenopis-3325-patch
Completes PR #3325
2017-06-01 15:09:50 -07:00
Andrew Chen a9b880d5f4 Completes PR #3325 2017-06-01 15:02:14 -07:00
Ryan McGinnis e67aabccae Changes "Mac OS" to macOS, "bootcamp" to tutorial (#3955)
* Changes "Mac OS" to macOS, "bootcamp" to tutorial

* fix typo
2017-06-01 14:51:05 -07:00
Phillip Wittrock b481798d43 Remove apply/edit warning now that edit is fixed 2017-06-01 14:40:41 -07:00
Ryan McGinnis 9e282d2d9f Two minor fixes 2017-06-01 14:38:13 -07:00
Andrew Chen 0c535464c8 Cleanup robots.txt 2017-06-01 14:37:00 -07:00
Ryan McGinnis 80ea9193ae Readability: Split first paragraph into two (#3957) 2017-06-01 14:31:41 -07:00
Anirudh Ramanathan 2f82ff8a96 Update golang version to 1.8.1 2017-06-01 13:51:12 -07:00
Andrew Chen 8ad0302646 Implement PR #3859 with tabs 2017-06-01 10:08:51 -07:00
Steve Perry ab310e21cd Templates (#3949)
* Update page-templates.md

* Update page-templates.md

* Update page-templates.md

* Update page-templates.md

* Update page-templates.md

* Update page-templates.md

* Update page-templates.md

* Update page-templates.md
2017-05-31 15:53:04 -07:00
Andrew Chen 8604566e8b Merge pull request #3947 from kKronstainBrown/patch-1
Revised IBM Bluemix Container Service description
2017-05-31 15:15:18 -07:00
kKronstainBrown e3ac0f1a6b Revised IBM Bluemix Container Service description 2017-05-31 14:01:47 -04:00
Thomas Graf 42f0b93b68 networking.md: Add reference to the Cilium network plugin
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2017-05-31 11:00:58 -07:00
Kenny Lee Sin Cheong 5372429718 Fix typo in cluster api docs
Fix type in https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/
2017-05-31 10:59:38 -07:00
Andrew Chen 5e0fbc3ce6 Merge pull request #3946 from irfanurrehman/kubeadm-bugfix
[Kubeadm] bugfix in the index listing
2017-05-31 10:58:26 -07:00
Irfan Ur Rehman 6892014792 [Kubeadm] bugfix in the index listing 2017-05-31 23:23:29 +05:30
Mik Vyatskov f4fd9e79ed Fix log rotation description in the logging doc (#3918)
* Fix log rotation description in the logging doc

* Review comments

* Address review comments

* Address review comments
2017-05-31 10:50:04 -07:00
Andrew Chen 5b26c42be5 Add colon to #3897 2017-05-31 10:47:02 -07:00
Charlie R.C 75303cfee4 add prompt about KUBE_REPO_PREFIX (#3597)
* add prompt about KUBE_REPO_PREFIX

* add period
2017-05-31 10:45:55 -07:00
Michail Kargakis 4471d3dbf0 Warn against managing ReplicaSets owned by Deployments
Signed-off-by: Michail Kargakis <mkargaki@redhat.com>
2017-05-31 10:37:40 -07:00
Swapnil Kulkarni 71177ff37a Update small typo in components page (#3930)
[1] page has a typo in Master Components section.
Updated the document.

[1] https://kubernetes.io/docs/concepts/overview/components/
2017-05-31 10:34:51 -07:00
jianglingxia 5483b4a126 change the service name to pod ip (#3926)
* change the service name to pod ip

* update the outdate link
2017-05-31 10:33:27 -07:00
Andrew Chen e0a852eb28 Reimplement #2756 (#3935) 2017-05-30 16:30:02 -07:00
roshandawrani c7ba600025 Fixed a minor mistake
The word "creating" seemed missing. global allocation map should have an entry for an IP address that the service gets while it's created, right?
2017-05-30 14:34:44 -07:00
Slava Semushin 1bed34e5c9 docs/concepts/policy/pod-security-policy.md: add projected to list of allowed types. 2017-05-30 14:20:39 -07:00
Guangya Liu 8c881a35cd Init container exists beta in 1.6. 2017-05-30 12:03:52 -07:00
wangxunbo ee92eafd82 fix typo (#3895)
I Created a  deployment yaml file tomcatdp.yaml, and did not set the .spec.strategy,then run 
kubectl create -f tomcatdp.yaml,
and then run 
kubectl get deployment tomcat-deployment -o yaml,
the tomcat-deployment is the name of the deployment,found that the MaxUnavailable and MaxSurge default value is 25%
2017-05-30 11:47:18 -07:00
Tuna d905c3838f add unit of --ttl duration (#3915)
* add unit of --ttl duration

fix #3890

* fix typo
2017-05-30 11:41:16 -07:00
Karthik Gaekwad 2660141c20 Fixes broken links 2017-05-30 11:40:29 -07:00
Steve Perry 46e745a81a Prototype of custom description meta tags. (#3928)
* Prototype of custom description meta tags.

* Put desc on one line.
2017-05-27 14:38:24 -07:00
Steve Perry 37976e6c74 Site URL for canonical URLs. (#3927) 2017-05-27 13:05:17 -07:00
Michail Kargakis 8a27d982e6 Warn about implications on selector updates
Signed-off-by: Michail Kargakis <mkargaki@redhat.com>
2017-05-26 18:31:12 -07:00
Andrew Chen 328b62a34a grammar patch to #3922 (#3923)
* grammar patch to #3922

* change copy to make broader
2017-05-26 17:56:12 -07:00
Tuna 669f11db9c add calico to the table of solution
fix issue #3892
2017-05-26 17:16:23 -07:00
roshandawrani 02f1800bbd Minor grammatical change 2017-05-26 17:14:57 -07:00
Andrew Chen 4ca2f4e738 Add deprecation tag (#3922)
* Add deprecation tag

* match docsContent styling in dialog
2017-05-26 16:59:29 -07:00
Kevin J. Qiu fd4ce1860a Fix sentence 2017-05-26 10:44:37 -07:00
Luke Stutters 6f401ab0d2 Minor grammatical correction
If the Volume is created from the ConfigMap, the files in the Volume are representatives of the Config map, not the other way round.
2017-05-26 10:43:33 -07:00
Sahdev P. Zala 2fc7ec0b6d Remove beta as K8s support on Bluemix Container Service is live
The Kubernetes support in Bluemix Container Service is now live and so we should
remove reference of beta.
2017-05-26 10:41:50 -07:00
Xiaoyu Zhang 295e262775 Fix some output
Fix some output
2017-05-26 10:41:06 -07:00
chenhuan12 1406756b8a replace REASON with STATUS
replace REASON with STATUS
2017-05-26 10:40:07 -07:00
chenhuan12 940335cd67 column IP is missed
column IP is missed
2017-05-26 10:39:40 -07:00
chenhuan12 61c39cf9df replace kubectl.sh with kubectl
replace kubectl.sh with kubectl
2017-05-26 10:39:24 -07:00
chenhuan12 8b745c2e9e replace KUBECTL with kubectl
replace KUBECTL with kubectl
2017-05-26 10:34:13 -07:00
chenhuan12 7d4f3c5587 fix the command output
fix the command output
2017-05-26 10:33:50 -07:00
chenhuan12 f5d455edee fix the command output
fix the command output
2017-05-26 10:33:31 -07:00
chenhuan12 9ab964f4c7 fix the command output
fix the command output
2017-05-26 10:33:05 -07:00
roshandawrani ffaafb2276 Correcting the typo in init-container's name 2017-05-26 10:31:20 -07:00
chenhuan12 de17826af0 fix typo
fix typo
2017-05-26 10:30:40 -07:00
chenhuan12 9dc7cfbebb fix typo
fix typo
2017-05-26 10:30:08 -07:00
chenhuan12 6ab0577e3e fix typo
fix typo
2017-05-26 10:29:43 -07:00
chenhuan12 b8b60ebe05 fix typo
fix typo
2017-05-26 10:29:05 -07:00
Peter Lee 80bf5cb316 fix typo 2017-05-26 10:27:32 -07:00
Selvi K d86f9ec781 Update pod-overview.md (#3881)
Fixed some typos
2017-05-26 10:27:09 -07:00
Francesc Campoy 35e959df7b apps/v1beta1 is not valid (#3814)
* apps/v1beta1 is not valid

Replacing it with extensions/v1beta1 which actually works

* Add note for versions before 1.6.0
2017-05-25 23:56:42 -07:00
Steve Perry 71aebd79ca Get access to search console. (#3901) 2017-05-25 14:21:16 -07:00
Steve Perry 64c9d1788d Remove instructions to stage from <username>github.io. (#3893) 2017-05-24 17:06:17 -07:00
Andrew Chen 4d6a452b9f Merge pull request #3891 from kubernetes/chenopis-example-templates
Add drop-in templates
2017-05-24 14:54:08 -07:00
Andrew Chen 7091925c9f Add drop-in templates 2017-05-24 14:48:20 -07:00
Christopher M. Luciano ae5df6944d Add GPU mountpath warning
The GPU path is not permissive by default and requires a bit of
additional setup if the operator does not allow for privileged
containers.

Related kubernetes/kubernetes#46007

Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2017-05-23 22:39:56 -07:00
Henrique Truta fbcc2e9fde Add cluster resource federation page
Adds a page in Federation resources list describing
clusters.
2017-05-23 22:37:34 -07:00
Charlie R.C b545d393b6 update recommend admission control plug-ins 2017-05-23 22:28:36 -07:00
Andrew Chen 4b5780c3e3 Merge pull request #3886 from kubernetes/chenopis-3783-patch
Reimplement #3783
2017-05-23 14:30:35 -07:00
Andrew Chen 9ea89e011e Reimplement #3783 2017-05-23 14:21:56 -07:00
Andrew Chen 5d1cc3a987 Merge pull request #3884 from kubernetes/chenopis-3770-patch
Reimplement #3770
2017-05-23 14:17:29 -07:00
Andrew Chen 3c1b0df482 Reimplement #3770 2017-05-23 14:10:17 -07:00
Andrew Chen 1f9b8ea169 Merge pull request #3883 from kubernetes/chenopis-3767-patch
Reimplement #3767
2017-05-23 14:04:25 -07:00
Andrew Chen fcfc676786 Reimplement #3767 2017-05-23 13:56:57 -07:00
Andrew Chen b87cc6e2b5 Merge pull request #3882 from kubernetes/chenopis-sitemap-patch2
Remove aux sitemap
2017-05-23 13:50:07 -07:00
Andrew Chen 1cb24df4d6 Remove aux sitemap 2017-05-23 13:21:15 -07:00
Andrew Chen e99e8aa2cc Merge pull request #3874 from jimrollenhagen/carabou
Trivial typo fix
2017-05-22 15:16:48 -07:00
Jim Rollenhagen 1a1afdf162 Trivial typo fix
s/Carabou/Caribou/ in the API access docs.
2017-05-22 18:12:42 -04:00
John Shanahan 4e28d9b8af Fixed typo under the Supervisord section 2017-05-22 14:15:06 -07:00
kshafiee 729e4b6897 Update addons.md (#3857)
* Update addons.md

Added CNI-Genie as another addon, i.e., CNI alternative.

* Update addons.md

Addressed the comment!
2017-05-22 14:12:15 -07:00
Josh Curl 50f2daa8d8 Fix indentation in ConfigMap usage example (#3867)
* Fix indentation in ConfigMap usage example

* Fix other example
2017-05-22 13:41:18 -07:00
Itamar Ostricher cd5e98a2dc Fix configMapRef indentation in envFrom clause
Fixes invalid YAML in example
2017-05-22 13:39:29 -07:00
Rick Sostheim 4bacc2419c trivial markdown changes to cleanup page rendering
inserted json body pretty printed for further clarity.
2017-05-22 13:38:59 -07:00
Roman S cdd28dd7f3 Adds GiantSwarm to solutions page (#3843)
* Adds GiantSwarm to solutions page

* Minor Giant Swarm related changes
2017-05-22 13:05:05 -07:00
anatoly techtonik 4af0bcd52e Update PULL_REQUEST_TEMPLATE.md
make delimiters fit issue width,
see https://github.com/kubernetes/kubernetes.github.io/pull/3859
2017-05-22 12:40:54 -07:00
Dan Winship a58afb2a2e Revert NetworkPolicy v1 docs (#3849)
* Revert "Update configure-namespace-isolation.md (#3758)"

This reverts commit a712b13a3b.

* Revert "Add Configure Namespace Isolation task"

This reverts commit f050c4cc57.

* Revert "Update networkpolicies.md (#3755)"

This reverts commit 15ca8f0b2f.

* Revert "Update NetworkPolicy docs for v1"

This reverts commit 3a158ecf296e3009db1284d69849e7e24479245a.
2017-05-22 11:54:57 -07:00
Michail Kargakis 71ff265e47 Remove stray prompt from deployment docs
Signed-off-by: Michail Kargakis <mkargaki@redhat.com>
2017-05-22 11:23:51 -07:00
Jesse Seldess 3a8a465028 WTD: Projected volumes (#3856)
* Update projected volume task

- Rename file
- Build out steps
- Create separate yaml file for pod configuration
- Add new page to the sidenav

* Add projected volume type to volumes concept page
2017-05-22 10:57:42 -07:00
Steve Perry f58b3d11d9 Remove and redirect: user-guide/application-trouble. (#3855) 2017-05-19 13:02:31 -07:00
Steve Perry 3149946d6a Remove and redirect: getting-started-guides/docker. (#3854) 2017-05-19 12:00:35 -07:00
Steve Perry d4cbd968fd Remove and redirect: getting-started/...cloud-controller. (#3853) 2017-05-19 11:42:31 -07:00
Steve Perry 10434a0484 Remove and redirect: user-guide/application-introspection (#3848)
* Remove and redirect: user-guide/application-introspection

* Remove and redirect: user-guide/debugging-services.
2017-05-19 10:40:38 -07:00
Steve Perry a02a577082 Remove and redirect: admin/cluster-trouble. (#3839) 2017-05-18 22:29:20 -07:00
Steve Perry e2bc3491a0 Remove and redirect: api. (#3838) 2017-05-18 19:11:28 -07:00
Steve Perry 4a6cd30b2a Remove and redirect: Debugging Pods and Replication Controllers. (#3837) 2017-05-18 19:03:19 -07:00
Steve Perry 76976b2976 Remove and redirect: prereqs. (#3836) 2017-05-18 18:55:14 -07:00
Steve Perry 18ccf43021 Update link: user-guide/application-troubleshooting. (#3834) 2017-05-18 18:16:31 -07:00
Andrew Chen 6a7c312867 Update links in home, header, footer, whatisk8s (#3833)
* home page, header, footer

* docs/whatisk8s

* /docs/user-guide/compute-resources/

* /docs/concepts/overview/what-is-kubernetes.md
2017-05-18 16:50:06 -07:00
craigbox ec4bb7ecef Change header order to "Concepts, Tasks, Tutorials"
https://kubernetes.io/docs/home/ suggests:

Concepts, Tasks, and Tutorials

> The Kubernetes documentation contains a number of resources to help you understand and work with Kubernetes.
> Concepts provide a deep understanding of how Kubernetes works.
> Tasks contain step-by-step instructions for common Kubernetes tasks.
> Tutorials contain detailed walkthroughs of the Kubernetes workflow.

This is a logical order and I've rearranged the header to match.
2017-05-18 14:50:06 -07:00
Andrzej Wasylkowski 46133af83f Added a note about the need to have a cluster set-up to Kubernetes 201. 2017-05-18 14:49:20 -07:00
Stevo Slavić e1229f1230 Update link to Headless Services concept 2017-05-18 14:48:12 -07:00
Xiaoyu Zhang 9e6df026c4 Delete a meaningless link
The link direct to its own section. There is not meaningful.
2017-05-18 14:47:03 -07:00
nique905 95e12c8c07 Update pick-right-solution.md (#3821)
Adding new Local-machine Solution - IBM Spectrum Conductor for Containers
2017-05-18 14:27:44 -07:00
Andrew Chen 7e23e44038 Address Issue #3827: break out Configuring Redis using a ConfigMap tutorial (#3829)
* Address Issue #3827: break out Configuring Redis using a ConfigMap tutorial

* format tweaks
2017-05-18 13:56:29 -07:00
devin-donnelly 6e4661f264 Merge pull request #3822 from philips/no-https-create
*: don't apply or create -f from http endpoints!
2017-05-18 12:38:28 -07:00
Brandon Philips 56ffe1644c *: don't apply -f from http endpoints!
k8s.io didn't always have https. But, now we do. We should fix this
immediately.
2017-05-17 20:15:28 -07:00
Brandon Philips 3b5bdc3f00 *: don't create -f from http endpoints!
k8s.io didn't always have https. But, now we do. We should fix this
immediatly.
2017-05-17 20:14:09 -07:00
Dan Winship 411ecca94d Clarify NetworkPolicy's "destination" podSelector a bit 2017-05-17 14:38:52 -07:00
Ahmet Alp Balkan 8b11f9ac40 secret.md: add base64 risk (#3791)
* secret.md: add base64 risk

Solves #3681.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>

* Update secret.md
2017-05-17 13:34:29 -07:00
Andrzej Wasylkowski 7e128d31cf Fixed Kubernetes 101 documentation
to mention that it is necessary to have the cluster setup first.
2017-05-17 13:29:02 -07:00
foxish 7669c9edac Long term fix for travis 2017-05-17 12:52:04 -07:00
Jordan Liggitt 8d597e8e23 Clarify when RBAC reconciliation is active 2017-05-17 11:41:58 -07:00
Jodie Putrino 145f4e64c7 Write the Docs: add doc for using configmap data in pods (#3780)
* new doc - using configmaps in pods

* fix style violation - remove command prompt

* Update configure-pod-configmap.md

Fixed the endcapture tag
2017-05-16 10:00:16 -07:00
Andrew Chen 72513483fa Add confirmation file 2017-05-15 22:08:33 -07:00
Kale Blankenship 79e0e594e6 Remove repeated words from configmap.md 2017-05-15 22:07:07 -07:00
Jesse Kinkead 16b331ae20 Remove beta warning about Jobs. 2017-05-15 22:06:30 -07:00
Andrew Chen cd3b5b30c2 Merge pull request #3808 from kubernetes/chenoips-sitemap-patch
Alt sitemap.xml
2017-05-15 21:56:56 -07:00
Andrew Chen 63ef9ae461 Alt sitemap.xml 2017-05-15 21:48:15 -07:00
Steve Perry 400bb5c8bb Move to Tasks: Core DNS Federation. (#3807) 2017-05-15 20:31:20 -07:00
Steve Perry f7c4466b22 Move to Tasks: Cluster Federation. (#3806) 2017-05-15 19:43:59 -07:00
Steve Perry 96831259aa Reorder Concepts TOC. (#3805) 2017-05-15 19:32:05 -07:00
Steve Perry bb57c9ad0c Move to Architecture section: Nodes. (#3804) 2017-05-15 19:22:06 -07:00
Ryan McGinnis 2c1f5b74f2 WtD: Picking the Right Solution, edit (#3781)
* WtD: Picking the Right Solution, edit

Fixes content of overview sitting too close to next section's heading.

* Update pick-right-solution.md

* Update pick-right-solution.md
2017-05-15 17:30:14 -07:00
Andrew Chen f27cc711cf Tweak formatting for PR #3763 2017-05-15 17:16:20 -07:00
Jared f940b709d9 access-clusters docs revamp (#3779)
* access-clusters docs revamp

Fix the accessing clusters docs, bring them into the right templates
and put them in the right parts of the site.

* Update proxies.md

* Update concepts.yml

* Update tasks.yml
2017-05-15 17:15:20 -07:00
Stephenie Swope 6baa409961 WriteTheDocs Update to the page (#3778)
* WriteTheDocs Update to the page 

Moved some detailed content from /docs/admin/accessing-the-api/ to this page. 
Moved ABAC mode info (with no changes) to https://kubernetes.io/docs/admin/authorization/abac/
Moved Webhook mode info (with no changes) to https://kubernetes.io/docs/admin/authorization/webhook/
Reorganized the page and tweaked the conceptual information.
Updated to match the page template here: https://kubernetes.io/docs/home/contribute/page-templates/

* Removed TOC

Removed TOC

* Update index.md

Fixed MD to add spaces between ## and the text
2017-05-15 17:13:33 -07:00
isa-bel f5b1203f2b Write the Docs - Add task template to romana-network-policy (#3763)
* AddAdd task template for romana-network-policy

* Add whatsnext section
2017-05-15 17:04:12 -07:00
Andrew Chen e2a63e75c8 Tweak formatting for PR #3775 2017-05-15 16:58:25 -07:00
paulbattagliag 0acc7f3996 Update ingress.md 2017-05-15 16:56:17 -07:00
Isabel JC 0b26becd2b Add task template for weave-network-policy 2017-05-15 16:48:57 -07:00
Wendy Shaffer 40b2e12eba Update install-kubectl.md (#3760)
* Update install-kubectl.md

Write the Docs:
Added Task template to the document.
Edited for clarity.

* Update install-kubectl.md

Write the Docs. Responded to review feedback: https://github.com/kubernetes/kubernetes.github.io/pull/3760#pullrequestreview-38008755

* Update install-kubectl.md

Write the Docs. Seeing if this makes the bulleted list render correctly.

* Update install-kubectl.md

Write the Docs. Markdown really doesn't seem to like that bulleted list there, so we'll just do it in sentence flow.
2017-05-15 16:44:55 -07:00
Stephenie Swope a882281a10 Update Authorization high-level overview
Stripped out details from the Authorization overview. Details to be updated and added to the Authorization page.
2017-05-15 16:43:46 -07:00
Steve Perry 187d97f8ed Move to Injecting section: Environment Variables. (#3801) 2017-05-15 14:54:25 -07:00
Steve Perry 9cca278d3b Move to Tasks: Cross-cluster Service Discovery. (#3800) 2017-05-15 14:06:34 -07:00
Steve Perry e280122a44 Move to Tasks: Tools for Monitoring. (#3799) 2017-05-15 13:34:41 -07:00
Steve Perry e0df06fded Fix redirects. (#3797) 2017-05-15 13:17:13 -07:00
Steve Perry 156519236b Consolidate federation topics. (#3796) 2017-05-15 12:12:47 -07:00
Steve Perry 31c6a9b747 Move to Tasks: Auth Across Clusters. (#3794) 2017-05-15 11:50:59 -07:00
Steve Perry f1ac46cab4 Move to Architecture section: Master Node Com. (#3793) 2017-05-15 11:35:44 -07:00
Steve Perry 225f1b775d Move to Tasks: Static Pods. (#3792) 2017-05-15 11:09:51 -07:00
Steve Perry 06c204a9f0 Move to Tasks: Cluster Management. (#3790) 2017-05-15 10:56:06 -07:00
Steve Perry ed8cf61f3f Move to Tasks: Access App Cluster. (#3789) 2017-05-15 10:21:26 -07:00
paulbattagliag b0ab3f94ee Update api-overview.md 2017-05-14 16:41:28 -07:00
paulbattagliag 15ca8f0b2f Update networkpolicies.md (#3755)
* Update networkpolicies.md

* Update networkpolicies.md
2017-05-14 16:33:31 -07:00
Claire Lundeby 5ceb764c80 Write the Docs: Moved to Concept page template & made style edits (#3766)
* Moved to Concept page template & made style edits

* Update federation.md
2017-05-14 16:32:13 -07:00
Wendy Shaffer a326f8ff17 Write the Docs: Adding template and editing 2017-05-14 16:08:30 -07:00
Ryan McGinnis 74b390a61a WtD: Style Guide
Adds section "Avoid Latin phrases"
- Guidelines for common latin phrases: e.g., i.e., etc.
2017-05-14 16:05:36 -07:00
Ryan McGinnis 6e4c5f1abd WtD: Picking the Right Solution (#3772)
* WtD: Picking the Right Solution

- Comprehensive edit for readability
- Fixes dead and redirecting links
- Fixes headings

* md format change
2017-05-14 16:03:02 -07:00
Andrew Chen 2ea01f58d0 Update cluster-administration-overview.md 2017-05-14 15:50:04 -07:00
paulbattagliag 0ba167b5e9 Update what-is-kubernetes.md (#3765)
* Update what-is-kubernetes.md

* Update what-is-kubernetes.md
2017-05-14 15:42:05 -07:00
Pheo 9640624d8c edited create-external-load-balancer.md to conform to template (#3746)
* refactor to new template

* refactor to new template

* fixed a missed header resize

* removed TOC substitute
2017-05-14 15:31:11 -07:00
geraldinewhitt 2f0d13a2e0 WTD (#3757)
Edits from genwhitt in Portland at WTD conference. Apply template, copyedit, apply style guide.
2017-05-14 15:10:50 -07:00
paulbattagliag a712b13a3b Update configure-namespace-isolation.md (#3758)
* Update configure-namespace-isolation.md

* Update configure-namespace-isolation.md
2017-05-14 15:04:54 -07:00
Andrew Chen e763168abd WtD: edit AppArmor (#3754)
* WtD: edit AppArmor

* WtD: edit AppArmor
2017-05-14 15:02:23 -07:00
isa-bel 0776f9d631 Docs - Calico NetworkPolicy (#3756)
* Add task template for calico-network-policy

* Add discussion section
2017-05-14 14:26:41 -07:00
Jodie Putrino b2c7a86bcb Write the Docs Writing day:
- edit /docs/tasks/configure-pod-container/configmap.md to use the task template
- move the Consuming ConfigMap in pods section to its own doc (coming in a separate PR)
2017-05-14 14:17:39 -07:00
Ryan McGinnis 86041a40a3 Merge pull request #3764 from kubernetes/ryanmcginnis-patch-2
WtD: Cluster Administration Overview
2017-05-14 14:07:00 -07:00
Ryan McGinnis 79cae9ada5 WtD: Cluster Administration Overview
Fixes typo
2017-05-14 14:04:20 -07:00
Ryan McGinnis be4b6d13f9 WtD: Cluster Administration Overview
Update cluster-administration-overview.md
2017-05-14 13:56:36 -07:00
Ryan McGinnis db5f30a4aa Update cluster-administration-overview.md
Fixes typos
2017-05-14 13:53:46 -07:00
Ryan McGinnis c76dbdda67 Merge pull request #3753 from kubernetes/ryanmcginnis-patch-1
Update cluster-administration-overview.md
2017-05-14 12:27:27 -07:00
Ryan McGinnis a36c1e9566 Update cluster-administration-overview.md
- Fixes a typo
- Fixes a dead link
2017-05-14 12:22:35 -07:00
Ryan McGinnis be64a24e42 WtD: Cluster Administration Overview
Update cluster-administration-overview.md
2017-05-14 12:16:28 -07:00
Ryan McGinnis a6e22fe80d Update cluster-administration-overview.md
Write the Docs
- Put article in Concept template
- Edited article: updated links, edited for readability, and updated titles of articles
2017-05-14 11:43:49 -07:00
Andrew Chen df96dc03ca WtD: AppArmor (#3743)
* WtD: apparmor

* add newline to separate feature tagging
2017-05-14 11:41:20 -07:00
Andrew Chen fcd906cc91 Merge pull request #3745 from kubernetes/chenoips-task-configure-namespace-isolation
Add Configure Namespace Isolation task
2017-05-14 11:19:52 -07:00
Andrew Chen f050c4cc57 Add Configure Namespace Isolation task 2017-05-14 11:13:31 -07:00
Andrew Chen 53a7982b62 Merge pull request #3744 from kubernetes/chenoips-feature-state-patch
Add newline to feature state templates
2017-05-14 11:00:09 -07:00
Andrew Chen 26b22eac9d Add newline to feature state templates 2017-05-14 10:54:17 -07:00
Steve Perry 0ce3686712 Fix front matter. (#3740) 2017-05-13 21:06:30 -07:00
Steve Perry 697e0d3574 Move and consolidate etcd topics. (#3739) 2017-05-13 20:54:58 -07:00
Steve Perry 6c01365c76 Move to Setup: Addons. (#3738) 2017-05-13 19:01:29 -07:00
cbatra 5aab4012c4 Update statefulset.md (#3732)
Following links were broken on the Stateful Set page

Link to "Force deleting Stateful Sets"
Link to Headless service.
Link to cluser domain
2017-05-12 15:37:47 -07:00
Jacob Beacham d286e4036b Mention alternate architectures for RPMs in kubeadm doc.
Now that we have new repositories to house RPMs for other architectures,
and are populating them with new releases, we should advertise them in
the kubeadm getting started instructions.
2017-05-12 15:31:25 -07:00
Andrew Chen 828455220b Merge pull request #3733 from kubernetes/chenoips-3631-patch
Fix typo to finish PR #3631
2017-05-12 15:30:06 -07:00
Andrew Chen e89dafe099 Fix typo to finish PR #3631 2017-05-12 15:25:51 -07:00
Guangya Liu 297c665eca Added example for pod preferredDuringSchedulingIgnoredDuringExecution. 2017-05-12 15:22:49 -07:00
Joshua Swaney 0fb2e07614 s/cloudprovider/cloud provider/ 2017-05-12 11:07:11 -07:00
zhangmingld 1779addc8d Symbol ")" is redundant (#3728)
Symbol ")" is redundant
2017-05-12 11:06:36 -07:00
Dan Winship a32d30c107 NetworkPolicy updates for v1 (#3721)
* NetworkPolicy clarifications

- For clarity, only use the word "policy" in reference to
  NetworkPolicies, not in reference to the isolation annotation.

- Drop a bunch of text related to the isolation annotation since
  there's only one interesting value so there's no reason to
  complicate things.

- Fix bad YAML indentation

- Misc rewording

* Update NetworkPolicy docs for v1
2017-05-11 13:26:32 -07:00
Kasper Bentsen d0b6757e6f Added missing close of function. 2017-05-11 11:26:11 -07:00
Sam Vilain 712dce6d82 Fix a broken link in "Installing Minikube"
Broken by kubernetes/minikube#1410
2017-05-11 11:25:20 -07:00
Mikhail Vasilenko 69c44a3996 typo fix 2017-05-11 11:24:07 -07:00
Jupp Müller 2e79fcbaa2 Fix broken github links to drivers.md 2017-05-11 11:23:30 -07:00
Andrew Chen 3c0c1eeaf9 Merge pull request #3722 from kubernetes/chenoips-1.6.3
change fullversion var for v1.6.3 release
2017-05-11 11:20:55 -07:00
Andrew Chen 0809e7a049 change fullversion var for v1.6.3 release 2017-05-11 11:13:59 -07:00
Steve Perry 0e7df470ee Hide token. (#3716) 2017-05-10 21:36:58 -07:00
zhangmingld d0a395e83e The kubelet flag "--config" has changed to be "pod-manifest-path" (#3692)
The kubelet flag "--config" has changed to be "pod-manifest-path" ,so
file "default-kubelet"should be changed.
2017-05-10 13:36:07 -07:00
Steve Perry 02c8689af5 New topic: Installing Minikube. (#3707)
* New topic: Installing Minikube.

* Refine.
2017-05-10 10:44:31 -07:00
Steve Perry 5d7bb8c7b2 Create Installing Tools section. (#3706) 2017-05-10 09:39:55 -07:00
Mike Bryant 14fa478c2d Remove SI comment
K is not a valid SI prefix
2017-05-10 09:29:13 -07:00
Charlie R.C 2aeffaefba fix typo in rbac.md 2017-05-10 09:28:06 -07:00
Nicolas Dextraze 642043cfe1 Fix missing = when setting api advertised address
Similar to the pod-network-cird= issue, with no = there is no immediate problem but it causes trouble along the way (i.e. I wasn't able to access the dashboard via kubectl proxy)
2017-05-10 09:26:02 -07:00
Jesse Haka c1b8664cb6 cinder storageclass, zone algorithm if not specified (#3693)
update aws+gce availability texts, the algorithm is not random
2017-05-10 09:25:05 -07:00
Steve Perry a0ed6254bd Add Dynamic Provisioning to TOC. (#3700) 2017-05-09 14:57:59 -07:00
Steve Perry d7d32000a5 Change title. (#3699) 2017-05-09 13:48:28 -07:00
Steve Perry 8be660ccd8 Move to Concepts: Admin Overview. (#3698)
* Move to Concepts: Admin Overview.

* Fix filename.
2017-05-09 13:32:48 -07:00
Steve Perry 59d9c2ec4f Net pol (#3696)
* Move to Admin section: Disruption.

* Move to Admin section: Net Policy.

* Add redirects.
2017-05-09 11:58:30 -07:00
Andrew Chen ef2c0920d3 Add feature state templates (#3680)
* Add feature state template

* tweak css

* change wording

* apply wording changes to alpha and beta

* tweak dialog css

* tweak code highlighting

* tweak dialog style

* set for_k8s_version default

* tweak dialog ul

* make init containers 1.5 beta for now

* set default dialog width

* revert a:visited color

* force code style

* simplify copy for alpha, beta, stable

* tweak code style

* fix beta dialog title

* fix dialog link a code

* remaining tweaks

* set a:visited color

* Address Steve's feedback

* rename dialog.md to feature-dialog.md

* remove bold from additional feature state text
2017-05-09 11:24:43 -07:00
Steve Perry ae991e8d60 Move to Admin section: Disruption. (#3695) 2017-05-09 10:42:16 -07:00
Steve Perry c0eb5e17ad Move to Tasks: Multiple chedulers. (#3694) 2017-05-09 10:08:26 -07:00
Michail Kargakis 8481c02496 Update deployment docs 2017-05-09 10:04:45 -07:00
Steve Perry f953d98eab Move to Tasks: Guaranteed Scheduling. (#3689) 2017-05-08 22:40:29 -07:00
Steve Perry 2b6f3ea7fe Change TOC order. (#3688) 2017-05-08 22:08:37 -07:00
Andrew Chen f01101d482 Merge pull request #3687 from kubernetes/chenopis-2858-patch
Patch for PR #2858
2017-05-08 22:03:12 -07:00
Andrew Chen 828bf0ac26 Patch for PR #2858 2017-05-08 21:27:35 -07:00
Haoran Wang 39b069a16c update the multi-scheduler doc (#2858)
* Add doc for multiple scheduler with leader election enabled

* address comments
2017-05-08 21:25:44 -07:00
Steve Perry 3a4a75bb53 Move to Admin section: CPU and Mem Limits. (#3686)
* Move to Admin section: CPU and Mem Limits.

* Fix TOC entry.
2017-05-08 19:30:59 -07:00
Steve Perry 34a71341eb Move to Tasks: Out of Resources. (#3685) 2017-05-08 19:12:27 -07:00
Steve Perry 1304506ac2 Move to Admin section: Quotas. (#3684) 2017-05-08 18:35:53 -07:00
Andrew Chen e49d9d1c4d Merge pull request #3682 from kubernetes/chenopis-pr-template-patch
Add reminder to PR template for 1.7
2017-05-08 15:40:00 -07:00
Andrew Chen 56f4168847 Add reminder to PR template for 1.7 2017-05-08 15:26:14 -07:00
Steve Perry 177c96da73 Move to Tasks: ThirdPartyRes. (#3679)
* Move to Tasks: ThirdPartyRes.

* Change title.
2017-05-08 14:14:13 -07:00
Steve Perry 20ff36112a Move to Debug section: Auditing. (#3678) 2017-05-08 12:53:43 -07:00
Steve Perry eccd238b1c Move to debugging section: shell. (#3677) 2017-05-08 11:22:29 -07:00
Steve Perry 216856f0b9 Change title. (#3663) 2017-05-08 10:40:18 -07:00
Nicolas Dextraze 563241c4e5 Update kubeadm.md
Wasted hours today trying to get kubeadm working on a Ubuntu VM. The culprit is a missing = for the pod-network-cidr parameter to the kubeadm init command when using calico. Without it kube-dns refused to start, oddly enough pods had 10.244.0.0 network setup but somehow it was failing sending a request to destroy and recreate the pod.

Here's the events for the kube-dns pods if someone's interested.

Events:
  FirstSeen     LastSeen        Count   From                    SubObjectPath   Type            Reason          Message
  ---------     --------        -----   ----                    -------------   --------        ------          -------
  2m            2m              1       default-scheduler                       Normal          Scheduled       Successfully assigned kube-dns-3913472980-5xfzt to kube-master
  1m            1m              1       kubelet, kube-master                    Warning         FailedSync      Error syncing pod, skipping: failed to "CreatePodSandbox" for "kube-dns-3913472980-5xfzt_kube-system(3bd90f8c-33a8-11e7-8a23-080027ac04f3)" with CreatePodSandboxError: "CreatePodSandbox for pod \"kube-dns-3913472980-5xfzt_kube-system(3bd90f8c-33a8-11e7-8a23-080027ac04f3)\" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod \"kube-dns-3913472980-5xfzt_kube-system\" network: Get https://10.96.0.1:443/api/v1/namespaces/kube-system/pods/kube-dns-3913472980-5xfzt: dial tcp 10.96.0.1:443: i/o timeout"

  1m    50s     6       kubelet, kube-master            Warning FailedSync      Error syncing pod, skipping: failed to "KillPodSandbox" for "3bd90f8c-33a8-11e7-8a23-080027ac04f3" with KillPodSandboxError: "rpc error: code = 2 desc = NetworkPlugin cni failed to teardown pod \"kube-dns-3913472980-5xfzt_kube-system\" network: connection is unauthorized"

  1m    9s      9       kubelet, kube-master            Normal  SandboxChanged  Pod sandbox changed, it will be killed and re-created.
  37s   9s      3       kubelet, kube-master            Warning FailedSync      Error syncing pod, skipping: failed to "KillPodSandbox" for "3bd90f8c-33a8-11e7-8a23-080027ac04f3" with KillPodSandboxError: "rpc error: code = 2 desc = NetworkPlugin cni failed to teardown pod \"kube-dns-3913472980-5xfzt_kube-system\" network: netplugin failed but error parsing its diagnostic message \"\": unexpected end of JSON input"
2017-05-08 10:31:22 -07:00
Eugene Pirogov 8260e7cd06 Fix a small typo 2017-05-08 10:26:16 -07:00
Rohit Agarwal fb26a395f0 ReplicationController: Fix typo. 2017-05-08 10:25:44 -07:00
Andrew Chen 71bf0f5e19 Merge pull request #3676 from kubernetes/chenopis-3673-patch
grammar nits
2017-05-08 10:20:53 -07:00
Andrew Chen 76fe741576 grammar nits 2017-05-08 10:10:47 -07:00
Mik Vyatskov 46ff287a87 Fix Elasticsearch logging manual 2017-05-08 10:07:17 -07:00
Andrew Chen ac377d663c Merge pull request #3650 from gyliu513/special-case
Highlight two special case for tolerations.
2017-05-08 10:01:01 -07:00
Guangya Liu 6ae88186aa Highlight two special case for tolerations. 2017-05-06 08:22:52 +08:00
yupengzte 6d49fc399d Doctype must be declare first
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-05-05 14:51:02 -07:00
Andrew Chen ab6d08c1e4 Merge pull request #3662 from kubernetes/chenopis-patch-1
Reimplement PR #3589
2017-05-05 14:49:31 -07:00
Andrew Chen 3426562878 Reimplement PR #3589
Implement change proposed in PR #3589.
2017-05-05 14:42:14 -07:00
anatoly techtonik 31746164e5 Explain that LXD containers run Docker containers inside (#3660)
* Explain that LXD containers run Docker containers inside

Fixes issue #3612

* implement feedback
2017-05-05 14:34:36 -07:00
Steve Perry db929e4e2b Move to Accessing Apps: List Containers. (#3661) 2017-05-05 14:26:23 -07:00
Olve S. Hansen 948d545737 Added sub-section about internal load balancers (#3136)
* Added sub-section about internal load balancers

* Title changed to
2017-05-05 14:16:38 -07:00
Tupin Laurent 507c29afeb Correct links to correct repository (#3430)
* Correct links to correct repository

Update prerequesites list

* Update url to Apache Cloudstack repo
2017-05-05 13:36:13 -07:00
Steve Perry daecd7213d Move StatefulSet topics. (#3659)
* Move StatefulSet topics.

* Fix toc paths.
2017-05-05 13:30:15 -07:00
Steve Perry cbe9501834 Change title of DNS topic. (#3657) 2017-05-05 11:21:04 -07:00
Steve Perry 3b6a566625 Move to Tasks: Service Access App. (#3655) 2017-05-05 10:44:21 -07:00
Steve Perry af9e003fb3 Move Dashboard to Accessing Apps. (#3654)
* Move Dashboard to Accessing Apps.

* Fix typo.
2017-05-05 10:15:29 -07:00
Kelly Campbell 6d606db9d4 Link to tutorial on how to update a StatefulSet 2017-05-05 09:34:08 -07:00
William Chang a6ac2a11ff Update the cluster deploy script path. 2017-05-05 09:33:10 -07:00
Xiaoyu Zhang ac9a2e678e fix a typo
"by default" may be fine
2017-05-05 09:10:11 -07:00
Andrew Chen 3205c11056 Merge pull request #3652 from marcelcorso/master
fix wrong addresses for mysql-statefulset.yaml and gce-volume.yaml
2017-05-05 09:09:42 -07:00
Marcel Corso dd438bc3c6 fix wrong addresses for mysql-statefulset.yaml and gce-volume.yaml 2017-05-05 13:40:19 +02:00
Steve Perry ca91dd2869 Fix yaml paths. (#3648) 2017-05-04 19:28:01 -07:00
Steve Perry 0f881b20d7 Path fix 3 (#3647)
* Fix yaml path.

* Fix yaml paths.
2017-05-04 18:49:44 -07:00
Steve Perry 76bd752c41 Fix yaml path. (#3646) 2017-05-04 18:24:00 -07:00
Steve Perry ccc615a353 Fix yaml path. (#3644) 2017-05-04 18:03:24 -07:00
Steve Perry 29790b232c Move to Tasks: Connect Front Back. (#3643)
* Move to Tasks: Connect Front Back.

* Fix paths.
2017-05-04 16:48:27 -07:00
Steve Perry 3996566963 Add note about Deployments. (#3642)
* Add note about Deployments.

* Fix typo.
2017-05-04 15:54:11 -07:00
Steve Perry 559c78c8b5 Move to Running Applications: Pet to Stateful. (#3640) 2017-05-04 14:03:31 -07:00
Andrew Chen 105942fdb4 Refactor tabs implementation (#3268)
* Refactor tabs implementation

* tidy head.html

* test jquery-ui tabs

* Initial tabs code refactor

* test liquid parsing

* test liquid stack

* move into tabs.html

* test jekyll tabs

* construct array

* test cleaner way

* add example content

* test split hack

* fix md

* add site.emptyArray

* set good defaults

* fix CSS

* cleanup li

* fix a href

* fix content tabs

* add space to default

* remove a href underline

* rename docs/tab-test.md to docs/tab-example.md

* fix skip toc check

* add assignees

* add comment to reference example

* add documentation to example

* escape md

* move demo to top, pretty it up

* add word

* tweak wording
2017-05-04 13:52:59 -07:00
Steve Perry 204aad82b1 Move to Tasks: Replicated Stateful. (#3639)
* Move to Tasks: Replicated Stateful.

* Fix toc entry.
2017-05-04 13:31:11 -07:00
Steve Perry 712c374379 Move to Tasks: Single-instance Stateful. (#3638) 2017-05-04 12:04:28 -07:00
Steve Perry fc533bea91 Combine topic on commands and args. (#3637)
* Combine topic on commands and args.

* Fix redirect.
2017-05-04 11:38:34 -07:00
Steve Perry 1cc0b4b93a Move topic to Inject Data section. (#3635) 2017-05-04 11:08:41 -07:00
Steve Perry 15bc72e475 Move topic to Injecting Data section. (#3634)
* Move topic to Injecting Data section.

* Fix path in TOC.
2017-05-04 10:43:17 -07:00
Andrew Chen 63c5621e47 Merge pull request #3633 from kubernetes/chenopis-3594-patch
Change link path
2017-05-04 07:30:11 -07:00
Andrew Chen 00f48aed80 Change link path 2017-05-04 07:25:24 -07:00
wujun8 5d83944c33 deprecated getting-started-guide on centos (#3594)
* deprecated getting-started-guide on centos

fix https://github.com/kubernetes/kubernetes.github.io/issues/1613

* Reword thx to @chenopis
2017-05-04 07:21:13 -07:00
Vinit Mahedia 0e294acc78 skydns to kubedns rename documentation changes 2017-05-03 23:01:15 -07:00
Steve Perry 965dfd948a Remove ReplicationController tutorial. (#3628) 2017-05-03 18:10:06 -07:00
Steve Perry 1663f37f90 Move topic to Tasks. (#3627) 2017-05-03 17:44:23 -07:00
Steve Perry ede2648b28 Move topic to Injecting Data section. (#3626) 2017-05-03 16:31:55 -07:00
Steve Perry 6935b1c6a9 Move topic to Injecting Data section. (#3623)
* Move topic to Injecting Data section.

* Update include paths.

* Remove old file.
2017-05-03 14:20:05 -07:00
Steve Perry 7c1e0a95fb Move topic to Injecting Data section. (#3622)
* Move topic to Injecting Data section.

* Move included file.
2017-05-03 12:35:15 -07:00
Steve Perry 53eb49f080 Change title. (#3621) 2017-05-03 11:26:47 -07:00
Steve Perry 2442dc292f Move topic to Configuration section. (#3620)
* Move topic to Configuration section.

* Move included file.
2017-05-03 11:10:07 -07:00
Steve Perry f28c8376e0 Change title. (#3619) 2017-05-03 10:40:09 -07:00
Roberto Jung Drebes 3320d60ed3 update storageclass annotation docs for statefulsets (#3616) 2017-05-03 10:37:40 -07:00
Andrew Chen 5c43be1ef3 Merge pull request #3618 from kubernetes/chenopis-travis-patch-0503
Fix Travis CI
2017-05-03 08:47:12 -07:00
Andrew Chen 78cfc25c79 Fix Travis CI 2017-05-03 08:39:26 -07:00
Jiangzhao Lv b4e57df8a0 fix redirect link (#3568)
* fix redirect link

* use relative path instead of full URL
2017-05-03 08:22:28 -07:00
Steve Perry d021173027 Remove duplicate redirect. (#3613) 2017-05-02 18:34:32 -07:00
Steve Perry c849d1668d Fix typo in redirect. (#3611) 2017-05-02 17:14:06 -07:00
Andrew Chen 00615b930f Merge pull request #3606 from arthur0/master
Fixes broken links
2017-05-02 15:10:03 -07:00
Arthur Miranda d2de692a32 Fixes broken links 2017-05-02 18:12:48 -03:00
Aaron Prindle 4150fc8d7c Removed deleted links regarding minikube CLI 2017-05-02 12:34:34 -07:00
Ahmet Alp Balkan 598cefdc99 Add missing volumetype to pv doc (#3600)
Fixes #3575

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-02 12:33:44 -07:00
Ahmet Alp Balkan d3cc80f5e0 Fix broken link in HA doc with minikube (#3599)
Fixes #3570.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-02 12:33:20 -07:00
Ahmet Alp Balkan 5245ee55eb rolling-update: remove link to the doc itself
Fixes #3357. I'm removing this statement as it's not clear where it should
actually be pointing to...

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-02 12:16:10 -07:00
Ahmet Alp Balkan 742fd8a30b Link to 'why containers' in kubernetes-basics
Fixes #3472.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-02 12:15:36 -07:00
Marco Ceppi a5fa73e180 Updating Ubuntu based instructions and upgrades 2017-05-02 12:12:41 -07:00
Andrew Chen e95cac7597 Merge pull request #3602 from kubernetes/chenopis-daemonset-patch
Address Issue #3577
2017-05-02 12:10:44 -07:00
Andrew Chen 5d195b23c3 Address Issue #3577 2017-05-02 12:05:26 -07:00
Guangya Liu 7f52b9eb09 Added more explanation for nodeAffinity.
Explain more for how multiple nodeSelectorTerms and multiple
matchExpressions works.

Fixed #3345
2017-05-02 11:59:36 -07:00
Andrew Chen 1ed1472057 Merge pull request #3601 from foxish/patch-1
Update and fix travis tests (short-term)
2017-05-02 11:48:06 -07:00
Anirudh Ramanathan 3dc509026d Update and fix travis tests (short-term) 2017-05-02 11:42:51 -07:00
Andrew Chen f127f53415 Merge pull request #3593 from kubernetes/chenopis-tasks-patch
Address #3433 - update Tasks landing page
2017-05-01 15:43:12 -07:00
Andrew Chen 804a24d272 Address #3433 - update Tasks landing page 2017-05-01 15:37:29 -07:00
Oli Lalonde 69c6591418 Remove redundant, out of sync table of contents
This table of contents is redundant (it's also available from the side nav) and confusing (not clear if it's a copy of the side nav or contains additional information). Plus, it was out of sync with the actual table of contents (last section on GPU was missing). So, I think it's best to just remove it.
2017-05-01 14:23:38 -07:00
Andrew Chen 0401a68162 Merge pull request #3592 from saschagrunert/master
Update Init Container link
2017-05-01 10:43:26 -07:00
Sascha Grunert 043672b11f Update Init Container link 2017-05-01 19:34:32 +02:00
huikang 0f028c716a Update service.md 2017-05-01 10:24:14 -07:00
Everett Toews 937177b991 Link to appropriate docs for Automatic Mounting of Manually Created Secrets (#3571)
* Update link to Adding ImagePullSecrets to a service account

* Link to appropriate docs for Automatic Mounting of Manually Created Secrets

* Replace here w/ title of pages
2017-05-01 10:22:51 -07:00
supereagle cfaa556025 update kubectl apply doc for required resource name 2017-05-01 10:17:30 -07:00
jianglingxia 7de8cda84c jlx426 2017-05-01 10:15:25 -07:00
Stephen Schlie 5f03cfef66 Updating Canal URL (#3583)
Canal has undergone some updates and the should now point to the
k8s-install README
2017-05-01 10:10:51 -07:00
Andrew Chen 004abfe1d8 Merge pull request #3591 from kubernetes/chenopis-3572-patch
Grammar patch to #3572
2017-05-01 10:10:30 -07:00
Andrew Chen 15468eb442 Grammar patch to #3572 2017-05-01 10:07:15 -07:00
Andrew Chen 0624f8f211 Merge pull request #3582 from kubernetes/chenopis-kill-swagger
Remove swagger-ui from search index
2017-04-28 16:33:07 -07:00
Andrew Chen 8d48ab2a73 Remove swagger-ui from search index 2017-04-28 16:23:39 -07:00
Andrew Chen 78a13cebf5 Merge pull request #3581 from kubernetes/chenopis-v1_6_2
Update fullversion page variable
2017-04-28 16:18:05 -07:00
Andrew Chen 3d3f0ba1e8 Update fullversion page variable 2017-04-28 16:15:05 -07:00
Andrew Chen 2b625b3033 Merge pull request #3580 from kubernetes/chenopis-3572-patch
#3572 patch
2017-04-28 16:09:55 -07:00
Andrew Chen f1b00d086d Grammar nitpicks for #3572 2017-04-28 16:05:23 -07:00
Jun Xiang Tee fd3dcaaab6 Update init containers documentation with 1.6 syntax for YAML files (#3572)
* Syntax for Kubernetes version 1.6

Included 1.6 syntax change for declaration of init containers.

* Reorder services.yaml & add 1.5 syntax still works

* Corrected YAML headings & add syntax explanation
2017-04-28 15:59:09 -07:00
Andrew Chen 039b1b395c Merge pull request #3579 from kubernetes/chenopis-3365-redo
Reimplement PR #3365
2017-04-28 15:53:27 -07:00
Andrew Chen 8868c002ef Reimplement PR #3365 2017-04-28 15:48:13 -07:00
Charlie R.C 5e384ab531 remove abandoned environment variable 2017-04-28 15:43:17 -07:00
Josh Wood c28ffd9cca getting-started/aws: Update links to AWS deploy tools
- Update link to kube-aws at Incubator
- Add link to tectonic-installer for aws
2017-04-28 15:38:39 -07:00
Jun Xu d178aa22ec fix typo 2017-04-28 15:22:07 -07:00
xilabao fcecf1b7ed fix impersonate in authorization 2017-04-28 15:21:31 -07:00
Andrew Chen 8d1995beb0 Merge pull request #3578 from kubernetes/chenopis-del-101-201
Deprecate Kubernetes 101 and 201
2017-04-28 15:20:44 -07:00
Andrew Chen c3efda3b97 Deprecated Kubernetes 101 and 201 2017-04-28 15:15:18 -07:00
Andrew Chen ee74993fa4 Refactor Troubleshooting (#3564)
* Refactor Troubleshooting

* reorder ToC

* Move troubleshooting into Home ToC
2017-04-28 14:53:12 -07:00
Andrew Chen 42e2b88498 Merge pull request #3574 from kubernetes/chenopis-home-patch1
Cleanup Home landing page
2017-04-28 13:36:51 -07:00
Andrew Chen d4dca09b12 Cleanup Home landing page 2017-04-28 13:32:08 -07:00
xiangpengzhao edaafe493a Cleanup deprecation-policy 2017-04-28 10:36:03 -07:00
Andrew Chen c0d926d550 fix link on Reference page (#3565) 2017-04-28 10:06:14 -07:00
craigbox 88f83fd49a Federation service discovery doc fixes (#3560)
* Fix rendering issue in federation doc

See odd line break in "Discovering a federated service" in https://kubernetes.io/docs/concepts/cluster-administration/federation-service-discovery/#discovering-a-federated-service

* Update federation-service-discovery.md

Fix some egregious table formatting also

* Update federation-service-discovery.md
2017-04-27 15:55:34 -07:00
guangxuli a562a36c39 the proposal and api link should be updated 2017-04-27 15:13:08 -07:00
Eric Chiang 8b99043839 rbac: document resourceNames and note they can't be used for creates 2017-04-27 15:07:07 -07:00
Clenimar Filemon d3242d6a23 Fix formatting issues in federated ingress docs 2017-04-27 15:04:03 -07:00
Andrew Chen 5462769c4a Merge pull request #3563 from kubernetes/chenopis-webmaster-verification
add site verification file
2017-04-27 14:38:52 -07:00
Andrew Chen b6e85226c8 add site verification file 2017-04-27 14:17:09 -07:00
Andrew Chen 629e07b997 Merge pull request #3562 from ahmetb/downward-fix
Fix broken downward API link
2017-04-27 13:01:28 -07:00
Ahmet Alp Balkan 0cd5e2179d Fix broken downward API link
Fixes #3561.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-27 12:58:22 -07:00
Andrew Chen 6fe67a6579 Refactor robots.txt (#3534)
* Test robots.txt

* refactor robots.txt to use /*

* clarify note

* verified and cleaned up robots.txt entries

* remove unnecessary wildcards
2017-04-27 12:36:29 -07:00
Hoat Le f428116387 Use pipeline to remove new line char (#3458)
When -w option is not available for base64, for example, when using alpine Docker image.
`echo -n "<text>" | base64 | tr -d '\n'` should be used, it works better.
2017-04-27 09:35:38 -07:00
Ahmet Alp Balkan a9ca41e8ac gce.md: update kubectl instructions, remove bash completion instructions (#3477)
* Remove bash completion from gce.md

Bash completion instructions do not belong to this guide. (ref: #3476)

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>

* Update kubectl installation instructions on gce.md

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-27 08:52:01 -07:00
Steve Perry 92b6057d9c Deprecation complete: secrets/index ... (#3554) 2017-04-26 17:13:34 -07:00
Steve Perry b37b5d1957 Deprecation complete: ingress ... (#3553) 2017-04-26 16:49:38 -07:00
Steve Perry bec1ee86ce Deprecation complete: replicasets (#3552) 2017-04-26 15:09:02 -07:00
Steve Perry e98619b0d9 Deprecation complete: federation/daemonsets ... (#3551) 2017-04-26 14:13:54 -07:00
Steve Perry 9fd06cdc95 Deprecation complete: node-problem ... (#3550) 2017-04-26 13:53:19 -07:00
Steve Perry cb04127bd1 Deprecation complete: master-node-communication ... (#3548) 2017-04-26 12:29:33 -07:00
Ahmet Alp Balkan 49c14f2d61 remove Federation API from docs/reference home
This topic is not yet important enough to list exhaustively on /docs/reference.
Also the links are broken anyway. Fixes #3535.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-26 10:50:11 -07:00
Jakob Jarosch 5d5597bf7d Add snippet to list all secrets currently in use 2017-04-26 10:47:53 -07:00
Steve Perry 61c1605c27 Deprecation complete: etcd ... (#3543) 2017-04-26 08:24:44 -07:00
Steve Perry 4d990ef6ef Deprecation complete: namespaces/walkthrough ... (#3539) 2017-04-25 20:50:33 -07:00
Steve Perry aeb1ada001 Deprecation complete: admin ... (#3538) 2017-04-25 20:31:45 -07:00
Steve Perry 80a2fff4dc Deprecation complete: gpus ... (#3537) 2017-04-25 20:09:38 -07:00
Steve Perry f83c5874a8 Deprecation complete: container-environment ... (#3536) 2017-04-25 18:03:58 -07:00
Steve Perry ecae0f436c Deprecation complete: multi-container ... (#3533) 2017-04-25 16:50:07 -07:00
Steve Perry 5e3a0f555c Deprecation complete: jobs/expansions ... (#3532) 2017-04-25 15:44:22 -07:00
Xiaoyu Zhang 968cc459f4 configmap.md: add v1.6 reminding (#3511)
* configmap.md: add v1.6 reminding

configmap.md: add v1.6 reminding

* update configmap-envfrom

update configmap-envfrom
2017-04-25 15:34:11 -07:00
Steve Perry bca9551f9c Deprecation complete: jobs, work queue (#3531) 2017-04-25 14:30:48 -07:00
Clenimar Filemon b6eb379e1d Make the kubefed guide default for setting up a federation (#3523)
* Update federation setup guide link to kubefed

We no longer support federation setup scripts `federation.sh` and
`deploy.sh`. Update the main federation guide setup link accordingly, by
making kubefed guide the way to go.

* Update federation.md
2017-04-25 14:19:34 -07:00
Steve Perry 0dbed982a1 Dep 4 (#3529)
* Deprecation complete: net policy walkthrough

* Deprecation complete: net policy
2017-04-25 13:23:50 -07:00
Steve Perry 7c1766dde0 Deprecation complete: configmap. (#3526) 2017-04-25 13:05:36 -07:00
Steve Perry f27759a768 Deprecation complete: horizontal-pod-autoscaling (#3528) 2017-04-25 13:00:52 -07:00
mlambert890b bc21477164 April k8s Partner Registry updates - Part 2 of 2 (#3514)
* Add files via upload

* Update partner-script.js

* Add files via upload

* Update partner-script.js

* Add files via upload
2017-04-25 11:11:31 -07:00
nerdondon d638dfb3cf Switch limit-range to the new task template. Add supporting yaml files. 2017-04-25 10:45:05 -07:00
craigbox 128610c48d Fix cURL commands, which are broken across lines (#3506)
Copy and paste will now work.

(A couple of typos corrected also)
2017-04-25 10:43:50 -07:00
chenhuan12 d8117f1e38 fix the command output
fix the command output
2017-04-25 10:40:30 -07:00
chenhuan12 913b8f555e fix the command output
fix the command output
2017-04-25 10:39:21 -07:00
chenhuan12 b0e5c1f195 fix the command output
fix the command output
2017-04-25 10:39:00 -07:00
chenhuan12 507d9dff98 fix the command output
fix the command output
2017-04-25 10:38:44 -07:00
chenhuan12 b821397d0e fix the command output
fix the command output
2017-04-25 10:38:29 -07:00
chenhuan12 073220ffa5 fix the command output
fix the command output
2017-04-25 10:38:11 -07:00
chenhuan12 192e08aeb9 fix the command output
fix the command output
2017-04-25 10:37:54 -07:00
Andrew Chen 2f51937983 docs migration: Container Lifecycle Hooks into Concepts (#2564)
* initial commit for structure

* migrate Container Lifecycle Hooks and related files to Concepts

* update Concepts ToC

* fix formatting

* Formatting tweaks

* comment out What's next

* remove What's next

* Begin rewrite of container-lifecycle-hooks.md

* incremental update to edit

* Split Container Lifecycle Hooks into container-lifecycle-hooks.md and container-environment.md; change all referring links.

* Add concept template to volumes.md and images.md

* Apply changes for steveperry-53 feedback.

* fix format issue

* tweak formatting

* fix Concepts ToC

* update links

* add back changes to Concepts ToC

* fix a link

* update links
2017-04-25 10:36:59 -07:00
Steve Perry b38c79dde8 Deprecation 22 (#3512)
* Deprecation complete: whatis k8s ...

* Fix redirect source.

* Deprecation complete: sharing-clusters ...
2017-04-24 20:35:01 -07:00
Steve Perry 184ed9429f Deprecation complete: whatis k8s ... (#3510)
* Deprecation complete: whatis k8s ...

* Fix redirect source.
2017-04-24 19:46:40 -07:00
Steve Perry fee12cc272 Remove and redirect User Guide index page. (#3509) 2017-04-24 17:27:08 -07:00
Steve Perry e92bd5833c Remove Guides from top nav. (#3508) 2017-04-24 16:22:02 -07:00
Steve Perry 0d938e623f Deprecation phase 2: configmap/index.md ... (#3507) 2017-04-24 15:42:22 -07:00
Rob Scott 0bed147f87 Updating Liveness and Readiness Docs (#3494)
* adding documentation for TCP checks, replacing "discussion" section with more detailed "configuration" section, other small tweaks

* some line breaks and a small tweak

* tweaking config section

* fixing problems with http get field descriptions, more detailed TCP example
2017-04-24 15:32:40 -07:00
mlambert890b 995c1323cd Add files via upload 2017-04-24 12:19:02 -07:00
mlambert890b c373b802b5 Update partner-script.js 2017-04-24 12:19:02 -07:00
xilabao 06aed032d2 fix wildcard in authorization 2017-04-24 12:16:05 -07:00
Darren Mutz c43bfac582 dm - Fix some wording (#3491) 2017-04-24 11:12:59 -07:00
Cristian Todea 45d17eb8c8 pick-right-solutions.md
Centos bare metal installation guide uses flannel as overlay network, but table at pik-right-solutions.md says it uses "none".
2017-04-24 11:12:28 -07:00
xilabao 7d15d52525 add attention to kubelet config 2017-04-24 11:11:39 -07:00
Brendan Burns 7c549aeeb9 Add some more depth to the 3rd party resource documentation. 2017-04-24 11:10:28 -07:00
Joe Beda 343d731370 Include kubeadm in pick solutions page 2017-04-24 11:07:50 -07:00
Xiaoyu Zhang ad3e55f554 update output of configmap.md
The output may lack some columns.
2017-04-24 11:05:12 -07:00
zhangxiaoyu-zidif 86ecbd2fe8 fix broken link:api-reference 2017-04-24 11:04:51 -07:00
Richard E. Silverman eb2fe3815d fix typo 2017-04-24 10:57:50 -07:00
Damien Leflon 6abd5c0862 Update kubeadm.md
Fix a little typo
2017-04-24 10:57:11 -07:00
chenhuan12 8b80216ab1 fix typo
fix typo
2017-04-24 10:56:46 -07:00
chenhuan12 79a1fd19a9 fix typo
fix typo
2017-04-24 10:55:59 -07:00
Andrew Chen a7376febac Merge pull request #3487 from crassirostris/stackdriver-logging-docs-fix
Fix file names for Stackdriver Logging page
2017-04-24 10:45:33 -07:00
Mik Vyatskov 2e2712e05b Fix file names for Stackdriver Logging page 2017-04-21 11:23:04 +02:00
Charlie Drage 8ff1959f16 Update Kompose documentation
Updates the page with new installation details as well as some updated
fixes (spelling errors, outdated information, etc.)
2017-04-20 17:33:25 -07:00
Didier Roche 62d4745f0d Replace with new service url
The headless service page url has moved.
2017-04-20 14:55:41 -07:00
Peter Lee 7697eb5146 Update link 2017-04-20 14:53:53 -07:00
Drinky Pool 165fc0998b fix typo
fix typo
2017-04-20 14:53:20 -07:00
Ahmet Alp Balkan 55583b8f1b Modify title of Downward API guide
DownwardApiVolumeFile is only an API term and the actual concept is the
Downward API.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-20 14:52:48 -07:00
Mik Vyatskov 59e4200afd Add documentation for configuring Stackdriver Logging agents 2017-04-20 14:02:53 -07:00
Andrew Chen 0ee3235676 Chenopis 3436 patch (#3480)
* Remove the docker-multinode getting started guide

* add entries to skip_toc_check.txt
2017-04-20 13:59:02 -07:00
Andrew Chen aec07548ad Merge pull request #3258 from jbeda/old-kubeadm
Document how to access kubeadm 1.5.
2017-04-20 13:21:05 -07:00
Joe Beda 27f972427e Document how to access kubeadm 1.5.
Fixes #3127
2017-04-20 13:08:53 -07:00
Marc Sluiter 88212bdfa9 Added note about Docker credentials store (#3456)
* Added note about Docker credentials store

Docker might use a credentials store when logging in to docker repositories, see https://docs.docker.com/engine/reference/commandline/login/#credentials-store. In that case you don't find the `auth` token in the `config.json` file. I added a note that this might happen, in order to prevent confusion.

* added "NOTE:" to the Docker credentials store note

as suggested in PR review
2017-04-20 13:08:41 -07:00
Andrew Chen 704c8dbf0f Fix typo in etcd-upgrade.md 2017-04-20 13:04:59 -07:00
Andrew Chen 90070474d4 Reference ToC refactor (#3427)
* Reference ToC refactor

* Move Federation into Reference

* Fix ToC, add deprecation notice

* Fix Reference ToC

* tweak ToC

* Move content into Reference

* touch up kubectl

* fix ToC syntax error

* remove resources-reference docs

* change kubectl section name

* adjust page titles

* create Command-Line Tools section

* Move Federation API out to top level

* remove extensions/v1beta1 definitions

* rewrite Kubernetes API in Concepts in a later PR

* Add jbeda to Kubernetes API Overview page for reviews.

* incorporate feedback

* remove /docs/federation

* move around copy

* cleanup reference landing page

* update reference landing page
2017-04-20 13:04:32 -07:00
Will Sean Don e648c764ab Migrate to new task template (#3442) 2017-04-20 12:55:32 -07:00
Andrew Chen 830adcb3cc Merge pull request #3474 from kubernetes/chenopis-1.6-merge-patch1
Review conflicts from 1.6-release/master merges
2017-04-20 11:00:33 -07:00
Andrew Chen cb9cff59db Review conflicts from 1.6-release/master merges 2017-04-20 10:52:04 -07:00
Harsh Choudhary 800f1b588d Correct secret creation command
Private Registry FQDN also needs to be included in secret creation, otherwise Kubernetes will not be able to pull images.
2017-04-19 14:36:52 -07:00
Ahmet Alp Balkan b17c1e6b82 update-imported-docs.sh script improvements (#3446)
- avoiding cloning the full history of k8s repo, there doesn't seem to be any
  difference (--depth=1 gives the same result and fetched branches are not
  used in this script)
- quoting around variables and add '--' to some commands to separate positional
  arguments
- using subshells instead of pushd/popd stuff, easier to read IMO
- added 'set -o errexit', couldn't add 'set -o pipefail'. For some reason when
  I enable pipefail, it produces a vastly different output but I don't see any
  errors in the output.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-19 14:35:10 -07:00
Sahdev P. Zala 8bec7d7c8a Create reference link for IBM Bluemix Container Service
Create a documentation link for IBM Bluemix Container Service similar to
GCE and Azure. Also rename Softlayer references to Bluemix.

Co-Authored-By: Xavier Loup <xavier.loup@fr.ibm.com>
2017-04-19 14:32:24 -07:00
chenhuan12 cba09b7b70 fix typo
fix typo
2017-04-19 14:27:13 -07:00
Anirudh Ramanathan 8ccd40e661 Add example PDB definition (#3454)
* Fix pdb docs

* Addressed comment
2017-04-19 14:26:35 -07:00
Ahmet Alp Balkan 1acf620458 Add link to /docs/reference from API overview guide (#3452)
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-19 14:23:19 -07:00
Artem Vysotsky 73d9327c3f Update logging-stackdriver.md 2017-04-19 14:16:44 -07:00
Mike Danese 4f0afc2fa7 use more up to date docker package 2017-04-19 14:09:54 -07:00
Andrew Chen e4fcdacb4d Merge pull request #3463 from kubernetes/chenopis-3438-patch
Minor patch changes to PR #3438
2017-04-19 14:08:28 -07:00
Andrew Chen 8f872afcd7 Minor patch changes to PR #3438 2017-04-19 12:25:45 -07:00
PaulJuliusMartinez 7f0294c579 Update User Guide and Admin links to point to new resources. (#3438)
* Update links to outdated user-guide and admin docs

* Add script for updating outdated links.

* Update regex to include init-containers file.

* Pull upstream, rewrite links in and to namespaces walkthrough.
2017-04-19 10:56:47 -07:00
tanshanshan 1592494620 Update labels.md 2017-04-19 10:51:32 -07:00
Xiaoyu Zhang 187a681df7 add a shell script of PATCH (#3293)
add a  shell script of PATCH
2017-04-19 10:37:53 -07:00
chenhuan12 d94335b17a fix typo
fix typo
2017-04-19 10:34:32 -07:00
Steve Perry 38395e7b53 Move Jobs under Controllers. (#3453)
* Move Jobs under Controllers.

* Change title.
2017-04-18 20:04:48 -07:00
Steve Perry e90ba44bb8 Move etcd topic from Storage to Cluster Admin. (#3450)
* Move etcd topic from Storage to Cluster Admin.

* Fix type.
2017-04-18 17:24:54 -07:00
Steve Perry 49926988bd Fix duplicate Storage heading. (#3447) 2017-04-18 15:04:07 -07:00
Andrew Chen 852f1fe4a9 Merge pull request #3445 from ryanmcginnis/patch-2
`--apiserver-advertise-address` typo
2017-04-18 13:31:10 -07:00
Ryan McGinnis a8646ace75 Update kubeadm.md
- Running `--api-advertise-address` returns unknown flag error
- `--apiserver-advertise-address` is the correct command, so this must have been a typo
2017-04-18 12:59:40 -07:00
Bryan Boreham 1879e0a6b5 Add Weave Net as an option for ARM installs 2017-04-18 10:21:39 -07:00
haoyuan 2a5148437c update the glusterfs provisioner in persistent-volumes.md 2017-04-18 10:19:04 -07:00
Ahmet Alp Balkan 626bdd1f3c kubefed tutorial: add creating the default ns (#3105)
Currently kubefed does not create the default namespace, therefore anyone
following this doc today will hit this issue. Adding a few comments to bridge
that gap until the bug is fixed.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-17 15:23:41 -07:00
Balu Dontu 59c37ec48d vSphere Storage Policy Based Management for Containers orchestrated by vSphere 2017-04-17 14:48:58 -07:00
Steve Perry 90be2b2dd2 Move Guide topics: Namespaces. (#3437) 2017-04-17 12:56:24 -07:00
Oli Lalonde e1afcde13a Update scale-intro.html
Convert to new links
2017-04-17 09:26:01 -07:00
Xiaoyu Zhang fbfafc9738 Fix broken link:scheduling-gpus.md (#3423)
* Fix broken link:scheduling-gpus.md

Fix broken link:scheduling-gpus.md

* add link anchor

add link anchor
2017-04-17 09:17:39 -07:00
Xiaoyu Zhang b3aeab2f21 delete replicated info (#3425)
delete replicated info
2017-04-16 22:36:42 -07:00
Will Sean Don bb760d9ed2 Migrate federated deployment task to new template (#3432)
* Migrate to new task template

* Add prereq template for tasks and tutorials regarding federated clusters
2017-04-16 22:33:55 -07:00
Xiaoyu Zhang 10b4afe20f Fix broken link:determine-reason-pod-failure.md
Fix broken link:determine-reason-pod-failure.md
2017-04-16 22:24:39 -07:00
Xiaoyu Zhang 5a05c52a8e Fix broken link:pull-image-private-registry.md
Fix broken link:pull-image-private-registry.md
2017-04-16 22:24:01 -07:00
shashidharatd 8aa078ca16 Setting up CoreDNS as DNS provider for Cluster Federation 2017-04-16 22:16:46 -07:00
chenhuan12 fb394d60de fix the command output (#3405)
* fix the command output

fix kubectl get nodes output

* Update manual.md
2017-04-16 22:14:27 -07:00
Steve Perry 715f8f3382 Remove extraneous topic. (#3428) 2017-04-14 18:49:53 -07:00
Xiaoyu Zhang 586fd39d6d Fix broken link:assign-pod-node.md
Fix broken link:assign-pod-node.md
2017-04-14 16:17:53 -07:00
Xiaoyu Zhang 814392dcc9 Fix links:authenticate-across-clusters-kubeconfig.md
Fix links:authenticate-across-clusters-kubeconfig.md
2017-04-14 16:17:21 -07:00
Xiaoyu Zhang 9b1b027c97 Fix broken links:manage-deployment.md
Fix broken links:manage-deployment.md
2017-04-14 16:16:39 -07:00
Xiaoyu Zhang d26f6774d3 Fix broken link:node.md
Fix broken link:node.md
2017-04-14 16:15:10 -07:00
Xiaoyu Zhang d62c493bb0 Fix broken link:daemonset.md
Fix broken link:daemonset.md
2017-04-14 16:11:46 -07:00
Andrew Chen 15f724223e Cleanup, simplify /js/redirect.js (#3417) 2017-04-14 16:07:46 -07:00
Xiaoyu Zhang a8d0bacd4e Fix broken link:replicaset.md
Fix broken link:replicaset.md
2017-04-14 15:58:41 -07:00
Xiaoyu Zhang 4fb32e03a7 Fix broken link:walkthrough.md
Fix broken link:walkthrough.md
2017-04-14 15:58:08 -07:00
Xiaoyu Zhang cb042d45b2 Fix broken link:kubeadm.md
Fix broken link:kubeadm.md
2017-04-14 15:57:41 -07:00
Marcelo Costa 0bcf4488f0 Fixing typo 2017-04-14 15:55:09 -07:00
Xiaoyu Zhang b9069cb2fb Fix broken links:gce.md
Fix broken links:gce.md
2017-04-14 15:44:39 -07:00
houjun 24e92bf8a0 The URL of [node affinity] is wrong
[node affinity] should link to
/docs/concepts/configuration/assign-pod-node/.
2017-04-14 15:43:46 -07:00
Steve Perry 3e4c2bbbd9 Experiment: Redirect using only redirects.js. (#3413) 2017-04-14 14:02:17 -07:00
Steve Perry a1841510fb Update robots file. (#3410) 2017-04-14 12:03:26 -07:00
Steve Perry 1693e9552a Add "Disallow". (#3409) 2017-04-14 11:00:17 -07:00
Steve Perry d868bb9808 Deprecation phase 2: secrets, security-context ... (#3408) 2017-04-14 10:26:09 -07:00
Xiaoyu Zhang 43801eaa67 Fix broken links:scratch.md
Fix broken links:scratch.md
2017-04-14 10:10:03 -07:00
Andrew Chen 20413bf92b Merge pull request #3401 from zhangxiaoyu-zidif/patch-64
Fix broken link:aws.md
2017-04-14 10:08:11 -07:00
Xiaoyu Zhang 4c189a0340 Fix broken link:aws.md
Fix broken link:aws.md
2017-04-14 11:39:43 +08:00
Steve Perry b0e5322ebb Deprecation phase 2: daemons, deployments ... (#3396)
* Deprecation phase 2: daemons, deployments ...

* Remove files from TOC.

* Fix typos.
2017-04-13 17:21:45 -07:00
Steve Perry 7653d204cb Move Guide topic: kubeadm reference. (#3395) 2017-04-13 16:31:14 -07:00
Steve Perry ad5a6e911f Move Guide topics: Federation reference. (#3394) 2017-04-13 16:23:19 -07:00
Xiaoyu Zhang f649ae3142 Fix broken link:photon-controller.md (#3393)
* Fix broken link:photon-controller.md

Fix broken link:photon-controller.md

* Fix broken link:photon-controller.md

Fix broken link:photon-controller.md
2017-04-13 16:08:33 -07:00
ihutchin dee3def6c1 Moving etcd topic to Concepts. 2017-04-13 15:40:53 -07:00
Xiaoyu Zhang 956578f6df Fix broken link:web-ui-dashboard.md
Fix broken link:web-ui-dashboard.md
2017-04-13 15:36:41 -07:00
Xiaoyu Zhang 24856ca18b Fix broken link:secret.md
Fix broken link:secret.md
2017-04-13 15:35:53 -07:00
Xiaoyu Zhang e2a6db05d0 Fix broken links:deployment.md
Fix broken links:deployment.md
2017-04-13 15:35:37 -07:00
Janet Kuo f3bcd0fb28 Remove outdated verification files for webmasters tools 2017-04-13 15:34:58 -07:00
Steve Perry 5d2c37abd9 Move Guide topic: Upgrade etcd. (#3391) 2017-04-13 15:30:42 -07:00
Xiaoyu Zhang e7fba44d3d Fix broken link:service.md
Fix broken link:service.md
2017-04-13 15:10:03 -07:00
Andrew Seigner 07d05b7ceb fix spelling in hpa docs 2017-04-13 15:08:39 -07:00
Xiaoyu Zhang 25423c4811 Fix broken links:horizontal-pod-autoscale.md
Fix broken links:horizontal-pod-autoscale.md
2017-04-13 15:07:02 -07:00
Andrew Chen b8e1899244 Merge pull request #3386 from zhangxiaoyu-zidif/patch-54
Fix broken links:replicationcontroller.md
2017-04-13 15:04:19 -07:00
Xiaoyu Zhang d080966954 Fix broken links:replicationcontroller.md
Fix broken links:replicationcontroller.md
2017-04-14 06:00:44 +08:00
Steve Perry eff5ac2694 Move guide topics: Upgrade for 1.6. (#3383)
* Move guide topics: Upgrade for 1.6.

* Add missing word.
2017-04-13 13:48:07 -07:00
Steve Perry f0f34f3132 Move Guide topic: Reserve Compute Resources. (#3382) 2017-04-13 13:09:42 -07:00
Steve Perry bf2640e993 Move Guide topics: Resize cluster, DNS. (#3380) 2017-04-13 12:05:40 -07:00
Steve Perry 847853b913 Move Guide topic: Explorer. (#3378) 2017-04-13 11:46:15 -07:00
Steve Perry c505b2c744 Move Guide topic: dashboard. (#3377) 2017-04-13 11:35:50 -07:00
Steve Perry 8315ef689c Move Guide topic: Projected Volume. (#3376) 2017-04-13 11:01:04 -07:00
Ramkumar Devanathan 2e8633f1f4 Update list-all-running-container-images.md 2017-04-13 10:57:48 -07:00
Joseph Crail 2377ecf401 Remove extra word 2017-04-13 10:57:17 -07:00
Andrew Morgan 998786bbd8 Typo in tutorial text 2017-04-13 10:45:45 -07:00
bradtopol b6a5ed3676 Remove inconsistent use of addons (#3327)
This is the only place in all of the documentation where addon(s) is used
instead of addons. Even though with brackets it can be read as one or more
addons, it looks strange and inconsistent with the rest of the documentation.

Signed-off-by: Brad Topol <btopol@us.ibm.com>
2017-04-13 10:13:39 -07:00
Xiaoyu Zhang ae425a5b3d Fix broken link
Fix broken link
2017-04-13 10:12:43 -07:00
Xiaoyu Zhang 0dc25c1705 Fix broken links
Fix broken links
2017-04-13 10:12:17 -07:00
Peter Lee d4d64ea35e fix link 2017-04-13 10:05:30 -07:00
David Gageot cc122a4cd8 Fix outdated links on kubeadm.md (#3341)
Fixes #3318

Signed-off-by: David Gageot <david@gageot.net>
2017-04-13 10:04:49 -07:00
Xiaoyu Zhang 01fbe68dfc Fix broken links
Fix https://kubernetes.io/docs/tutorials/clusters/apparmor/
2017-04-13 10:03:53 -07:00
Xiaoyu Zhang a84779b05c Fix broken link:admission-controllers
Fix broken link:admission-controllers
2017-04-13 10:03:14 -07:00
Ahmet Alp Balkan 8892385bc2 Update /docs/samples to v1.6
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-13 09:49:22 -07:00
Guangya Liu 79090cc7cd failure-domain is no longer used in command line arg. 2017-04-13 09:48:57 -07:00
Cao Shufeng 3486513f77 comment TODO in service account page 2017-04-13 09:47:49 -07:00
Steve Perry 8f98a5d17f Fix path. (#3364)
* Fix path.

* Remove duplicate.
2017-04-12 19:00:48 -07:00
Steve Perry d28bff7284 Move Support topics. (#3363)
* Move Support topics.

* Fix toc entry.
2017-04-12 18:42:34 -07:00
Steve Perry e4cacf8e8a Move FAQs. (#3362) 2017-04-12 17:44:28 -07:00
Ahmet Alp Balkan 46bcb5b559 tools: list minikube as a Native Tool
Fixes #2491.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2017-04-12 17:01:00 -07:00
Peter Styk e5336f6dbf Added solution Madcore.Ai (#3336) 2017-04-12 17:00:12 -07:00
Xiaoyu Zhang c29a94d108 Fix broken link (#3343)
* Fix broken link

Fix broken link

* delete redundant tags

delete redundant tags
2017-04-12 16:48:14 -07:00
Eric Chiang e57a6cd5ae docs/admin: add docs on impersonation headers 2017-04-12 16:44:24 -07:00
Steve Perry 644b415bfe Remove file from TOC. (#3361) 2017-04-12 16:31:23 -07:00
Steve Perry 03088a909f Deprecation phase 2: debugging-pods-and-rep ... (#3337)
* Deprecation phase 2: debugging-pods-and-rep ...

* Fix title.
2017-04-12 16:13:38 -07:00
Xiaoyu Zhang 9e193bd5e9 Fix broken link (#3335)
Fix broken link
2017-04-12 16:07:00 -07:00
Steve Perry 1a169b4c0c Move Guide topic: Cron Jobs. (#3334) 2017-04-12 15:54:33 -07:00
Xiaoyu Zhang 501656585e Fix broken links (#3351)
Fix broken links
2017-04-12 15:46:21 -07:00
Xiaoyu Zhang 0f2d91e27d Fix broken link (#3347)
Fix broken link
2017-04-12 15:43:35 -07:00
Xiaoyu Zhang 10236a9c91 Fix broken link (#3346)
Fix broken link
2017-04-12 15:42:52 -07:00
Xiaoyu Zhang 965e095e52 Fix broken links (#3353)
Fix broken links
2017-04-12 15:42:04 -07:00
Xiaoyu Zhang da5308a10f Fix broken link (#3344)
Fix broken link
2017-04-12 15:41:32 -07:00
Xiaoyu Zhang b89cc11f12 Fix broken link (#3342)
Fix broken link
2017-04-12 15:35:37 -07:00
Xiaoyu Zhang b66ddb82f7 Fix broken link (#3359)
* Fix broken link

Fix broken link

* Update index.html
2017-04-12 15:32:29 -07:00
Andrew Chen 11ad654cf3 Minor grammar patch to PR #2989 2017-04-12 15:20:18 -07:00
Andrew Chen bbaa93bf8a Merge pull request #3356 from zhangxiaoyu-zidif/patch-69
Fix broken links
2017-04-12 15:08:41 -07:00
Xiaoyu Zhang 19d8e9372d Fix broken links
Fix broken links
2017-04-13 06:04:30 +08:00
divyenpatel 854ac8ac52 Adding minimal set of privileges required for vSphere Cloud Provider 2017-04-12 15:03:57 -07:00
Mike Danese 44f8466d09 tls: tell cluster admins how to enable the local signer 2017-04-12 14:35:51 -07:00
Guangya Liu 74d5af68ae Added hyperlink for [Interlude: built-in node labels]. 2017-04-12 14:23:31 -07:00
Craig Bilner 857c321f74 Update _base.sass 2017-04-12 14:22:16 -07:00
Wiiliam Chang 31d0bb1810 Add the windows support description. 2017-04-12 14:19:35 -07:00
nerdondon bb9e98cd43 Migrate guide to task template 2017-04-12 14:14:22 -07:00
nerdondon 889ea782c6 Update links to supporting yaml files and a link to imperative management
Fixes #3266
2017-04-12 14:07:23 -07:00
chenhuan12 e96d972bba fix typo
fix typo
2017-04-12 14:05:28 -07:00
chenhuan12 6978f1b21d fix typo
fix typo
2017-04-12 14:04:46 -07:00
Justin Johnson ac35e49d21 Minor grammar update 2017-04-12 13:59:21 -07:00
Brandon Philips d8bef3b1f0 docs: add CoreOS Tectonic to Azure getting started (#3307) 2017-04-12 13:58:31 -07:00
chenhuan12 8e8beebbf9 fix typo
fix typo
2017-04-12 13:55:39 -07:00
Guangya Liu 9996602345 Updated doc for critical pod.
Clarified that the rescheduler should be enabled by default as a
static pod for critical pod.
2017-04-12 13:50:47 -07:00
Suraj Narwade 72c08b089f Added kube-scheduler.md file
Fixes #3063
2017-04-12 13:47:13 -07:00
Gytis 324027450b Typo in storage docs
Fix typo in  storage docs storageClasName -> storageClassName
2017-04-11 16:40:05 -07:00
Xiaoyu Zhang 07f4aec19f Fix the 404 link
Fix the 404 link
2017-04-11 15:18:35 -07:00
chenhuan12 179498ae3e fix typo
fix command kubectl get pods -w -l app=nginx output
2017-04-11 15:08:42 -07:00
Steve Perry 2954d2b337 Move Guide topic: ConfigMap. (#3333) 2017-04-11 13:33:08 -07:00
Steve Perry 2e9ceea926 Move Guide topic: H Pod Autoscaling Walkthrough. (#3332)
* Move Guide topic: H Pod Autoscaling Walkthrough.

* Fix title
2017-04-11 13:06:51 -07:00
Steve Perry 8a0771131e Deprecation phase 2: kubefed. (#3331) 2017-04-11 11:44:55 -07:00
Steve Perry f666fda26e Deprecation phase 2: admin/index ... (#3330)
* Deprecation phase 2: admin/index ...

* Adjust TOCs.

* Add limitrange.
2017-04-11 11:21:58 -07:00
Steve Perry 91bb05c1a5 Deprecation phase 2: config-best-practices ... (#3328) 2017-04-11 10:42:43 -07:00
Steve Perry 5072b1cb91 Deprecation phase 2: container-environment ... (#3326) 2017-04-11 10:23:57 -07:00
Steve Perry b7b0443fac Deprecation phase 2: jobs (#3323)
* Deprecation phase 2: jobs

* Adjust reference TOC.
2017-04-11 10:08:35 -07:00
Steve Perry 6dba8d1696 Deprecation phase 2: managing-deployments ... (#3309) 2017-04-10 17:24:55 -07:00
Steve Perry 43639f166d Deprecation phase 2: kubectl binary_release ... (#3308)
* Deprecation phase 2: kubectl binary_release ...

* Adjust
2017-04-10 17:08:15 -07:00
Murad Korejo 19305b4043 Improvements to kubernetes-basics/expose-intro.html (#3103)
* Massive updates to expose-intro.html

Updates to the non-interactive tutorial on exposing apps via services

* more updates to expose-intro

* fixed broken link

* fixed some wording

* removed extra space

* sub backticks for code and newline

* added small legend to fist svg

* fixed svg scaling

* removed extra div
2017-04-10 16:40:52 -07:00
Vyacheslav Semushin 8aad74ec5b test/examples_test.go: validate docs/user-guide/pod-security-policy/psp.yaml (#3100) 2017-04-10 16:30:16 -07:00
xiangpengzhao f487ce2510 Move cron jobs to keep glossary in alphabetical order. 2017-04-10 15:40:33 -07:00
Ahmed Kamal 34154553ab Fix API server args
--runtime-config=batch/v2alpha1=true (=true) was missing causing API server to crash on 1.5.3
2017-04-10 15:37:43 -07:00
Andrew Chen 817fff899e Remove /redirects.rb (#3305)
Will restore when Prod uses Netlify
2017-04-10 15:12:09 -07:00
Steve Perry fe10be9677 Move Guide topic: kubelet Garbage Collection. (#3301) 2017-04-10 14:24:07 -07:00
Steve Perry a43d526860 Move Guide topic: Salt. (#3306) 2017-04-10 14:09:21 -07:00
Steve Perry 9b65c00368 Fix tilte. (#3304) 2017-04-10 13:55:34 -07:00
Andrew Chen 005fce03fe WIP: Cleanup /docs/contribute/ migration (#3278)
* WIP: Cleanup /docs/contribute/ migration

* #3278 Changing /docs/contribute to /docs/home/contribute (#3285)

* WIP: #3278 Adding redirects /docs/contribute/ /docs/home/contribute/

* WIP: #3278 modifying /docs/contribute/ paths within files to /docs/home/contribute/

* Revert "WIP: #3278 Adding redirects /docs/contribute/ /docs/home/contribute/"

This reverts commit a82efdee505d7a409cb3c86240cc0ee976a2e566.

* WIP: #3278 Adding redirects /docs/contribute/ /docs/home/contribute/

* WIP: #3278 Correcting syntax mistake in redirect.js

* WIP: #3278 Correcting another syntax mistake in redirect.js

* WIP: #3278 Removing deprecated files so redirects work

* Removing the #

* WIP: #3278 Updating pattern in redirect.js

* WIP: #3278 Removed the wrong # previously redirect.js
2017-04-10 13:24:14 -07:00
Steve Perry 299142058a Move Guide topic: HA Master. (#3303) 2017-04-10 13:19:56 -07:00
Steve Perry 34f5500cd9 Move Guide topic: Addons. (#3302) 2017-04-10 12:01:19 -07:00
Steve Perry a82a9d5dcc Update weave.md 2017-04-10 10:32:14 -07:00
Steve Perry 29ddf7140e Move Guide topics: NetworkPolicy. (#3298) 2017-04-10 10:26:28 -07:00
Steve Perry 92e5397113 Add topics to TOC. (#3283) 2017-04-08 10:45:41 -07:00
Andrew Chen b7fc1a9bfb Fix PR #3274 (#3276)
* Fix PR #3274

* remove unecessary template

* remove page title
2017-04-07 15:38:50 -07:00
Jared 60f744d4e3 Add clearer links to Kubernetes API migration pages 2017-04-07 14:03:50 -07:00
Vladimir Rutsky e3b8f3d718 fix link formatting 2017-04-07 14:02:44 -07:00
Steve Perry f02c10b679 Make a Setup section. (#3227) 2017-04-07 13:46:56 -07:00
Andrew Chen 0147c70ef6 Remove left nav from search page 2017-04-07 13:19:57 -07:00
Jared ae5e09027e Fixed link to page templates. 2017-04-07 13:02:28 -07:00
Andrew Chen 7285fcd1ac Corresponding changes to Reference landing page 2017-04-07 12:21:22 -07:00
Andrew Chen c3f063ca35 Fix Reference ToC links 2017-04-07 12:21:22 -07:00
Phillip Wittrock 7b1c8f8e91 Add warning about using kubectl replace 2017-04-06 15:05:38 -07:00
Andrew Chen 983f778c9b Merge pull request #3259 from ahmetb/nuke-swaggerui
Delete swagger-ui
2017-04-06 14:54:17 -07:00
Ahmet Alp Balkan 4bb4a9f1e2 Delete swagger-ui
Deleting swagger-ui and setting up a redirect to Reference section.

Closes #1924
Fixes #2220

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-06 14:34:37 -07:00
Andrew Chen 1fead33bd5 Merge pull request #3257 from kubernetes/chenopis-redirects-patch1
modify redirect.rb
2017-04-06 14:31:16 -07:00
Andrew Chen a4c53a98fe Fix redirect.rb 2017-04-06 14:19:27 -07:00
Ahmet Alp Balkan 9e20c67daf Remove kubectl installation instructions from release .tar.gz
Kubernetes release .tar.gz no longer provides binaries. So the existing
instructions are invalid (#2815).

User has to get the .tar.gz file and then run a script, only to download them
from storage.googleapis.com/kubernetes-release. That's already what's documented
in the "install via curl" section.

Therefore deleting "Extract kubectl from Release .tar.gz" section.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2017-04-06 13:58:35 -07:00
Ahmet Alp Balkan c2b74acd1f hello-minikube: Simplify kubectl installation instructions for macOS
People are hitting issues copy-pasting the complicated way to install
`kubectl` and we're suggesting them to `sudo mv` binaries to /usr/local/bin.
That is not very ideal. Instead suggesting users to use Homebrew. I think it's
ok for this tutorial, as the tutorial already uses Homebrew to install
other stuff, plus it's a much better way than `sudo mv`ing.

Closes #2478.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-06 13:57:18 -07:00
suresh ae6a948eb0 typo on option (#3233) 2017-04-06 13:54:49 -07:00
Ahmet Alp Balkan 97f38923e6 container-lifecycle-hooks: add link to the task (#3236)
Adding a link to the corresponding task as it is hard to discover.

Fixes #3094.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2017-04-06 13:54:35 -07:00
Charlie R.C b7b9252666 change authorizationMode to authorizationModes 2017-04-06 13:42:53 -07:00
Cynerva e469ebe322 Update allow-privileged info for Ubuntu, add docker registry section (#3207)
* Update allow-privileged info for Ubuntu, add docker registry section

* Clean up wording in ubuntu/operational-considerations
2017-04-06 13:40:28 -07:00
houjun 34cd28dbf6 Node conditions should contain MemoryPressure and DiskPressure
Node conditions should also contain MemoryPressure and DiskPressure.
2017-04-06 13:37:27 -07:00
chenhuan12 2dd8f791df replace job.yaml.txt with job.yaml
replace job.yaml.txt with job.yaml
2017-04-06 13:36:03 -07:00
Michael Fraenkel ec622e1186 Document pod lifecycle when using EnvFrom
- Pods do not start with missing ConfigMaps or Secrets
- Pods do not start with missing keys in ConfigMaps or Secrets
- Pods start with invalid keys when referring to entire ConfigMaps or
Secrets.  An event documents the skipped keys from said resource.
2017-04-05 16:31:23 -07:00
Slava Semushin 8d8409baeb docs/concepts/policy/pod-security-policy: list all available PSP fields.
This also adds a couple of improvements:
- rename SELinuxContext to SELinux
- improve options displaying
2017-04-05 16:23:40 -07:00
Eric Chiang df099406ed docs/admin: clarify SecurityContextDeny and when it should be used 2017-04-05 16:23:08 -07:00
William Chang 216734a813 Fix the kubeadm getting-started-guides link. (#3201)
* Fix the kubeadm getting-started-guides link.

* Change the url, use the root of the site as the base.
2017-04-05 16:15:50 -07:00
chenhuan12 afc29d6cb4 fix typo
fix typo
2017-04-05 11:14:23 -07:00
Ahmet Alp Balkan be18111dba More meaningful links for the footer
This replaces the two buttons on the right of the footer.

It does not seem like get.k8s.io is useful to anyone. Replacing it with the
installation guide and avoiding K8s abbreviation in these buttons.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-04-05 11:12:34 -07:00
Cao Shufeng 6aed52c088 Update description about serviceaccount token controller
This change specifies how to enable token controller in
controller-manager.
2017-04-04 14:06:13 -07:00
Jordan Liggitt 4391c903ce automountServiceAccountToken documentation 2017-04-04 14:02:34 -07:00
mbohlool d42d3983fd Add python client to "Programmatic access to the API" section 2017-04-04 14:00:44 -07:00
Andrew Chen 3a3e4dc1f5 Address issue #3072 for apps (#3228)
* Address issue #3072 for apps

* Add Autoscaling, Batch, and Extensions
2017-04-04 13:43:47 -07:00
Casey Davenport ea34587002 Remove outdated Calico guide in favor of kubeadm 2017-04-04 09:51:35 -07:00
Lucas Käldström cf430cd261 Merge pull request #3223 from robholland/patch-1
Fix typo
2017-04-04 17:23:28 +03:00
Rob Holland f416b8a055 Fix typo 2017-04-04 09:29:16 +01:00
Steve Perry 84107352e4 Move Guide topic: Horizontal Pod Autoscalint. (#3218) 2017-04-03 18:54:13 -07:00
Steve Perry 152b6f2743 Move Guide topic: Pod Security Policies. (#3215) 2017-04-03 18:38:13 -07:00
Steve Perry ab1302a4dc Move Guide topic: Pod Preset. (#3213) 2017-04-03 17:40:48 -07:00
Andrew Chen d2ff41b6a5 Move GPU Support to Tasks (#3212)
* Move User Guides/GPU Support to Tasks/Managing GPUs/Scheduling GPUs

* fix typo in tasks.yml

* change discussion to steps
2017-04-03 17:09:43 -07:00
Vish Kannan 0d40264361 adding documentation for GPU support (#3018)
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2017-04-03 15:28:41 -07:00
xiangpengzhao f4eec77809 Fix ScheduledJobs to CronJobs 2017-04-03 14:01:52 -07:00
Andrew Chen 0aa8981b48 Merge pull request #3210 from kubernetes/chenopis-3168-redirect
Limit resource-quota redirect
2017-04-03 13:47:07 -07:00
Andrew Chen 8529eec655 Limit resource-quota redirect 2017-04-03 13:40:29 -07:00
xiangpengzhao 0d7f9a63df Link Release Notes to CHANGELOG.md 2017-04-03 13:31:49 -07:00
Steve Perry 5fe546b09d Move Guide topic: ThirdPartyResources. (#3209)
* Move Guide topic: ThirdPartyResources.

* Fix link.
2017-04-03 13:22:52 -07:00
Gunjan Patel 521e7f076a Update calico docs link to the latest version (#3169) 2017-04-03 13:04:23 -07:00
Steve Perry 418771e0a5 Move Guide topic: Service Accounts. (#3208)
* Move Guide topic: Service Accounts.

* Remove TODOs.
2017-04-03 12:31:32 -07:00
Steve Perry d1bcac468a Move Guide topic: Services. (#3206) 2017-04-03 12:10:09 -07:00
nerdondon aa83d54abb Migrate to new task template 2017-04-03 12:01:59 -07:00
Steve Perry 7b95ad4ca0 Move Guide topic: Security Context. (#3205) 2017-04-03 11:47:25 -07:00
Xiaoyu Zhang f1f43e3f6a delete one redundant space (#3165)
delete one redundant space
2017-04-03 11:39:16 -07:00
Andrew Chen ecead4c43c Merge pull request #3163 from tgraf/add-cilium
Add cilium project
2017-04-03 11:38:38 -07:00
Andrew Chen 4262df1669 Merge branch 'master' into add-cilium 2017-04-03 11:36:06 -07:00
Justin Santa Barbara 19327529b1 AWS kube-up is removed in 1.6 2017-04-03 11:33:25 -07:00
chenhuan12 72be3e19d3 replace configfile.json with config.json
replace configfile.json with config.json
2017-04-03 11:28:57 -07:00
Steve Perry 122410bc34 Move Guide topic: Secrets. (#3204) 2017-04-03 11:02:45 -07:00
Peter Lee 67f0173d50 Update link
Update the link to where the origin link finally pointed to.
2017-04-03 10:48:22 -07:00
Steve Perry a243c28888 Move Guide topic: Replication Controller. (#3203)
* Move Guide topic: Replication Controller.

* Add included file.
2017-04-03 10:23:03 -07:00
Andrew Chen 6ed0c34d2a Remove swagger-ui link, fix page.version variable (#3185)
* Remove swagger-ui link, fix page.version variable

* remove swagger-ui redirect

* use 2 decimal version for cluster-large.md

* fix swagger-ui message

* replace URL w/ final destination

* address feedback

* add link to swagger.json at https://github.com/kubernetes/kubernetes/blob/master/api/openapi-spec/swagger.json

* remove redundant sentence
2017-04-03 01:13:10 -07:00
Steve Perry 9b5e8bac46 Pods (#3191)
* Move Guide topic: Pods.

* Fix link.

* Fix TOC entry.
2017-03-31 16:31:05 -07:00
Andrew Chen df63f964ee fix robots.txt 2017-03-31 16:23:30 -07:00
Steve Perry ccadfc2ca8 Move Guide topic: Pods. (#3190)
* Move Guide topic: Pods.

* Fix link.
2017-03-31 16:21:13 -07:00
Steve Perry d7ed85504e Move Guide topic: Pet Set. (#3188)
* Move Guide topic: Pet Set.

* Add included file.
2017-03-31 16:00:55 -07:00
Steve Perry edd0645def Move Guide topic: Nodes. (#3187) 2017-03-31 15:28:57 -07:00
Steve Perry 504327c0a1 Move Guide topic: Network Policies. (#3184) 2017-03-31 14:06:32 -07:00
Steve Perry 3c23d75133 Move Guide topics: Names, Namespaces. (#3183) 2017-03-31 13:50:16 -07:00
Steve Perry dc75a8f071 Move Guide topic: Ingress. (#3181) 2017-03-31 13:25:41 -07:00
Steve Perry de895fbf5a Move Guide topic Replica Sets. (#3180) 2017-03-31 13:10:28 -07:00
steveperry-53 2edbeae5c9 Remove link to evolving TOC document. 2017-03-31 13:07:29 -07:00
Steve Perry e35313c657 Move Guide topic: Deployments (#3179)
* Move Guide topic: Deployments

* Move included file.
2017-03-31 12:13:47 -07:00
Steve Perry eb657dfd9e Move Guide topic: Daemon Sets. (#3178)
* Move Guide topic: Daemon Sets.

* Fix include path.
2017-03-31 10:56:27 -07:00
Andrew Chen 65b6d0b682 WIP: Add redirect for V1 paths (#3160)
* Add redirect for V1 paths

* fix api-reference and kubectl redirects

* fix bugs

* fix regex

* fix redirect URL

* more debug

* global match

* fix regexp

* remove debug

* generalize

* address @foxish feedback
2017-03-31 10:48:37 -07:00
Steve Perry 6a2366314e Move Guide topic: Annotations. (#3177) 2017-03-31 10:33:26 -07:00
Steve Perry 151a19cbc7 Move Guide topic: Persistent Volumes. (#3176) 2017-03-31 10:10:44 -07:00
Steve Perry abc795d19d Move Guide topic: Cluster Managemet. (#3164) 2017-03-30 18:16:57 -07:00
Steve Perry 73eebdd337 Fix Home left nav. (#3162)
* Fix Home left nav.

* Experiment

* Experiment
2017-03-30 17:19:19 -07:00
Thomas Graf dd20e14431 Add cilium project 2017-03-31 01:52:59 +02:00
Andrew Chen da871d8f56 Merge pull request #3158 from kubernetes/chenopis-1.6-patch6
Fix api-reference/v1/definitions links
2017-03-30 15:07:55 -07:00
Andrew Chen 8a6fedf1c8 fix api-reference/v1/definitions links 2017-03-30 14:23:42 -07:00
Steve Perry c5e9309a43 Put home page in left nav. (#3157)
* Put home page in left nav.

* Experiment

* Update nav.

* Remove 2 topics from TOC check.
2017-03-30 14:21:26 -07:00
Steve Perry 53d1bbda70 Update stage-documentation-changes.md
Increment Docker version.
2017-03-30 13:25:51 -07:00
Phillip Wittrock bb2304636c Merge pull request #3154 from yogendra/patch-1
Fixed example for "Accession the Service"
2017-03-30 10:00:03 -07:00
jianglingxia c663e0077f amend the url of debug pods
/docs/tasks/debug-application-cluster/debug-pod-replication-controller/#debugging-pods
2017-03-30 09:46:53 -07:00
George Crawford ac47af4a64 Update stale Host folder sharing docs
Updated to match https://github.com/kubernetes/minikube/blob/master/README.md.

I can't see why this file even exists - it will get out of date frequently. Why not just link to the minikube project?
2017-03-30 09:44:37 -07:00
jianglingxia 86f4427e3a change the link
the url of releases
2017-03-30 09:42:08 -07:00
jianglingxia 019bc68027 delete the redundancy /
resourcequota
2017-03-30 09:41:16 -07:00
Xiaoyu Zhang dfda372c06 update and fix links
update and fix links
2017-03-30 09:39:27 -07:00
chenhuan12 b7f4a612a4 fix typo
fix command kubectl get deployment,svc,pods output
2017-03-30 09:38:21 -07:00
yupengzte 054d08df96 Delete useless spaces
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-30 09:38:03 -07:00
yupengzte 914e779c97 Fix typo
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-30 09:37:14 -07:00
chenhuan12 5d3a78371c fix typo
fix command kubectl describe secret test-secret output
2017-03-30 09:36:46 -07:00
Xiaoyu Zhang a8465ce1f0 Update links from v1.5 to v1.6
Update links from v1.5 to v1.6
2017-03-30 09:36:11 -07:00
Xiaoyu Zhang 5923a56b88 update links v1.5 to v1.6
update links v1.5 to v1.6
2017-03-30 09:35:37 -07:00
chenhuan12 6b02e280d8 fix typo
1、fix command kubectl get crontab output
2、fix command kubectl get crontab -o json output
2017-03-30 09:34:51 -07:00
chenhuan12 a19701dea4 fix typo
fix typo
2017-03-30 09:34:18 -07:00
yupengzte f9fa1464fa The first letter should be capital letter
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-30 09:29:45 -07:00
Xiaoyu Zhang 7074634eb5 Update links from v1.5 to v1.6
Update links from v1.5 to v1.6
2017-03-30 09:28:53 -07:00
Xiaoyu Zhang 9b2da54adc Update links from v1.5 to v1.6
Update links from v1.5 to v1.6
2017-03-30 09:28:10 -07:00
Xiaoyu Zhang 0c39b496e0 Update links from v1.5 to v1.6
Update links from v1.5 to v1.6
2017-03-30 09:27:35 -07:00
Xiaoyu Zhang 3594176853 update links from v1.5 to v1.6
update links from v1.5 to v1.6
2017-03-30 09:26:55 -07:00
chenhuan12 5ffc79499c fix typo
fix typo
2017-03-30 09:25:09 -07:00
Peter Lee 7c01af28cd fix typo 2017-03-30 09:24:24 -07:00
Xiaoyu Zhang 0937a5ff2a update links from v1.5 to v1.6
update links from v1.5 to v1.6
2017-03-30 09:22:37 -07:00
Yogendra Rampuria - Yogi 8791babf36 Fixed example for "Accession the Service"
Example stated that a "frontend receives traffic from backend". It should be "frontend sends traffic to backend"
2017-03-30 23:35:34 +08:00
Steve Perry cfd011166d Move topics to deprecation phase 2. (#3123) 2017-03-29 17:21:24 -07:00
Andrew Chen a9c4b410e2 Remove superfluous headers in kubectl page (#3121) 2017-03-29 16:40:08 -07:00
Andrew Chen 0ada08bdbc Merge pull request #3120 from kubernetes/chenopis-1.6-patch4
Remove redundant User Guide header in ToC
2017-03-29 16:29:52 -07:00
Andrew Chen 3635bb567b Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into chenopis-1.6-patch4
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Moving topics to deprecation phase 2. (#3119)
2017-03-29 16:25:11 -07:00
Andrew Chen 2e6fba7bab Remove redundant User Guide header in ToC 2017-03-29 16:23:28 -07:00
Steve Perry bc013101fb Moving topics to deprecation phase 2. (#3119) 2017-03-29 16:04:05 -07:00
Andrew Chen 827aa035e7 Merge pull request #3118 from kubernetes/chenopis-1.6-patch3
Fix Docs Home, remove redundancy
2017-03-29 15:53:16 -07:00
Andrew Chen 4c811e3647 Fix Docs Home, remove redundancy 2017-03-29 15:45:07 -07:00
Steve Perry 346e6466c5 Change What is Kubernetes to deprecation phase 2. (#3117) 2017-03-29 15:31:55 -07:00
Xiaoyu Zhang 3fe59136e1 Fix invalid links
PersistentVolumeSpec is not independent and belongs to persistentvolumeclaim. So I use "/docs/api-reference/v1.6/#persistentvolumeclaim-v1-core".
2017-03-29 15:19:48 -07:00
Xiaoyu Zhang b7e1cd4e19 Fix invalid links
Fix invalid links
2017-03-29 15:19:17 -07:00
Xiaoyu Zhang 242178bdee Fix typo
Fix typo
2017-03-29 15:18:48 -07:00
Xiaoyu Zhang 7168b1529b Fix the link
Fix the link
2017-03-29 15:18:24 -07:00
Xiaoyu Zhang 01fd3e3fcd Fix invalid link
Fix invalid link
2017-03-29 15:18:01 -07:00
Xiaoyu Zhang 5e9904a90b Fix invalid link
Fix invalid link
2017-03-29 15:15:13 -07:00
Xiaoyu Zhang 76f9bc181f Fix invalid url
Fix invalid url. The original link does not exist.
2017-03-29 15:14:40 -07:00
Xiaoyu Zhang ce3fc44034 Fix invalid link
Fix invalid link
2017-03-29 15:14:19 -07:00
Xiaoyu Zhang 58f231277a Fix invalid links
Fix invalid links
2017-03-29 15:13:59 -07:00
Steve Perry c57fad453f Move Support topics. (#3108)
* Move Support topics.

* Update stage-documentation-changes.md

* Update stage-documentation-changes.md
2017-03-29 15:11:59 -07:00
Slava Semushin 0e8f7ded2d Add PodSecurityPolicy admission controller. 2017-03-29 13:39:42 -07:00
Andrew Chen 05f949d7a2 Change version variable to v1.6 (#3060)
* Change version variable to v1.6

* change to v1.6.0 to match branch tagging in kubernetes/kubernetes (https://github.com/kubernetes/kubernetes/tree/v1.6.0/docs/)
2017-03-29 13:18:53 -07:00
Bruno Vernay d41c5973f2 Wrong URL for kubelet-tls-bootstrapping
The URL is https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/
2017-03-29 13:05:39 -07:00
Francois-Guillaume Ribreau 2b96cb3fd0 Fix link 2017-03-29 13:04:29 -07:00
Aditya Dani fc1c1645c7 Add PortworxVolume on the Volume Concepts Page under docs/concepts/storage/volumes.md. 2017-03-29 12:47:02 -07:00
Steve Perry 875216a5c4 Move topics to deprecation phase 2. (#3099) 2017-03-29 10:46:46 -07:00
chenhuan12 dc6df6b28b fix typo
fix typo
2017-03-29 10:38:08 -07:00
chenhuan12 a366bfb7a0 fix typo
fix typo
2017-03-29 10:37:03 -07:00
chenhuan12 10a37d1bb8 fix typo
fix typo
2017-03-29 10:36:39 -07:00
Xiaoyu Zhang 31b62a24a4 Fix the links
Fix the links
2017-03-29 10:35:45 -07:00
Xiaoyu Zhang e2fa7ae2db Fix the links
Fix the links
2017-03-29 10:34:59 -07:00
Xiaoyu Zhang 5d60b4e955 Fix the links
Fix the links
2017-03-29 10:34:38 -07:00
Xiaoyu Zhang 8f8c4adb05 update links
update links
2017-03-29 10:34:19 -07:00
Xiaoyu Zhang 7bff3503ea update links
update links
2017-03-29 10:33:56 -07:00
Xiaoyu Zhang 9fdc419652 update links
update links
2017-03-29 10:33:33 -07:00
Xiaoyu Zhang 1dba0ecf99 update and fix urls
update and fix urls
2017-03-29 10:33:07 -07:00
Xiaoyu Zhang c4e66aa268 Fix invalid links
Fix invalid links
2017-03-29 10:32:40 -07:00
Xiaoyu Zhang 0586165262 Fix invalid link
Fix invalid link
2017-03-29 10:32:17 -07:00
Xiaoyu Zhang a3865cd39b Fix invalid link
Fix invalid link
2017-03-29 10:31:53 -07:00
Xiaoyu Zhang c2538ec074 Fix invalid link
Fix invalid link
2017-03-29 10:31:05 -07:00
Xiaoyu Zhang a3f970965f Fix invalid url
Fix invalid url
2017-03-29 10:30:43 -07:00
Xiaoyu Zhang d6a62be07f update link to v1.6
update link to v1.6
2017-03-29 10:30:22 -07:00
Xiaoyu Zhang ab8161a790 Fix url of kubectl cmd (#3069) 2017-03-29 10:29:56 -07:00
Xiaoyu Zhang b8734c877b Fix urls of kubectl cmd (#3068) 2017-03-29 10:29:32 -07:00
Xiaoyu Zhang a1dcd6f4e8 Fix url of kubectl cmd (#3066)
Fix url of kubectl cmd
2017-03-29 10:28:52 -07:00
Xiaoyu Zhang 69cd465278 update kubectl commands (#3064)
The original links are all invalid. I change them all to v1.6 commands.
Hope it it helpful. :)
2017-03-29 10:24:44 -07:00
Xiaoyu Zhang 59ea361df2 Fix the url (#3051)
* Fix the url 

It is as same as PR3050

* update to v1.6

update to v1.6

* update to v1.6
2017-03-29 10:15:03 -07:00
Xiaoyu Zhang 67420be850 Fix the URL (#3057)
* Fix the pr

As same as PR3050

* update to v1.6

update to v1.6

* update to v1.6

update to v1.6
2017-03-29 10:14:25 -07:00
Xiaoyu Zhang fdc6a5afd6 Fix the urls (#3052)
* Fix the urls

Fix the urls

* update to v1.6

update to v1.6

* update to v1.6
2017-03-29 10:12:16 -07:00
Xiaoyu Zhang 0fac6c3466 Fix the url (#3050)
* Fix the url

The original url does not exit. I want to replace it with v1.5.

* update to v1.6

update to v1.6

* update to v1.6
2017-03-29 10:11:03 -07:00
Pavel Shevchuk eb23f17ca7 Fixed typos in services-firewalls.md (#2760)
* Fixed typos in services-firewalls.md

Fixed two typos: blancer -> balancer

* Fixed typo blancer -> balancer in configure-cloud-provider-firewall.md
2017-03-29 10:04:51 -07:00
Charlie R.C 88a7b4bdbf update authorizationMode 2017-03-29 10:02:21 -07:00
Steve Perry dfd2fed09c Move Guide topic: Master-Node Communication. (#3098) 2017-03-29 09:20:12 -07:00
Steve Perry 750f9323c5 Fix include paths. (#3096) 2017-03-29 08:57:54 -07:00
Dr. Stefan Schimanski daded6b51a Merge pull request #3067 from zhangxiaoyu-zidif/patch-39
Fix urls of kubectl cmd
2017-03-29 11:38:23 +02:00
Xiaoyu Zhang 3015493bca Merge branch 'master' into patch-39 2017-03-29 16:25:00 +08:00
Lucas Käldström 85f7c52979 Merge pull request #3074 from srueg/patch-1
Fix typo
2017-03-29 10:16:50 +02:00
Simon Rüegg 25ade87f9f Fix typo 2017-03-29 09:06:31 +02:00
Xiaoyu Zhang 801bb14040 Merge branch 'master' into patch-39 2017-03-29 14:29:31 +08:00
Steve Perry 5dc5694243 Move Guide topic: Multiple Schedulers. (#3073)
* Move Guide topic: Multiple Schedulers.

* Fix include paths.
2017-03-28 22:07:26 -07:00
Steve Perry b974f72bd3 Move Guide topic: Assigning Pods to Nodes. (#3071) 2017-03-28 20:59:32 -07:00
Xiaoyu Zhang 693bd1e2cb Fix urls of kubectl cmd
Fix urls of kubectl cmd
2017-03-29 10:58:07 +08:00
Steve Perry b60e2fe334 More (#2966) 2017-03-28 19:49:43 -07:00
Andrew Chen 9286e03cc5 Merge pull request #3061 from kubernetes/chenopis-1.6-patch3
Fix rewrite of /index.md to /
2017-03-28 16:13:48 -07:00
Andrew Chen 9c090f0709 Fix rewrite of /index.md to / 2017-03-28 16:05:48 -07:00
Xiaoyu Zhang 280977ecf9 Fix error link 2017-03-28 15:10:57 -07:00
Andrew Chen 64d07aef9c Merge pull request #3058 from zhangxiaoyu-zidif/patch-35
Fix a typo
2017-03-28 15:10:10 -07:00
Xiaoyu Zhang 879507f72c Fix a typo
add a slash
2017-03-29 05:59:10 +08:00
Xiaoyu Zhang e37768c7b6 update urls (#3056)
* update urls

relative path may be fine :)

* change them to new ones

change them to new ones
2017-03-28 14:48:12 -07:00
Xiaoyu Zhang eef81f78b3 update the url
This link may be much better.
2017-03-28 14:34:02 -07:00
Kenneth Owens 9b686b38b3 Updates ZooKeeper example to use the Anti-Affinity field instead of annotation (#3013)
* Updates ZooKeeper example to use the Anti-Affinity field instead of the
1.5 annotation.

* Changed podAntiAffinity field references to lower case
Changed references to PodAntiAffinity object/concept to plain text
Changed link to PodAntiAffinity to reference subsection
2017-03-28 14:29:34 -07:00
Xiaoyu Zhang d7f3507d34 Fix a typo (#2991)
* Fix a typo

According to the context. The word should be "underspecified" meaning "insufficient".

* Fix the pr

Fix the pr
2017-03-28 13:38:22 -07:00
Andrew Chen d1b8de9051 Merge pull request #3054 from zhangxiaoyu-zidif/patch-29
Fix the urls
2017-03-28 13:35:09 -07:00
Xiaoyu Zhang f7494aff36 Fix the urls
Fix the urls
2017-03-29 04:26:00 +08:00
Elijah C. Voigt c942340410 user-guide/services: json -> yaml examples 2017-03-28 12:53:39 -07:00
devin-donnelly 1363e5b8a0 Merge pull request #3048 from kubernetes/release-1.6
Merge Release 1.6 into Master, publishing documentation for 1.6 release
2017-03-28 12:07:25 -07:00
Andrew Chen 70d3939004 Rename accessing-the-api.md title (#3049)
* Rename accessing-the-api.md title

* remove unneeded Overview header
2017-03-28 12:02:16 -07:00
Andrew Chen 1c902d0fde Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: (21 commits)
  revert issue URL, turn into link
  docs/admin/authorization: remove duplicated phrase (#3045)
  update urls
  Fix a typo and update one url
  update urls
  update a url
  update urls
  update invalid links
  update some urls
  modify the url of RestartPolicy (#3034)
  Fix the url
  amend the url
  amend the readiness probes (#3031)
  modify the link url (#3030)
  change the url (#3029)
  Fix the typo.
  Fix the link url
  delete redundant example
  fix typo
  change a link's url
  ...

# Conflicts:
#	docs/admin/authorization/index.md
2017-03-28 11:33:09 -07:00
Andrew Chen 30f0d4d542 Merge pull request #3047 from kubernetes/chenopis-patch-2
revert issue URL, turn into link
2017-03-28 11:30:48 -07:00
Andrew Chen dc19b3109d revert issue URL, turn into link 2017-03-28 11:23:21 -07:00
Vyacheslav Semushin 6c315b73de docs/admin/authorization: remove duplicated phrase (#3045)
* docs/admin/authorization: remove duplicated phrase.

* docs/admin/authorization: tiny improvement.
2017-03-28 11:13:45 -07:00
Xiaoyu Zhang 090f7c9608 update urls
update urls
2017-03-28 11:07:07 -07:00
Xiaoyu Zhang ba0ba4930c Fix a typo and update one url
Fix a typo and update one url
2017-03-28 11:04:08 -07:00
Xiaoyu Zhang 37b086593d update urls
update urls
2017-03-28 11:02:50 -07:00
Xiaoyu Zhang dcc5633e03 update a url
change the url to a  relative one
2017-03-28 11:00:14 -07:00
Xiaoyu Zhang 38c9367671 update urls
update urls
2017-03-28 10:56:32 -07:00
Xiaoyu Zhang f326993ce4 update invalid links
update invalid links
2017-03-28 10:51:31 -07:00
Xiaoyu Zhang ed33fe51d4 update some urls
update some urls of the file
2017-03-28 10:49:44 -07:00
jianglingxia 6ac0388165 modify the url of RestartPolicy (#3034)
/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
2017-03-28 10:38:45 -07:00
Xiaoyu Zhang 5ad1c725e0 Fix the url
Fix the url
2017-03-28 10:38:03 -07:00
Xiaoyu Zhang af1f6d5a2d amend the url
Fix the wrong link
2017-03-28 10:36:04 -07:00
jianglingxia 6c3971d9f4 amend the readiness probes (#3031)
correct the url
2017-03-28 10:34:56 -07:00
jianglingxia cd91dac59e modify the link url (#3030)
Headless
Services(https://kubernetes.io/docs/user-guide/services/#headless-services
2017-03-28 10:34:01 -07:00
jianglingxia e6c26bc7bb change the url (#3029)
/docs/concepts/overview/working-with-objects/annotations/
2017-03-28 10:33:20 -07:00
William Chang f6bbed52a5 Fix the typo. 2017-03-28 10:32:13 -07:00
Xiaoyu Zhang 9a71927012 Fix the link url
The changed link and url look better, I think.
2017-03-28 10:31:27 -07:00
Drinky Pool c1d1b06685 delete redundant example
The example does not offer other aspects about the hostPath, it's some kind of duplicate to the preceding one. So, maybe only the preceding one is enough.
2017-03-28 10:30:02 -07:00
chenhuan12 d79cb68bad fix typo
fix typo
2017-03-28 10:28:32 -07:00
Xiaoyu Zhang 3cfd1547b8 change a link's url
Openshift origin 's homepage is https://www.openshift.org/. I think this one is much better than a github page.
2017-03-28 10:27:05 -07:00
Andrew Chen 6da81db4a0 Merge pull request #3023 from chenhuan12/patch-21
fix typo
2017-03-28 10:26:08 -07:00
Andrew Chen def2f7050b Merge pull request #2984 from soltysh/deployment_new_generator
Add new generator for deployments
2017-03-28 09:46:25 -07:00
Maciej Szulik db9638a68f Add new generator for deployments 2017-03-28 09:34:49 +02:00
chenhuan12 9243bd883d fix typo
1、column IP is missed
2、column AGE is missed
2017-03-28 14:39:30 +08:00
Andrew Chen 043c32ec86 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  add some links
  Fix the link
  Update staging container
2017-03-27 22:37:22 -07:00
Xiaoyu Zhang 7fa8b63fa8 add some links
With these links, it may help users easier to find the concepts.
2017-03-27 22:36:13 -07:00
Xiaoyu Zhang df563da532 Fix the link
The old link and title have changed. Updating them would be better.
2017-03-27 22:34:49 -07:00
Andrew Chen d65ecfb3c9 Merge pull request #3017 from ahmetb/update-staging
Update staging container
2017-03-27 22:28:42 -07:00
Andrew Chen 906bfad18f Merge pull request #2807 from jessfraz/pod-preset
Add pod preset docs
2017-03-27 22:27:16 -07:00
Ahmet Alp Balkan 6b47f60f90 Update staging container
Manually uploaded a :1.1 tag for the staging container, now it's alpine based
(1/4th in image size) and no longer has the warning mentioned in #2837.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-27 22:07:31 -07:00
Jess Frazelle e87b393ba3 Add pod preset docs
Signed-off-by: Jess Frazelle <acidburn@google.com>
2017-03-27 20:10:10 -07:00
Andrew Chen 403c2c1510 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  s/Wildard/Wildcard/
  rephrase the sentence
  Fix the number of processes on Kubernetes master (#2985)
  Pod Security Policy doc improvements (#3010)
  docs/admin: document OpenID Connect plugin "extra-scopes" field

# Conflicts:
#	docs/admin/kubelet.md
#	docs/user-guide/pod-security-policy/index.md
2017-03-27 16:12:50 -07:00
Keith Bartholomew 40ff2f7e72 s/Wildard/Wildcard/ 2017-03-27 16:06:00 -07:00
Xiaoyu Zhang 99013d17c8 rephrase the sentence
rephrase the sentence. PodSpec is one way, there are three other ways through apiserver. rephrasing the sentence can make it clear.
2017-03-27 16:05:31 -07:00
Xiaoyu Zhang 63afe80021 Fix the number of processes on Kubernetes master (#2985)
* Fix the number of processes on Kubernetes master 

According to https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/, we can know that there are only three processes of Kubernetes running on the master. etcd and flannel are three-party softwares. These are kube-apiserver, kube-controller-manager, and kube-scheduler. If we want to deploy pod on master, we need to start other two processes: kube-proxy and kubelet. So Three or Five is correct. In this case, I perfer Three. Pure master without Pod is fine.

* fix the pr

fix the pr

* Fix the pr

Fix the pr
2017-03-27 16:04:19 -07:00
Vyacheslav Semushin 43a94011fa Pod Security Policy doc improvements (#3010)
* docs/user-guide/pod-security-policy: minor improvements.

* docs/user-guide/pod-security-policy: convert JSON to YAML.

* docs/user-guide/pod-security-policy: mention kubectl get/edit commands.
2017-03-27 11:53:24 -07:00
Eric Chiang 10b8dc7856 docs/admin: document OpenID Connect plugin "extra-scopes" field 2017-03-27 11:34:58 -07:00
Andrew Chen aa100411c3 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  fix the command output
  delete invalid link
  Revert "fix the command output"
  fix the command output
  Delete the useless spaces
  Dollar signs used before commands without showing output
  bare-url-used
  Fix typo in authorization docs
  Update networking.md
2017-03-27 09:31:30 -07:00
chenhuan12 d920926f12 fix the command output
fix the command output
2017-03-27 09:17:44 -07:00
Xiaoyu Zhang d8e8fb9ffb delete invalid link
These two links do not exist yet.
2017-03-27 09:17:01 -07:00
Andrew Chen d48512e387 Revert "fix the command output"
This reverts commit 100daaa794.
2017-03-27 09:09:04 -07:00
chenhuan12 100daaa794 fix the command output
fix the command output
2017-03-27 09:08:30 -07:00
yupengzte b8aa4c6610 Delete the useless spaces
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-27 09:07:55 -07:00
yupengzte 92e1be4711 Dollar signs used before commands without showing output
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-27 09:07:06 -07:00
yupengzte 7d3f209c87 bare-url-used
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-27 09:05:42 -07:00
Josh Curl b7b1bc94e0 Fix typo in authorization docs 2017-03-27 09:01:39 -07:00
aniket-contrail b7ca839623 Update networking.md
Added section on OpenContrail with a brief description.
2017-03-27 08:59:53 -07:00
Mik Vyatskov 2241045c91 Add guide for deploying Stackdriver Logging (#2922)
* Add guide for deploying Stackdriver Logging

* Applied review comments

* Address review comments
2017-03-27 08:44:55 -07:00
Andrew Chen 703370f928 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Fix the output of "describe"
2017-03-27 08:42:50 -07:00
Andrew Chen 115ef91c5c Merge pull request #3002 from zhangxiaoyu-zidif/patch-12
Fix the output of "describe"
2017-03-27 08:42:10 -07:00
Xiaoyu Zhang 9cce2b2f5a Fix the output of "describe"
The output does not volume info. Maybe it is caused by edition changing.
2017-03-27 14:11:18 +08:00
devin-donnelly 1e817bb0d6 Merge pull request #2845 from vladimirvivien/scaleio-k8s-doc-volumes
PR for adding ScaleIO PV documentation in volumes.md
2017-03-26 18:34:44 -07:00
devin-donnelly 647b3df3df Merge pull request #2886 from caesarxuchao/gc-update-1.6
Update garbage collection doc for foreground garbage collection
2017-03-26 18:33:25 -07:00
devin-donnelly 9939c7c953 Update garbage-collection.md 2017-03-26 18:25:03 -07:00
Vladimir Vivien c98bfdf085 ScaleIO storage documentation in docs/concepts/storage 2017-03-25 07:49:53 -04:00
Andrew Chen 4aee1cf24c Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Update deploy-intro.html (#2968)
2017-03-24 18:09:50 -07:00
Andrew Chen 33666c25a2 Merge branch 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:
  Fix ref docs links in 1.6
2017-03-24 18:09:38 -07:00
Andrew Chen d4349f10cb Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  change the link icon
  fix command kubectl get serviceAccounts output
  Flannel is not longer the only network addon that supports ARM

# Conflicts:
#	docs/getting-started-guides/kubeadm.md
2017-03-24 18:09:32 -07:00
Phillip Wittrock 48bdde3efa Merge pull request #2976 from pwittrock/release-1.6
Fix reference docs links to include the group in the link
2017-03-24 18:06:29 -07:00
Phillip Wittrock 5944da3d73 Fix ref docs links in 1.6 2017-03-24 17:16:36 -07:00
Rohan Sahai 3d84ec254a Update deploy-intro.html (#2968)
Makes sentence slightly more readable in deploy tutorial
2017-03-24 16:20:53 -07:00
Matt Liggett 2b9b0029d9 Add a doc to about upgrading etcd. (#2767) 2017-03-24 15:08:33 -07:00
Xiaoyu Zhang 13fd2d0f51 change the link icon
The link now is a page of kubernetes.io, not a github's .md file any more.
So I think use the link page's title( Building High-Availability Clusters) is fine.
"high-availability.md" may be the older edition's link icon.
2017-03-24 11:20:01 -07:00
chenhuan12 2ed1a1351c fix command kubectl get serviceAccounts output
fix command kubectl get serviceAccounts output
2017-03-24 11:17:55 -07:00
Maciej Szulik c4dca21649 New deployments endpoint (#2986)
* Update deployments for 1.6

* Update all deployments in docs to use the new endpoint
2017-03-24 11:03:01 -07:00
Ilya Dmitrichenko dfbd0b16b4 Flannel is not longer the only network addon that supports ARM 2017-03-24 09:29:39 -07:00
Andrew Chen ddc206709f Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  fix the pr
  Fix a typo
2017-03-23 22:32:47 -07:00
Xiaoyu Zhang 438420ee21 fix the pr
rephrase the expressions.
2017-03-23 22:25:57 -07:00
Xiaoyu Zhang 9b15f8d77b Fix a typo
Change "state" to "states". rc's replicas may have different states.
2017-03-23 22:25:57 -07:00
Andrew Chen 4568e52bd1 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Update some description about secrets
  [Federation] Add a note about DNS API scopes to the Federation tutorial (#2943)
  Delete the useless spaces in html files
  Fix typo
  update resource-usage-monitoring.md
2017-03-23 15:23:47 -07:00
Cao Shufeng 57ad5d1cf6 Update some description about secrets
We can use RBAC/ABAC to control which users can access secrets.
2017-03-23 14:56:13 -07:00
Jonathan MacMillan c8179efc20 [Federation] Add a note about DNS API scopes to the Federation tutorial (#2943)
* [Federation] Add a note about DNS API scopes to the Federation tutorial

Not sure this is the right place for this, but I wanted to get the text out somewhere before I forgot about it.

* Update set-up-cluster-federation-kubefed.md

* Update set-up-cluster-federation-kubefed.md

* Fix formatting of code blocks.
2017-03-23 14:53:09 -07:00
yupengzte facd9bcce7 Delete the useless spaces in html files
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-23 14:49:53 -07:00
Andrew Chen 297ad056d3 Merge pull request #2975 from SaaldjorMike/fix_typo
Fix typo
2017-03-23 14:49:23 -07:00
Mike Rostermund 696ca85aff Fix typo 2017-03-23 22:43:52 +01:00
Andrew Chen 800d359972 Merge pull request #2972 from zhangxiaoyu-zidif/patch-10
update resource-usage-monitoring.md
2017-03-23 14:41:53 -07:00
Andrew Chen 2410c9e8da Merge pull request #2939 from mikedanese/csr
add inital documentation for the certificates API
2017-03-23 12:06:36 -07:00
Mike Danese 31df6ab5cb add inital documentation for the certificates API 2017-03-23 09:02:43 -07:00
Xiaoyu Zhang 4cdf55fedc update resource-usage-monitoring.md
"purpose–built" means "designed and built for a particular use"
2017-03-23 19:44:20 +08:00
Andrew Chen 996723bc8f Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Replace the tab with 4 spaces in md files (#2797)
  fix link error
  Replace the tab with 4 spaces in html files
  hitting the `ClusterIP` from a pod (#2826)

# Conflicts:
#	docs/admin/accessing-the-api.md
#	docs/api-reference/extensions/v1beta1/definitions.html
#	docs/getting-started-guides/kubeadm.md
#	docs/user-guide/kubectl/index.md
2017-03-23 00:19:33 -07:00
Andy Yu 9ce54855d5 Replace the tab with 4 spaces in md files (#2797)
* Replace the tab with 4 spaces in md files

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of accessing-the-api.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of manage-compute-resources-container.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of run-to-completion-finite-workloads.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of connect-applications-service.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of init-containers.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of calico.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of ingress.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of index.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of index.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of apparmor.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of run-stateful-application.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of index.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of index.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typos of replicasets.md

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-23 00:10:00 -07:00
Xiaoyu Zhang 505387b463 fix link error
The original link does not exist any more. Maybe this url is proper.
2017-03-23 00:04:19 -07:00
yupengzte 8053e08125 Replace the tab with 4 spaces in html files
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-23 00:01:55 -07:00
ztewyk eaa52cf2fc hitting the ClusterIP from a pod (#2826)
* hitting the `ClusterIP` from a pod

when client pod and server pod in the same node,client_address is the client pod ip address
when client pod and server pod in different node,client_address is  the client pod's node flannel ip address

* Update source-ip.md

* Update source-ip.md
2017-03-23 00:00:59 -07:00
Andrew Chen ce8507c515 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  update index.md
  Add PR template to encourage clicking Allow Edits
2017-03-22 15:06:02 -07:00
Andrew Chen 12307b9501 Merge pull request #2967 from zhangxiaoyu-zidif/patch-19
update index.md
2017-03-22 15:03:48 -07:00
Xiaoyu Zhang acbca1f251 update index.md
add one word,"say that" may be proper.
2017-03-23 06:00:51 +08:00
Andrew Chen 55acc53d69 Merge pull request #2962 from ahmetb/pr-template
Add PULL_REQUEST_TEMPLATE to encourage clicking Allow Edits
2017-03-22 14:28:25 -07:00
Andrew Chen cca5c7b358 Merge pull request #2750 from liggitt/passwordfile
Clarify password file group support
2017-03-22 13:44:05 -07:00
Andrew Chen ac962dc12c Merge pull request #2902 from shiywang/patch-3
update resources name
2017-03-22 13:41:37 -07:00
Andrew Chen 27d6822bb6 Merge branches 'release-1.6' and 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:
  Update daemons.md

* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:
  Update daemons.md
2017-03-22 13:39:50 -07:00
Andrew Chen 31221c3a76 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  rephrase the expression of configmap/index.md
  Do not link to org/team links on GitHub
  Fixed typos (#2721)
  Revert "update init-containers.md"
  Fix doc sentence
  Add Minikube reference in the Kubectl configuration doc
  Mention Minikube in the Kubectl configuration doc

# Conflicts:
#	docs/tasks/index.md
2017-03-22 13:39:24 -07:00
devin-donnelly 50dc7445d9 Merge pull request #2964 from kubernetes/devin-donnelly-patch-3
Update daemons.md to remove reference to future support for DaemonSet updates
2017-03-22 13:39:08 -07:00
devin-donnelly 52be0a881c Update daemons.md 2017-03-22 13:34:18 -07:00
devin-donnelly 1494504741 Update garbage-collection.md 2017-03-22 13:28:37 -07:00
Andrew Chen 431ed22c3d Merge pull request #2751 from liggitt/proxy-subresource
Switch to proxy subresource
2017-03-22 13:19:54 -07:00
devin-donnelly d847965635 Merge pull request #2940 from liggitt/rbac
Outline service account RBAC approaches
2017-03-22 13:08:04 -07:00
Jordan Liggitt 5ff30086e4 Switch to proxy subresource 2017-03-22 16:00:30 -04:00
Ahmet Alp Balkan a607d39b88 Add PR template to encourage clicking Allow Edits
Also moving issue template to /.github for better organization. This is
supported by GitHub.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-22 13:00:14 -07:00
Jordan Liggitt acd153e60c Clarify password file group support 2017-03-22 15:56:10 -04:00
Jordan Liggitt 6334adc211 Outline service account RBAC approaches 2017-03-22 15:50:40 -04:00
devin-donnelly d8100c6c30 Merge pull request #2929 from csbell/fed-ingress
Remove fed ingress known issue for 1.6.
2017-03-22 12:36:24 -07:00
devin-donnelly 2d77413f91 Merge pull request #2864 from spzala/kubectrlprereq
Mention Minikube in the Kubectl configuration doc
2017-03-22 12:18:05 -07:00
Xiaoyu Zhang 40073e8abb rephrase the expression of configmap/index.md
change "any pods" to "every pod"
2017-03-22 10:22:15 -07:00
Ahmet Alp Balkan 8bd4011d41 Do not link to org/team links on GitHub
People who are not on the org get 404, causing further confusion.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-22 10:18:40 -07:00
Ryan McGinnis c4e4b3afcf Fixed typos (#2721)
- Typo in first bullet point
- Fixed capitalization in "Changing Reclaim Policy of a PersistentVolume" bullet point
2017-03-22 10:17:08 -07:00
Mengqi Yu 8da77b2cfc Update imported docs (#2947)
* bump to 1.6 and preserve new ref docs and delete old ref docs

* run update-imported-docs.sh and keep title
2017-03-22 10:10:36 -07:00
lvjiangzhao fa381d82a0 add flag --enable-taint-manager to kube-controller-manager.md from source
code
2017-03-22 09:52:21 -07:00
devin-donnelly 29dab8af2b Merge pull request #2954 from kubernetes/revert-2911-patch-17
Revert "update init-containers.md"
2017-03-21 23:08:28 -07:00
devin-donnelly 9f4214fc2c Revert "update init-containers.md" 2017-03-21 23:03:14 -07:00
devin-donnelly fccaae6c37 Merge pull request #2953 from spzala/loadbalanced
Fix doc sentence
2017-03-21 23:02:37 -07:00
Sahdev P. Zala 4f526d0426 Fix doc sentence
The sentence is having an unnecessary word, 'to' should be removed to make
sentence readable.
2017-03-21 23:54:40 -04:00
Andrew Chen 4800b4f881 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Fix link to Upgrade 1.6
  livenessProbe -> periodSeconds (#2832)
2017-03-21 19:54:15 -07:00
Erik Stidham 807ccaed78 Fix link to Upgrade 1.6 2017-03-21 19:49:05 -07:00
blackbird29 b6c33e695b livenessProbe -> periodSeconds (#2832)
The field periodSeconds was wrongly referenced as livenessProbe.
2017-03-21 19:47:47 -07:00
Andrew Chen 4eba51d6f2 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Fix incorrect sentence (#2876)
  fixing typo
  fix typo
  Update kubeadm.md

# Conflicts:
#	docs/getting-started-guides/kubeadm.md
2017-03-21 19:30:14 -07:00
Sahdev Zala dccb59fddd Fix incorrect sentence (#2876)
* Fix incorrect sentence

The changes removes an unnecessary word to correct doc sentence.

* Fix incorrect sentence

Remove an extra incorrect word from the sentence.
2017-03-21 19:20:57 -07:00
Di Wu b6b25fc934 fixing typo 2017-03-21 19:14:48 -07:00
chenhuan12 e13b255f89 fix typo
1、Delete the row "NAME             READY     REASON    RESTARTS   AGE";
2、fix command kubectl get nodes output.
2017-03-21 19:12:09 -07:00
Richard Shaw 3bf7d6658a Update kubeadm.md
A couple of minor grammatical errors.
2017-03-21 19:07:36 -07:00
Andrew Chen 7215af010f Merge branches 'release-1.6' and 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:

* 'master' of https://github.com/kubernetes/kubernetes.github.io: (23 commits)
  Apply changes from PR #2787
  rephrase the sentence to make expression clear (#2789)
  update index.md (#2788)
  Apply changes from PR #2784 (#2950)
  The link URL of  [kube-controller-manager] is wrong
  Added pod name in run command
  Fix grammar in docs/admin/daemon.md
  update index.md (#2755)
  Update garbage-collection.md (#2732)
  Fix typo (#2842)
  Fix typo
  Fix the typos
  Apply typo fixes from #2791 (#2949)
  Fix typo in kubectl_completion.md
  fix typeo (#2856)
  Use kubectl config current-context to simplify the instructions
  fix a typo in /docs/user-guide/configmap/index.md
  Fix monitor-node-health.md
  amend monitor-node-health.md
  Update manage-compute-resources-container.md
  ...

# Conflicts:
#	docs/tools/index.md
2017-03-21 19:04:37 -07:00
Andrew Chen 043a6941fe Apply changes from PR #2787 2017-03-21 19:02:30 -07:00
Xiaoyu Zhang 7764c02e78 rephrase the sentence to make expression clear (#2789)
rephrase the expression
2017-03-21 19:00:59 -07:00
Xiaoyu Zhang eddd78c28d update index.md (#2788)
add "on a node" in the sentence to make the expression clear.
2017-03-21 19:00:19 -07:00
Andrew Chen 809473a677 Apply changes from PR #2784 (#2950) 2017-03-21 18:53:40 -07:00
houjun 37af1f8318 The link URL of [kube-controller-manager] is wrong
Appears 404 Error when click  [kube-controller-manager]. The URL maybe
misses '/'.
2017-03-21 18:49:01 -07:00
Lee Calcote 221454da15 Added pod name in run command
Added "node-hello" in the run command to give the pod a name. Command will not execute w/o a pod name.
2017-03-21 18:38:59 -07:00
Andrew Chen 4541c229ca Merge pull request #2771 from liggitt/non-standard-verbs
Document non-standard verbs
2017-03-21 18:37:11 -07:00
Steven Erenst d1b975da52 Fix grammar in docs/admin/daemon.md
A sentence in the "What is a DaemonSet" section had an extra "would be
used" which made the sentence grammatically incorrect.

Signed-off-by: Steven Erenst <stevenerenst@gmail.com>
2017-03-21 18:33:18 -07:00
Xiaoyu Zhang 6854e84203 update index.md (#2755)
* update index.md

add one word "be".

* update index.md

change "to help users familiar with Docker Compose move to Kubernetes" to "to help Docker Compose users move to Kubernetes".
This is much better. Thank you! At first i misunderstand the meaning of this sentence.
2017-03-21 18:29:21 -07:00
Xiaoyu Zhang 60466527e0 Update garbage-collection.md (#2732)
change "higher" to "larger"
2017-03-21 18:23:20 -07:00
Dominika Hodovska 1148f85e8c Move init containers to stable in v1.6 (#1939)
* Delete the parameter "--google-json-key string"

Delete the parameter "--google-json-key string"

* Fix apimachinery vendored dependencies in examples_test.

* package apt-transport-https should be installed

Ubuntu default install not include apt-transport-https. so if you want to download package from https repo, you need install apt-transport-https package first

* doc-walkthrough-content

modify

* limitrange-update

I think it's redundant that the second to ,in order to do sth and do
sth!thanks!

* fix command kubectl get svc,pod output

fix command kubectl get svc,pod output

* Fix typo: federation-controller-mananger => federation-controller-manager

* Fix typo: federation-controller-mananger => federation-controller-manager

* Clarify minimum version of kubernetes supporting PSP authz

* Provide correct location for KUBE_ETCD_SERVERS

Provide correct location for KUBE_ETCD_SERVERS configuration key. It was
previously listed as being in /etc/kubernetes/config but is actually in
/etc/kubernetes/apiserver.

Related: https://github.com/kubernetes/kubernetes.github.io/issues/1600

* Move Compute Resources topic to Concepts. (#2410)

* Delete the parameter "--google-json-key string"

“# kube-scheduler -help”can not find --google-json-key option

# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}

* Add diagnose tips when you face problem.

* Update grammar for kubeadm.md, thanks @chenopis

* Merge two pieces to one words

* add http proxy infomation in kubeadm

* Update landing pages for Tasks and Tutorials. (#2634)

* Update static-pods.md

It works. Please review it again.

* Move Guide Topic: Multi-container pods. (#2642)

* fix link to go to pod-lifecycle page

* fix the command output

fix the command output

* mirantis_logo.png

,/images/community_logos/mirantis_logo.png updated per Mirantis request

* kubeadm reference -- /

set up/manage mean set up or manage ? it's better use or?

* Prototype for deprecating User Guide topic.

* missing word

The return of the OCD.

* Move Guide topic: Using Environment Variables. (#2645)

* fix typo (#2656)

fix typo

* Move Guide topic: Using Port Forwarding. (#2661)

* Move Guide topic: Bootstrapping Pet Sets. (#2662)

* Move Guide topic: Bootstrapping Pet Sets.

* Add TOC entry.

* Move Guide topic: Connect with Proxies. (#2663)

* Move Guide topic: Connect with Proxies.

* Fix link.

* add DefaultTolerationSeconds admission controller

* getting-started-guides: add CoreOS Tectonic

* Correct the certificate name

* Update index.md

* Update installation.md

* Update validation.md

* Update backups.md

* Update backups.md

* Spell fixes

* Using it vs Juju Kubernetes

* Q1 update to k8s tech and service partner list

New partners registered to K8s Partner Ecosystem sign-up form.  Logo updates companion to this edit still WIP

* Logo file updates for new registrants

Logos for new registrants

* The attribute [allowfullscree] must have a value

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Remove newline before passing to base64

* Use single quote to avoid string interpolation, update output

* Update command as files contain no newline

* Remove all dead links, use just filename

As user can guess that it is file copied from the shown content

* Fix link to dev guide.

* Add --leader-elect=false

Second scheduler could not start without disabling leader-elect.

* cluster-components-could be running

could be doing sth

* update cluster-components.md

In theory,Master components can be run....

* update cluster-components--add a space

add a space after the comma: "In theory, Master components..."

* Highlighted command --kubectl describe

In web page ,there is no space ,need some empty space,thanks!

* Revert "Highlighted command --kubectl describe"

This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1.

* Add example show how to configure proxy for kube

* Revision as the suggestion describe

* move ha-master-gce.png to images/docs

Signed-off-by: Xiuyu Li <nickleefly@gmail.com>

* use relative path for ha-master-gce image

Signed-off-by: Xiuyu Li <nickleefly@gmail.com>

* The attribute [calendarWrapper] must be unique

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* add required images in kubeadm init step

* Add links to Docker/rtk in cluster-intro.html

* s/acomplish/accomplish/

* Modify  the link URL of [kubelet eviction design doc]

[kubelet eviction design doc] should be linked to kubernetes.github.io
instead of community/design-proposal.

* fix CronJob object name

fix CronJob object name

* remove redundant a

Signed-off-by: Xiuyu Li <nickleefly@gmail.com>

* kubeadm reference--change any to some (#2683)

* modify one word

examples   to  example

* doc-walkthrough-content

modify

* limitrange-update

I think it's redundant that the second to ,in order to do sth and do
sth!thanks!

* cluster-components-could be running

could be doing sth

* update cluster-components.md

In theory,Master components can be run....

* update cluster-components--add a space

add a space after the comma: "In theory, Master components..."

* Highlighted command --kubectl describe

In web page ,there is no space ,need some empty space,thanks!

* Revert "Highlighted command --kubectl describe"

This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1.

* kubeadm reference--change any to some

kubeadm can install any  add-on ?

* Move Guide topics: Logging (#2687)

* Disallow indexing for liveness/index (#2689)

* Deprecate Guide topics. (#2691)

* Wrong label and kubectl get completed pods

The label `app=jobexample` should be `jobgroup=jobexample`.
Also, for get completed pods the flag `--show-all` is necessary.

* Update garbage-collection.md

change “any” to "every"

* Deprecate Guide topic: Persistent Volume Walkthrough. (#2692)

* Reimplement PR #2525

Fixes typo by removing the word "controller"

* remove extra space

* Update multiple-schedulers doc  (#2063)

* Update tutorial

* Fix md formatting.

* Remove extraneous space

* Deprecate Guide topic: Secrets Walkthrough. (#2695)

* Deprecate Guide topics: quick-start ... (#2696)

* Update Tasks landing page. (#2697)

* Remove redundant section in deployments

The status of the deployment is already covered in a later section in
this doc.

* Repair Spotinst logo

Corrected size

* fixed ASM blurb

* Correct ASM logo filename

* Highlighted command for `kubectl proxy`.

* Update ubuntu install instructions.

* Update local instructions to new method.

* update init-containers.md

add one word.

* Minor spelling correction -- "rtk" to "rkt"

* fixing typo

* Doc formatting update

Corrected indentation for the `nonResourcePath` and got a bit zealous with restructuring that section...

* Repair Spotinst logo

Corrected size

* fixed ASM blurb

* Correct ASM logo filename

* Update garbage-collection.md

change "any" to "every"

* Update Weave Net's title.

* fix unsupported parameter of wget command

* update to be retained

change "retain" to "to be retained".

* Update pod.md

* update init-containers.md

change "a different filesystem view" to "different filesystem views".
different init container should have different filesystem.

* Highlighted command --kubectl describe

In web page ,there is no space ,need some empty space,thanks!

* cluster-management--3

change 3 to three is better or not ?thanks!

* fix typo

1、Parameters “--allow-verification-with-non-compliant-keys” is missed.
2、Delete the parameter "--google-json-key string";

see the "# kube-controller-manager  -help"
# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}

* fix typo

1、Delete the parameter "--google-json-key string";
2、Parameters "--ir-data-source string"、"--ir-dbname string"、"--ir-hawkular string"、"--ir-influxdb-host string"、"--ir-namespace-only"、"--ir-password string"、"--ir-percentile int"、"--ir-user string"  is missed.

see the "# kube-prxoy -help"
# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}

* Update garbage-collection.md

modify the url and link

* update garbage-collection.md

change the url to relative path.

* update out-of-resource.md

change "in cases when" to "in case that"

* update out-of-resource.md

use a shorter and simpler expression.

* update out-of-resource.md

change "support" to "supports"

* Create a top-level CN directory to hold future md files for the Chinese kubernetes site

* Removed `=` at the end of the flags.

* Remove autogenerate todo

- This should be captured via a GitHub issue
  and not a TODO in the README documentation
  which leads to confusion.

* Move Guide topics: Federation Tasks. (#2799)

* Move Guide topics: Federation tutorial and concept. (#2802)

* Move Guide topics: Federation tutorial and concept.

* Add title.

* Fix link.

* Move kubectl Concept topics to Tutorials. (#2804)

* Move kubectl Concept topics to Tutorials.

* Add redirects and update links.

* The calendarWrapper attribute should be unique

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix links. (#2808)

* Fix link. (#2806)

* Move topic from clusters to cluster-administration. (#2812)

* Move a batch of cluster admin topics. (#2813)

* Move Guide topic: Limit storage consumption. (#2814)

* Move Guide topic: Limit storage consumption.

* Add title.

* Move Guide topic: Networking. (#2816)

* Move Guide topic: Network Plugins. (#2819)

* Move Guide topic: Network Plugins.

* Fix link.

* Move Guide topic: Static Pods. (#2820)

* User Guide content migration: post notice (#2818)

* Add User Guide content migration notice.

* Fix formatting

* Tweek formatting to block highlight text in light gray.

* Try table instead of code block

* remove extra lines

* try table format

* fix links

* incorporate @ddonnelly feedback

* Move Guide topic: Out of Resource. (#2821)

* Move Guide topic: Monitoring Node Health. (#2822)

* Move Guide topic: Monitoring Node Health.

* Move to Tasks.

* Move Guide topic: AppArmor. (#2823)

* Apparmor (#2825)

* Move Guide topic: AppArmor.

* Add included files.

* Move Guide topic: Audit. (#2824)

* Added 1.6 Upgrade notes to outline changes for etcd 3.

* Move Guide topic: Disruption Budget. (#2834)

* Move Guide topic: Limit range. (#2835)

* Quota (#2836)

* Move Guide topic: Limit range.

* Move Guide topic: Resource Quota and Limits.

* Quota2 (#2838)

* Move Guide topic: Limit range.

* Move Guide topic: Resource Quota concept.

* Dns (#2839)

* Move Guide topic: Limit range.

* Move Guide topic: DNS.

* Delete CNAME

* Create CNAME

* Delete CNAME

* Create CNAME

* Move docs/user-guide/managing-deployments.md to /docs/concepts/cluster-administration/manage-deployment.md

* add nginx-app.yaml file

* add back missing /

* fix link

* Move Guide topic: Replication Controller Operations

* Move Guide topic: Resizing a replication controller

* Concepts toc (#2840)

* Move Guide topic: Limit range.

* Adjust Concepts Overview TOC.

* Move Guide topic: Rolling Updates

* Move Kubernetes API page. (#2849)

* Move What is Kubernetes topic. (#2851)

* Move Guide topic: Rolling Update Demo (#2850)

* Move Guide topic: Rolling Update Demo

* rename file

* Move Guide topic: Configuration Best Practices

* Move Guide topic: Jobs (#2853)

* Move Guide topic: Jobs

* add job.yaml file

* change title

* Move Pod overview. (#2865)

* Move Pod overview.

* Fix redirection.

* Move Guide topic: Parallel Processing using Expansions (#2867)

* Move Guide topic: Parallel Processing using Expansions

* fix links to /docs/user-guide/jobs/

* Move Init Containers topic. (#2866)

* Move Guide topic: Coarse Parallel Processing Using a Work Queue

* Move Guide topic: Fine Parallel Processing using a Work Queue (#2870)

* Move Guide topic: Fine Parallel Processing using a Work Queue

* add migration notice

* fixed capitalization

* Rename /docs/tasks/job/work-queue-1/

* Move StatefulSets topic. (#2869)

* Move StatefulSets topic.

* Fix TOC.

* Move Guide topic: Pod Templates (#2872)

* Move Guide topic: Pod Templates

* tweak header level and capitalization

* Move PetSets topic. (#2873)

* Move Garbage Collection topic. (#2874)

* Move Garbage Collection topic.

* Fix included file.

* Move Guide topic: Prereqs

* Move Guide topic: Sharing Clusters

* Move Accessing Clusters topic to Concepts. (#2875)

* Move Accessing Clusters topic to Concepts.

* Update concepts.yml

* Move Guide topic: Kubeconfig File

* Move Guide topic: Config Provider Firewalls. (#2883)

* Move Guide topic: Federation Service Discovery. (#2884)

* Move Guide topic: Connecting Apps with Services. (#2885)

* Added example and docu for hostPort ranges

* Move Guide topic: Service. (#2891)

* Move Guide topic: Service.

* Move Guide topic: External Load Balancer.

* Fix TOC.

* Move Guide topic: Resource Monitoring. (#2895)

* docs/admin: document OpenID Connect plugin's claim prefixing

* Move Guide topic: Admin Guide

* fix the command output

fix the command output

* Update manage-compute-resources-container.md

Change "he" to "The"

* update out-of-resource.md

change "thresholds" to "threshold"

* update init-containers.md

change "apply" to "application"

* amend monitor-node-health.md

Amend the url link.

* Fix monitor-node-health.md

The url link does not exist.

* fix a typo in /docs/user-guide/configmap/index.md

change "value" to "values"

* View $PAGE on Github without forking the repo

Adding a "View docs/bla-bla.md on GitHub" button next to the
"Edit docs/bla-bla.md" button so that people can view the file
first without clicking the Edit button (which does not work without
forking the repository).

I did not need this because I was trying to do something without
forking. I just found it to be bit difficult to view source of a page
on GitHub.

I'm open to ideas, perhaps we can instead add an article footer button
named "View on GitHub" next to the "Edit this Page".

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>

* Move Guide topics: Container Lifestyle Hooks, Images, Volumes

* fix to taint the master node

* Add files via upload

* fix the link of ogging-elasticsearch-kibana.md

fix the link of url

* Remove from TOC/Search: pods/init-containers ... (#2694)

* Fix typo

* Add files via upload

* Create hyperlink

Create hyperlink for kubernetes repo link.

* updated PSP documentation with RBAC (#2552)

Added info about controller manager setup and current implementation when using PSP with RBAC support.

* Use kubectl config current-context to simplify the instructions

* fix typeo (#2856)

* fix typeo

* Update kargo.md

* Fix typo in kubectl_completion.md

evaluation --> evaluated

* Apply typo fixes from #2791 (#2949)

* Apply typo fixes from #2791

* remove style typos

* Fix the typos

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>

* Fix typo

* Fix typo (#2842)
2017-03-21 18:13:33 -07:00
Bouke van der Bijl 05b7a64d8f Fix typo (#2842) 2017-03-21 17:48:26 -07:00
faascape cfadb36c12 Fix typo 2017-03-21 17:47:02 -07:00
yupengzte f6fec80790 Fix the typos
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-21 17:46:26 -07:00
Andrew Chen fce57824ce Apply typo fixes from #2791 (#2949)
* Apply typo fixes from #2791

* remove style typos
2017-03-21 17:44:35 -07:00
Joe Wang e4af4e9898 Fix typo in kubectl_completion.md
evaluation --> evaluated
2017-03-21 17:16:26 -07:00
Andrew Chen de14357284 Move position of ToC (#2948)
* Move position of ToC

* add space to fix syntax parsing check
2017-03-21 17:09:45 -07:00
tanshanshan d57ed65fe8 fix typeo (#2856)
* fix typeo

* Update kargo.md
2017-03-21 17:06:56 -07:00
devin-donnelly 7768c3bad3 Merge pull request #2890 from krallistic/master
PSP: Added example and docu for hostPort ranges
2017-03-21 17:06:24 -07:00
devin-donnelly 57e6f7a80f Merge pull request #2889 from madhusudancs/fed-adm-reorg
Deprecate federation-up/deploy.sh doc.
2017-03-21 17:06:05 -07:00
devin-donnelly 7fdb8ce53c Merge pull request #2892 from derekwaynecarr/clarify-docs
Clarify how memory.available is computed in eviction
2017-03-21 17:05:02 -07:00
devin-donnelly b6b96c82a5 Merge pull request #2894 from ericchiang/oidc-username-prefixing
docs/admin: document OpenID Connect plugin's claim prefixing
2017-03-21 17:04:32 -07:00
devin-donnelly b206adba72 Merge pull request #2906 from chenhuan12/patch-14
fix the command output
2017-03-21 17:03:09 -07:00
devin-donnelly 414e9722ae Merge pull request #2912 from wenlxie/master
Update manage-compute-resources-container.md
2017-03-21 17:02:51 -07:00
devin-donnelly 698bd00e50 Merge pull request #2905 from davidopp/release-1.6
Update docs to reflect affinity, taints, tolerations moving from alpha annotations to (beta) fields.
2017-03-21 17:01:57 -07:00
Eric Chiang 6792ba4aa2 Merge branch 'master' into oidc-username-prefixing 2017-03-21 16:59:45 -07:00
devin-donnelly e353591f0e Merge pull request #2918 from zhangxiaoyu-zidif/patch-33
Fix monitor-node-health.md
2017-03-21 16:58:52 -07:00
devin-donnelly c05b84a302 Merge pull request #2914 from zhangxiaoyu-zidif/patch-32
amend monitor-node-health.md
2017-03-21 16:57:50 -07:00
Andrew Chen cd65f3379b Merge pull request #2778 from gyliu513/table-content
Added table of content to node-selection.
2017-03-21 16:52:33 -07:00
Andrew Chen adacb8d8b0 Merge pull request #2777 from gyliu513/node-controller
Updated node controller for taints and tolerations.
2017-03-21 16:50:31 -07:00
Andrew Chen d410008343 Merge pull request #2770 from liggitt/requestheader
Add group and extra info to front proxy
2017-03-21 16:47:06 -07:00
Andrew Chen e2d113a233 Merge pull request #2768 from gyliu513/register-node
Added `--register-with-taints` for node.md.
2017-03-21 16:44:37 -07:00
Andrew Chen 8fe6182953 Merge pull request #2749 from liggitt/anonymous-auth
Clarify anonymous auth enablement
2017-03-21 16:41:07 -07:00
Everett Toews 17daa9837f Use kubectl config current-context to simplify the instructions 2017-03-21 16:38:58 -07:00
Andrew Chen ff7b67dd3b Merge pull request #2744 from gyliu513/kubectl-taint
Updated user guide for `kubectl taint` by adding `NoExecute`.
2017-03-21 16:36:19 -07:00
devin-donnelly 447049890d Merge pull request #2919 from zhangxiaoyu-zidif/patch-34
fix a typo in /docs/user-guide/configmap/index.md
2017-03-21 16:15:46 -07:00
Andrew Chen e862c93186 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  updated PSP documentation with RBAC (#2552)
2017-03-21 16:13:39 -07:00
devin-donnelly 7178d47bf0 Merge pull request #2899 from madhusudancs/kubefed-v16
kubefed v1.6 update
2017-03-21 16:12:09 -07:00
devin-donnelly b19d0eb5ae Merge pull request #2841 from derekwaynecarr/cgroups
Add documentation for per pod cgroups
2017-03-21 16:10:14 -07:00
Xiaoyu Zhang 088c3c3ad4 Merge branch 'master' into patch-32 2017-03-22 07:10:10 +08:00
Xiaoyu Zhang f08a13eae9 Merge branch 'master' into patch-33 2017-03-22 07:10:00 +08:00
Xiaoyu Zhang 68dac29744 Merge branch 'master' into patch-34 2017-03-22 07:09:48 +08:00
Gurvinder Singh 180db357d0 updated PSP documentation with RBAC (#2552)
Added info about controller manager setup and current implementation when using PSP with RBAC support.
2017-03-21 16:09:37 -07:00
Andrew Chen 607105f918 Merge pull request #2935 from CaoShuFeng/audit-2
Audit filter is also available for the insecured endpoint
2017-03-21 16:01:04 -07:00
Andrew Chen 8d96337664 Merge pull request #2934 from CaoShuFeng/audit
Update baisc auditor's info
2017-03-21 16:00:49 -07:00
Andrew Chen 29607852ca Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  fix the link of ogging-elasticsearch-kibana.md
  View $PAGE on Github without forking the repo
  update init-containers.md
  update out-of-resource.md
2017-03-21 15:54:53 -07:00
Andrew Chen b3ac35430c Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Create hyperlink
  Add files via upload
  Fix typo
  Remove from TOC/Search: pods/init-containers ... (#2694)
  Add files via upload
  fix to taint the master node
  Move Guide topics: Container Lifestyle Hooks, Images, Volumes
  Correct ASM logo filename
  fixed ASM blurb
  Repair Spotinst logo
  Remove redundant section in deployments

# Conflicts:
#	docs/getting-started-guides/kubeadm.md
#	docs/user-guide/volumes.md
2017-03-21 15:54:35 -07:00
Xiaoyu Zhang 590e1beff9 Merge branch 'master' into patch-34 2017-03-22 06:33:44 +08:00
Xiaoyu Zhang e22898914c Merge branch 'master' into patch-33 2017-03-22 06:33:33 +08:00
Xiaoyu Zhang 8e992ec358 Merge branch 'master' into patch-32 2017-03-22 06:33:22 +08:00
devin-donnelly 06a80c510c Merge pull request #2924 from ahmetb/edit-button
[UX] "View $PAGE on GitHub" without forking the repo
2017-03-21 15:33:19 -07:00
devin-donnelly 2ce643f56b Merge pull request #2910 from zhangxiaoyu-zidif/patch-29
update out-of-resource.md
2017-03-21 15:32:38 -07:00
devin-donnelly e85042f01d Merge pull request #2911 from zhangxiaoyu-zidif/patch-17
update init-containers.md
2017-03-21 15:32:05 -07:00
devin-donnelly 00a0eabf78 Merge pull request #2933 from zhangxiaoyu-zidif/patch-35
fix the link of logging-elasticsearch-kibana.md
2017-03-21 15:31:16 -07:00
Andrew Chen 296750f249 Merge pull request #2700 from kargakis/remove-redundant-section
Remove redundant section in deployments
2017-03-21 14:23:18 -07:00
Sahdev P. Zala 7da7a46211 Create hyperlink
Create hyperlink for kubernetes repo link.
2017-03-21 14:19:00 -07:00
mlambert890b d4107d0a08 Add files via upload 2017-03-21 14:15:18 -07:00
Jared c224a7ab66 Merge pull request #2945 from simonwydooghe/patch-1
Fix typo 'Kuberentes'
2017-03-21 14:14:06 -07:00
Simon Wydooghe b401010d3a Fix typo 2017-03-21 21:17:35 +01:00
Steve Perry d4b42e9c7e Remove from TOC/Search: pods/init-containers ... (#2694) 2017-03-21 13:11:03 -07:00
devin-donnelly ef32f29d08 Merge pull request #2932 from mlambert890b/master
Update Mirantis logo per Mirantis
2017-03-21 12:09:19 -07:00
devin-donnelly f9c06f48e2 Merge pull request #2900 from wlan0/master
add docs about cloud-controller-manager
2017-03-21 12:00:33 -07:00
devin-donnelly c0f3aa4abe Update running-cloud-controller.md 2017-03-21 11:57:01 -07:00
mlambert890b 8f9bdf5bad Merge branch 'master' into master 2017-03-21 11:56:35 -07:00
devin-donnelly a5899fc2ff Update components.md 2017-03-21 11:49:23 -07:00
devin-donnelly 8d31f21184 Merge pull request #2887 from pwittrock/release-1.6
Release 1.6
2017-03-21 11:38:53 -07:00
devin-donnelly edff5cbd3f Merge pull request #2927 from nikhiljindal/cascDel1.6
Updating cascading deletion info for federation
2017-03-21 11:34:17 -07:00
devin-donnelly 28cbea8ec6 Merge pull request #2878 from janetkuo/ds-rolling-update
Add Task: Rolling Update a DaemonSet
2017-03-21 11:09:45 -07:00
devin-donnelly c2c5f17fe4 Merge pull request #2745 from jsafrane/default-storage-class
Add documentation about default storage class
2017-03-21 11:01:30 -07:00
devin-donnelly 538a80d428 Merge pull request #2920 from xilabao/fix-taint-master-node
fix to taint the master node
2017-03-21 11:01:04 -07:00
Janet Kuo 6eeb3f74f4 Add Task: Rolling Update a DaemonSet 2017-03-21 10:40:17 -07:00
Jan Safranek 0eef44d130 Add documentation about default storage class 2017-03-21 09:25:01 +01:00
Cao Shufeng aaed3a4d38 Audit filter is also available for the insecured endpoint
See code here:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/server/config.go#L445
2017-03-21 04:12:02 -04:00
Cao Shufeng 173d1fd357 Update baisc auditor's info
See codes here:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go#L131
2017-03-21 04:09:09 -04:00
Xiaoyu Zhang 75fc7284a8 fix the link of ogging-elasticsearch-kibana.md
fix the link of url
2017-03-21 15:36:25 +08:00
mlambert890b 36f168a1fe Merge branch 'master' into master 2017-03-20 20:20:18 -07:00
mlambert890b 5f96e8a39a Add files via upload 2017-03-20 20:18:40 -07:00
xilabao b144d991a0 fix to taint the master node 2017-03-21 08:36:58 +08:00
Madhusudan.C.S b4ffa837a5 Address review comments. 2017-03-20 17:19:36 -07:00
Xiaoyu Zhang 2fe806fc00 Merge branch 'master' into patch-32 2017-03-21 08:19:20 +08:00
Xiaoyu Zhang 7dc36c1fff Merge branch 'master' into patch-34 2017-03-21 08:16:59 +08:00
Xiaoyu Zhang d05fd38de8 Merge branch 'master' into patch-33 2017-03-21 08:16:50 +08:00
Xiaoyu Zhang 4ba1d79c61 Merge branch 'master' into patch-17 2017-03-21 08:16:35 +08:00
Xiaoyu Zhang 863d58bef3 Merge branch 'master' into patch-29 2017-03-21 08:16:23 +08:00
Christian Bell c9e46a66e7 Remove fed ingress known issue for 1.6. It's been fixed. 2017-03-20 16:25:47 -07:00
Andrew Chen 763513ccce Merge pull request #2928 from kubernetes/migration-container-environment
Move Guide topics: Container Lifestyle Hooks, Images, Volumes
2017-03-20 15:57:31 -07:00
Andrew Chen f0cd49a007 Move Guide topics: Container Lifestyle Hooks, Images, Volumes 2017-03-20 15:35:51 -07:00
nikhiljindal 0007aa6404 Updating cascading deletion info for federation 2017-03-20 15:15:15 -07:00
devin-donnelly 18fb24df44 Merge pull request #2720 from DirectXMan12/feature/hpa-v2
Update HPA documentation to cover HPA v2
2017-03-20 15:10:54 -07:00
Solly Ross 877c6c224e Update HPA documentation to cover HPA v2
This updates the horizontal pod autoscaling documention to cover the new
autosclaing/v2alpha1 API version.  It also notes the removal of the old
alpha annotations for autoscaling on custom metrics, and reccomends
against using the alpha collection method.
2017-03-20 17:48:46 -04:00
devin-donnelly e12c965102 Merge pull request #2743 from gnufied/add-mount-option-docs
Add documentation for mount option
2017-03-20 14:30:15 -07:00
devin-donnelly ab6166b1f0 Merge pull request #2829 from jbeda/kubeadm-update
Update kubeadm docs for 1.6
2017-03-20 14:28:03 -07:00
Derek Carr 8403efcb04 Add documentation for per pod cgroups 2017-03-20 17:00:30 -04:00
devin-donnelly 508a160591 Merge pull request #2926 from devin-donnelly/release-1.6
Merge latest from Master into Release 1.6
2017-03-20 13:57:54 -07:00
Devin Donnelly 7667b6d217 Merge branch 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io into release-1.6 2017-03-20 13:53:52 -07:00
Devin Donnelly 4956e43fb1 Merge remote-tracking branch 'upstream/master' into release-1.6 2017-03-20 13:51:51 -07:00
Derek Carr d11b59f5ce Clarify out of resource handling for memory.available 2017-03-20 16:51:49 -04:00
Ahmet Alp Balkan 7cdcff7813 View $PAGE on Github without forking the repo
Adding a "View docs/bla-bla.md on GitHub" button next to the
"Edit docs/bla-bla.md" button so that people can view the file
first without clicking the Edit button (which does not work without
forking the repository).

I did not need this because I was trying to do something without
forking. I just found it to be bit difficult to view source of a page
on GitHub.

I'm open to ideas, perhaps we can instead add an article footer button
named "View on GitHub" next to the "Edit this Page".

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-03-20 12:49:47 -07:00
Hemant Kumar 5bfd2929d1 Fix language in docs 2017-03-20 15:13:28 -04:00
devin-donnelly 691a680c89 Merge pull request #2779 from jbeda/bootstrap-token
Add details on Bootstrap Tokens
2017-03-20 11:20:04 -07:00
Sahdev P. Zala 7b9d2ff299 Merge branch 'kubectrlprereq' of https://github.com/spzala/kubernetes.github.io into kubectrlprereq 2017-03-20 14:17:48 -04:00
Sahdev P. Zala 42c2e06e6a Merge branch 'kubectrlprereq' of https://github.com/spzala/kubernetes.github.io into kubectrlprereq 2017-03-20 14:16:59 -04:00
Xiaoyu Zhang 9c9d359fb3 fix a typo in /docs/user-guide/configmap/index.md
change "value" to "values"
2017-03-20 14:49:37 +08:00
Xiaoyu Zhang 4282f695c9 Fix monitor-node-health.md
The url link does not exist.
2017-03-20 14:23:19 +08:00
Joe Beda 28c1fc5df8 Update kubeadm guide and reference pages for 1.6
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
2017-03-19 10:04:17 -07:00
Xiaoyu Zhang 501d851eef amend monitor-node-health.md
Amend the url link.
2017-03-19 21:03:39 +08:00
Xiaoyu Zhang 069a2dabc6 update init-containers.md
change "apply" to "application"
2017-03-19 19:17:05 +08:00
Xiaoyu Zhang 0d19a29ef6 update out-of-resource.md
change "thresholds" to "threshold"
2017-03-19 19:10:04 +08:00
David Oppenheimer b8878e3bec Update docs to reflect affinity, taints, tolerations moving from alpha
annotations to (beta) fields.
2017-03-18 12:31:54 -07:00
wenlxie 0a33b3e910 Update manage-compute-resources-container.md
Change "he" to "The"
2017-03-18 22:23:30 +08:00
Guangya Liu ce87af7f3b Updated node controller for taints and tolerations. 2017-03-18 17:34:51 +08:00
chenhuan12 183b19d686 fix the command output
fix the command output
2017-03-18 15:01:18 +08:00
Madhusudan.C.S 5b50e8d04e Address review comments. 2017-03-17 22:36:26 -07:00
Shiyang Wang 8f64036db0 update resources name 2017-03-17 22:17:31 -05:00
Madhusudan.C.S 6c54d16ebc Update kubefed documentation. 2017-03-17 19:01:54 -07:00
Chao Xu 20fb544429 address comments 2017-03-17 17:42:58 -07:00
Chao Xu 2626c980f9 update gc doc for foreground garbage collection; add known issues for
non-core resources
2017-03-17 17:42:56 -07:00
Andrew Chen 9886f27a2e Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: (62 commits)
  Move Guide topic: Admin Guide
  Move Guide topic: Resource Monitoring. (#2895)
  Move Guide topic: Service. (#2891)
  Move Guide topic: Connecting Apps with Services. (#2885)
  Move Guide topic: Federation Service Discovery. (#2884)
  Move Guide topic: Config Provider Firewalls. (#2883)
  Move Guide topic: Kubeconfig File
  Move Accessing Clusters topic to Concepts. (#2875)
  Move Guide topic: Sharing Clusters
  Move Guide topic: Prereqs
  Move Garbage Collection topic. (#2874)
  Move PetSets topic. (#2873)
  Move Guide topic: Pod Templates (#2872)
  Move StatefulSets topic. (#2869)
  Rename /docs/tasks/job/work-queue-1/
  Move Guide topic: Fine Parallel Processing using a Work Queue (#2870)
  Move Guide topic: Coarse Parallel Processing Using a Work Queue
  Move Init Containers topic. (#2866)
  Move Guide topic: Parallel Processing using Expansions (#2867)
  Move Pod overview. (#2865)
  ...

# Conflicts:
#	docs/api.md
#	docs/user-guide/jobs.md
2017-03-17 17:33:48 -07:00
Andrew Chen 6f8c97f4d2 Merge pull request #2901 from kubernetes/migration-admin-guide
Move Guide topic: Admin Guide
2017-03-17 17:28:18 -07:00
Andrew Chen f5c7bc79ff Move Guide topic: Admin Guide 2017-03-17 17:17:42 -07:00
Joe Beda 017f4e66ea Add details on Bootstrap Tokens 2017-03-17 16:49:14 -07:00
Joe Beda ade8225f0f Reformat kubeadm guide
* Word wrap paragraphs
* Switch to fenced code blocks for all code samples
* Render programs as plain text
* Separate out program invocation from program output

Much of this is to follow the style guide: https://kubernetes.io/docs/contribute/style-guide/

Signed-off-by: Joe Beda <joe.github@bedafamily.com>
2017-03-17 16:37:45 -07:00
sidharthamani 6e657471d3 add docs about cloud-controller-manager 2017-03-17 16:11:45 -07:00
Eric Chiang bdf2b6ee49 docs/admin: document OpenID Connect plugin's claim prefixing 2017-03-17 10:54:07 -07:00
Steve Perry 29f5fa0990 Move Guide topic: Resource Monitoring. (#2895) 2017-03-17 10:35:08 -07:00
Steve Perry bf71f21a5b Move Guide topic: Service. (#2891)
* Move Guide topic: Service.

* Move Guide topic: External Load Balancer.

* Fix TOC.
2017-03-17 09:59:35 -07:00
Jakob Karalus 172a9add67 Added example and docu for hostPort ranges 2017-03-17 15:55:13 +01:00
Madhusudan.C.S 8cc433bc6c Deprecate federation-up/deploy.sh doc. 2017-03-17 01:35:16 -07:00
Phillip Wittrock fd0215c3b5 Update Deployment group from "extensions" to "apps" 2017-03-16 20:14:35 -07:00
Phillip Wittrock 5235c4bdf3 Add Kubernetes 1.6 reference docs to the doc 2017-03-16 18:30:27 -07:00
Phillip Wittrock 292a9ca3ce Kubernetes 1.6 api reference docs 2017-03-16 18:29:00 -07:00
Phillip Wittrock 21773e77fa Kubernetes release 1.6 resource reference docs 2017-03-16 18:28:44 -07:00
Sahdev P. Zala c163956f8d Merge branch 'kubectrlprereq' of https://github.com/spzala/kubernetes.github.io into kubectrlprereq 2017-03-16 20:29:40 -04:00
Sahdev P. Zala eb2a462951 Add Minikube reference in the Kubectl configuration doc
For Minikube users, the cluster is created when they install Minikube. Add
this in the doc.
2017-03-16 20:27:12 -04:00
Guangya Liu 86c3768961 Added --register-with-taints for node.md. 2017-03-17 08:24:57 +08:00
Sahdev P. Zala 7085715c47 Merge branch 'master' into kubectrlprereq 2017-03-16 20:22:42 -04:00
Guangya Liu b72c26923e Updated user guide for kubectl taint by adding NoExecute. 2017-03-17 08:19:21 +08:00
Guangya Liu 127276b9ea Added table of content to node-selection.
This can help generate the table of content so that other files
can make reference of different sections.
2017-03-17 08:15:08 +08:00
Steve Perry e889494348 Move Guide topic: Connecting Apps with Services. (#2885) 2017-03-16 16:50:19 -07:00
Steve Perry d239db84cf Move Guide topic: Federation Service Discovery. (#2884) 2017-03-16 16:27:55 -07:00
Steve Perry 96074a1d64 Move Guide topic: Config Provider Firewalls. (#2883) 2017-03-16 16:06:59 -07:00
Andrew Chen 09c97f4245 Merge pull request #2882 from kubernetes/migration-kubeconfig-file
Move Guide topic: Kubeconfig File
2017-03-16 15:48:46 -07:00
Andrew Chen fe780e07a5 Move Guide topic: Kubeconfig File 2017-03-16 15:42:11 -07:00
iphutch da2a9dad77 Move Accessing Clusters topic to Concepts. (#2875)
* Move Accessing Clusters topic to Concepts.

* Update concepts.yml
2017-03-16 15:29:13 -07:00
Andrew Chen ab51c87e77 Merge pull request #2879 from kubernetes/migration-sharing-clusters
Move Guide topic: Sharing Clusters
2017-03-16 15:25:12 -07:00
Andrew Chen 3191d64cbb Move Guide topic: Sharing Clusters 2017-03-16 15:15:28 -07:00
Andrew Chen be37f8f986 Merge pull request #2877 from kubernetes/migration-prereqs
Move Guide topic: Prereqs
2017-03-16 15:04:20 -07:00
Andrew Chen b40a74416d Move Guide topic: Prereqs 2017-03-16 14:53:31 -07:00
Steve Perry 4c6b8cc087 Move Garbage Collection topic. (#2874)
* Move Garbage Collection topic.

* Fix included file.
2017-03-16 13:58:07 -07:00
Steve Perry 01b2be0b45 Move PetSets topic. (#2873) 2017-03-16 13:41:18 -07:00
Andrew Chen c3af1df5c6 Move Guide topic: Pod Templates (#2872)
* Move Guide topic: Pod Templates

* tweak header level and capitalization
2017-03-16 13:34:57 -07:00
devin-donnelly 5ae0ef3d8e Merge pull request #2774 from davidopp/release-1.6
Update node-selection documentation with information about taints, tolerations, and alpha support for per-pod-configurable behavior when there are node problems
2017-03-16 13:33:27 -07:00
Steve Perry 8d9c3938e4 Move StatefulSets topic. (#2869)
* Move StatefulSets topic.

* Fix TOC.
2017-03-16 13:21:14 -07:00
Phillip Wittrock 495e9f22b6 kubectl 1.6 reference docs 2017-03-16 13:11:42 -07:00
devin-donnelly 35b59b4e03 Merge pull request #2843 from wongma7/external-feature
Add external provisioners to PV doc
2017-03-16 13:09:54 -07:00
devin-donnelly 9c8a08a310 Merge pull request #2854 from portworx/portworx-volume-plugin
Portworx Volume Plugin
2017-03-16 13:08:12 -07:00
Andrew Chen c5e149cc42 Merge pull request #2871 from kubernetes/rename-jobs-work-queue-1
Rename work-queue-1
2017-03-16 13:04:12 -07:00
Andrew Chen 4e0ef3cddf Rename /docs/tasks/job/work-queue-1/ 2017-03-16 12:56:44 -07:00
Andrew Chen 7cc984d66b Move Guide topic: Fine Parallel Processing using a Work Queue (#2870)
* Move Guide topic: Fine Parallel Processing using a Work Queue

* add migration notice

* fixed capitalization
2017-03-16 12:46:09 -07:00
David Oppenheimer 4013c5fb60 Update node-selection documentation with information about taints,
tolerations, and alpha support for per-pod-configurable behavior
when there are node problems.
2017-03-16 12:25:37 -07:00
Andrew Chen ad8f009317 Merge pull request #2868 from kubernetes/migration-jobs-work-queue-1
Move Guide topic: Coarse Parallel Processing Using a Work Queue
2017-03-16 12:00:13 -07:00
Andrew Chen db94608ba2 Move Guide topic: Coarse Parallel Processing Using a Work Queue 2017-03-16 11:44:29 -07:00
Steve Perry 0386c39df1 Move Init Containers topic. (#2866) 2017-03-16 11:40:57 -07:00
Andrew Chen a0a51fb032 Move Guide topic: Parallel Processing using Expansions (#2867)
* Move Guide topic: Parallel Processing using Expansions

* fix links to /docs/user-guide/jobs/
2017-03-16 11:31:57 -07:00
Steve Perry 32b334711c Move Pod overview. (#2865)
* Move Pod overview.

* Fix redirection.
2017-03-16 10:51:19 -07:00
Sahdev Zala b8e1d8853a Merge branch 'master' into kubectrlprereq 2017-03-16 12:53:24 -04:00
Sahdev P. Zala a806d93a53 Mention Minikube in the Kubectl configuration doc
Provide reference of Minikube along with kube-up.sh on creating cluster. This
will give convey message to first time users of the Minikube that they should
make sure Minikube is installed before running this step of
$ kubectl cluster-info

fixes #2863
2017-03-16 12:39:58 -04:00
Jordan Liggitt c4e8b56539 Document non-standard verbs 2017-03-16 11:40:08 -04:00
Matthew Wong 07d3a89fad Add external provisioners to PV doc 2017-03-16 11:19:04 -04:00
Aditya Dani e29c8d6b91 Portworx Volume Plugin - Add relevant doc references
- PortworxVolume as a type of Volume.
    - Portworx as a type of StorageClass
2017-03-16 14:52:49 +00:00
Andrew Chen f7648e7c27 Move Guide topic: Jobs (#2853)
* Move Guide topic: Jobs

* add job.yaml file

* change title
2017-03-15 18:20:29 -07:00
Andrew Chen 7efaa0e1c2 Merge pull request #2852 from kubernetes/migration-config-best-practices
Move Guide topic: Configuration Best Practices
2017-03-15 17:47:17 -07:00
Andrew Chen ba34326fa0 Move Guide topic: Configuration Best Practices 2017-03-15 17:41:59 -07:00
Andrew Chen b65d0a30c9 Move Guide topic: Rolling Update Demo (#2850)
* Move Guide topic: Rolling Update Demo

* rename file
2017-03-15 17:31:38 -07:00
Steve Perry d01672cd2d Move What is Kubernetes topic. (#2851) 2017-03-15 17:21:06 -07:00
Steve Perry 3ab1fa20bc Move Kubernetes API page. (#2849) 2017-03-15 17:07:34 -07:00
Andrew Chen 664c27ae9f Merge pull request #2848 from kubernetes/migration-rolling-updates
Move Guide topic: Rolling Updates
2017-03-15 17:01:33 -07:00
Andrew Chen b66a83d5a6 Move Guide topic: Rolling Updates 2017-03-15 16:53:37 -07:00
Steve Perry 088cfc2c6f Concepts toc (#2840)
* Move Guide topic: Limit range.

* Adjust Concepts Overview TOC.
2017-03-15 16:49:02 -07:00
Andrew Chen 975b93efc1 Merge pull request #2847 from kubernetes/migration-resizing-a-replication-controller
Move Guide topic: Resizing a replication controller
2017-03-15 16:42:24 -07:00
Andrew Chen 7a41f3feb6 Move Guide topic: Resizing a replication controller 2017-03-15 16:17:09 -07:00
Andrew Chen 3ced6dbc2e Move Guide topic: Replication Controller Operations 2017-03-15 16:04:32 -07:00
Andrew Chen 4d9c7e1990 fix link 2017-03-15 15:38:56 -07:00
Andrew Chen bbc6835fc5 add back missing / 2017-03-15 15:38:56 -07:00
Andrew Chen 630cce61de add nginx-app.yaml file 2017-03-15 15:38:56 -07:00
Andrew Chen 7071b5e753 Move docs/user-guide/managing-deployments.md to /docs/concepts/cluster-administration/manage-deployment.md 2017-03-15 15:38:56 -07:00
Tim Hockin 6ab05fbf1c Create CNAME 2017-03-15 14:42:51 -07:00
Tim Hockin f3ae692dab Delete CNAME 2017-03-15 14:31:30 -07:00
Tim Hockin 1ec090cc7c Create CNAME 2017-03-15 14:29:07 -07:00
Tim Hockin 1ee7bf7281 Delete CNAME 2017-03-15 13:46:16 -07:00
Steve Perry e803967e16 Dns (#2839)
* Move Guide topic: Limit range.

* Move Guide topic: DNS.
2017-03-15 11:50:04 -07:00
Steve Perry 8e3132bbe4 Quota2 (#2838)
* Move Guide topic: Limit range.

* Move Guide topic: Resource Quota concept.
2017-03-15 11:27:58 -07:00
Steve Perry 3175e9a9b6 Quota (#2836)
* Move Guide topic: Limit range.

* Move Guide topic: Resource Quota and Limits.
2017-03-15 11:09:50 -07:00
Steve Perry 9b5e645d92 Move Guide topic: Limit range. (#2835) 2017-03-15 10:43:56 -07:00
Steve Perry a804035cff Move Guide topic: Disruption Budget. (#2834) 2017-03-15 10:19:27 -07:00
Vishnu kannan d4383a4b6a define enforcement in node-allocatable doc
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2017-03-15 08:39:41 -07:00
Vishnu kannan b6a72da8e8 fix defaults and formatting on node-allocatable admin doc
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2017-03-15 08:39:41 -07:00
Vishnu kannan 0ecd5254d9 adding docs for node allocatable
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2017-03-15 08:39:41 -07:00
Vladimir Vivien 73cb92a0a9 Adds documentation for Dell EMC ScaleIO volume plugin
This commit updates the volumes documentation to include ScaleIO volume plugin information.
2017-03-15 08:34:57 -07:00
Wojciech Tyczynski 617f0f7e08 Merge pull request #2763 from kubernetes/etcd3
Added 1.6 Upgrade notes to outline changes for etcd 3.
2017-03-15 15:19:26 +01:00
Timothy St. Clair 47d2aa9bfd Added 1.6 Upgrade notes to outline changes for etcd 3. 2017-03-15 09:03:27 -05:00
Steve Perry fcdbb3a920 Move Guide topic: Audit. (#2824) 2017-03-14 19:13:33 -07:00
Steve Perry 567c32ef78 Apparmor (#2825)
* Move Guide topic: AppArmor.

* Add included files.
2017-03-14 19:09:08 -07:00
Steve Perry c96bb862d5 Move Guide topic: AppArmor. (#2823) 2017-03-14 18:01:32 -07:00
Steve Perry c2d59f0c83 Move Guide topic: Monitoring Node Health. (#2822)
* Move Guide topic: Monitoring Node Health.

* Move to Tasks.
2017-03-14 17:25:29 -07:00
Steve Perry 2dcf7a36bb Move Guide topic: Out of Resource. (#2821) 2017-03-14 16:54:21 -07:00
Andrew Chen 60c6921576 User Guide content migration: post notice (#2818)
* Add User Guide content migration notice.

* Fix formatting

* Tweek formatting to block highlight text in light gray.

* Try table instead of code block

* remove extra lines

* try table format

* fix links

* incorporate @ddonnelly feedback
2017-03-14 16:39:25 -07:00
Steve Perry d0d6f4ca48 Move Guide topic: Static Pods. (#2820) 2017-03-14 16:28:06 -07:00
Steve Perry 458548ace1 Move Guide topic: Network Plugins. (#2819)
* Move Guide topic: Network Plugins.

* Fix link.
2017-03-14 15:45:26 -07:00
Steve Perry fa668f520d Move Guide topic: Networking. (#2816) 2017-03-14 15:24:28 -07:00
Steve Perry 1fdc1ebe55 Move Guide topic: Limit storage consumption. (#2814)
* Move Guide topic: Limit storage consumption.

* Add title.
2017-03-14 14:41:51 -07:00
Steve Perry 7be7d6b519 Move a batch of cluster admin topics. (#2813) 2017-03-14 14:09:54 -07:00
Steve Perry f1e7d0bda9 Move topic from clusters to cluster-administration. (#2812) 2017-03-14 12:59:13 -07:00
Phillip Wittrock df5fecc5c8 Merge pull request #2781 from oshalygin/patch-3
Remove autogenerate todo from docs
2017-03-14 12:07:09 -07:00
Jordan Liggitt 8e0a24c6b0 RBAC doc cleanup 2017-03-14 11:16:55 -07:00
Steve Perry 44dcf9b7dc Fix link. (#2806) 2017-03-14 11:15:19 -07:00
devin-donnelly b60507278c Merge pull request #2793 from devin-donnelly/release-1.6
Merge latest from Master into Release 1.6
2017-03-14 11:14:55 -07:00
Steve Perry 5e581ccf3e Fix links. (#2808) 2017-03-14 11:12:24 -07:00
yupengzte 99426f4c55 The calendarWrapper attribute should be unique
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-14 11:00:42 -07:00
Jan Safranek 146af29a90 Add documentation of PV/PVC.storageClassName 2017-03-14 10:58:58 -07:00
Steve Perry bdaa82e79a Move kubectl Concept topics to Tutorials. (#2804)
* Move kubectl Concept topics to Tutorials.

* Add redirects and update links.
2017-03-14 10:06:54 -07:00
Steve Perry ee23982f7b Move Guide topics: Federation tutorial and concept. (#2802)
* Move Guide topics: Federation tutorial and concept.

* Add title.

* Fix link.
2017-03-13 23:43:45 -07:00
Steve Perry 4dce53334c Move Guide topics: Federation Tasks. (#2799) 2017-03-13 21:32:17 -07:00
Devin Donnelly b9c2e95fee Merge remote-tracking branch 'upstream/master' into release-1.6 2017-03-13 17:00:40 -07:00
peay 3be8f7493a Update CronJob history limits 2017-03-13 10:00:08 -07:00
Oleg Shalygin 6d30fc54da Remove autogenerate todo
- This should be captured via a GitHub issue
  and not a TODO in the README documentation
  which leads to confusion.
2017-03-12 19:11:52 -07:00
Jordan Liggitt 053bce4219 Add group and extra info to front proxy 2017-03-11 00:48:21 -05:00
Chao Xu 151f2968ba Merge pull request #2734 from gyliu513/registration-of-nodes
Removed `=` at the end of the flags.
2017-03-09 10:44:46 -08:00
Jordan Liggitt 730fada1af Clarify anonymous auth enablement 2017-03-09 13:16:21 -05:00
Guangya Liu a551d2673e Removed = at the end of the flags. 2017-03-09 23:49:32 +08:00
Tim St. Clair 8ae1fa3dcb Merge pull request #2733 from zhangxiaoyu-zidif/patch-16
update out-of-resource.md
2017-03-08 18:39:11 -08:00
Hemant Kumar cea23069c2 Add documentation for mount option 2017-03-08 21:06:47 -05:00
Xiaoyu Zhang 3f01be882e Merge branch 'master' into patch-16 2017-03-09 09:44:12 +08:00
devin-donnelly 6f9b0d9191 Merge pull request #2739 from devin-donnelly/release-1.6
Merge latest from Master into Release 1.6
2017-03-08 14:54:59 -08:00
Devin Donnelly 621465a55c Merge remote-tracking branch 'upstream/master' into release-1.6 2017-03-08 14:51:36 -08:00
Xin Zhang f7ad8644e9 Create a top-level CN directory to hold future md files for the Chinese kubernetes site 2017-03-07 21:49:59 -08:00
Xiaoyu Zhang b3110014de update out-of-resource.md
change "support" to "supports"
2017-03-08 09:45:54 +08:00
Xiaoyu Zhang 582ef6dc4b update out-of-resource.md
use a shorter and simpler expression.
2017-03-07 13:58:54 -08:00
Xiaoyu Zhang 04d12196a1 update out-of-resource.md
change "in cases when" to "in case that"
2017-03-07 13:58:54 -08:00
Xiaoyu Zhang 0e0440367c update garbage-collection.md
change the url to relative path.
2017-03-07 13:55:15 -08:00
Xiaoyu Zhang dd77deabed Update garbage-collection.md
modify the url and link
2017-03-07 13:55:15 -08:00
Andrew Chen 3e81720c34 Merge branch 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:
  Update RBAC doc
2017-03-07 13:46:28 -08:00
Andrew Chen 5b96f8f4ee Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  fix typo
  fix typo
  cluster-management--3
  Highlighted command --kubectl describe
  update init-containers.md
  Update pod.md
2017-03-07 13:46:16 -08:00
chenhuan12 f251dd790e fix typo
1、Delete the parameter "--google-json-key string";
2、Parameters "--ir-data-source string"、"--ir-dbname string"、"--ir-hawkular string"、"--ir-influxdb-host string"、"--ir-namespace-only"、"--ir-password string"、"--ir-percentile int"、"--ir-user string"  is missed.

see the "# kube-prxoy -help"
# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
2017-03-07 13:34:06 -08:00
chenhuan12 c507a52d17 fix typo
1、Parameters “--allow-verification-with-non-compliant-keys” is missed.
2、Delete the parameter "--google-json-key string";

see the "# kube-controller-manager  -help"
# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
2017-03-07 13:33:30 -08:00
jianglingxia 886771cf24 cluster-management--3
change 3 to three is better or not ?thanks!
2017-03-07 13:32:09 -08:00
jianglingxia 940e5e3a36 Highlighted command --kubectl describe
In web page ,there is no space ,need some empty space,thanks!
2017-03-07 13:29:06 -08:00
Xiaoyu Zhang 2958b30314 update init-containers.md
change "a different filesystem view" to "different filesystem views".
different init container should have different filesystem.
2017-03-07 13:27:39 -08:00
Jordan Liggitt d7e5371b0c Update RBAC doc 2017-03-07 12:20:34 -08:00
devin-donnelly 6b464aa960 Merge pull request #2726 from markronquillo/patch-1
Fix typo in pod.md
2017-03-07 10:25:32 -08:00
Mark Joseph Ronquillo b1993b2135 Update pod.md 2017-03-07 18:27:31 +08:00
Andrew Chen cc0db822f9 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  update to be retained
2017-03-06 17:00:04 -08:00
Xiaoyu Zhang 491b701c91 update to be retained
change "retain" to "to be retained".
2017-03-06 15:52:11 -08:00
Kevin 0f528eec9a update node-selection/index.md 2017-03-06 11:29:28 -08:00
Kevin 855cc67c77 Update "node selection" documentation to reflect Beta affinity syntax 2017-03-06 11:29:28 -08:00
Andrew Chen d83ea64d98 Merge branch 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'release-1.6' of https://github.com/kubernetes/kubernetes.github.io:
  Updated spec.schedulername to spec.schedulerName.
2017-03-06 11:28:26 -08:00
Andrew Chen 2f9aa17560 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: (58 commits)
  fix unsupported parameter of wget command
  Update Weave Net's title.
  Update garbage-collection.md
  Correct ASM logo filename
  fixed ASM blurb
  Repair Spotinst logo
  Doc formatting update
  fixing typo
  Minor spelling correction -- "rtk" to "rkt"
  update init-containers.md
  Update local instructions to new method.
  Update ubuntu install instructions.
  Highlighted command for `kubectl proxy`.
  Update Tasks landing page. (#2697)
  Deprecate Guide topics: quick-start ... (#2696)
  Deprecate Guide topic: Secrets Walkthrough. (#2695)
  Update multiple-schedulers doc  (#2063)
  remove extra space
  Reimplement PR #2525
  Deprecate Guide topic: Persistent Volume Walkthrough. (#2692)
  ...
2017-03-06 11:28:15 -08:00
chentao1596 68d5fe503f fix unsupported parameter of wget command 2017-03-06 11:09:20 -08:00
Marc CARRE 740e079849 Update Weave Net's title. 2017-03-06 11:08:45 -08:00
Xiaoyu Zhang b71c9927e4 Update garbage-collection.md
change "any" to "every"
2017-03-06 11:07:33 -08:00
mlambert890b e1fcf04cc1 Correct ASM logo filename 2017-03-06 11:01:11 -08:00
mlambert890b b3f34cd55b fixed ASM blurb 2017-03-06 11:01:11 -08:00
mlambert890b 3abc2a301d Repair Spotinst logo
Corrected size
2017-03-06 11:01:11 -08:00
Justin Nauman d8595aa4ea Doc formatting update
Corrected indentation for the `nonResourcePath` and got a bit zealous with restructuring that section...
2017-03-06 11:00:29 -08:00
Phanindra Pydisetty 133af46f89 fixing typo 2017-03-06 10:57:59 -08:00
Craig Sutherland ac31bb8270 Minor spelling correction -- "rtk" to "rkt" 2017-03-06 10:57:17 -08:00
Xiaoyu Zhang deef42e849 update init-containers.md
add one word.
2017-03-06 10:55:27 -08:00
Jorge O. Castro 1c5e5248ad Update local instructions to new method. 2017-03-06 10:48:39 -08:00
Jorge O. Castro 458f80b77a Update ubuntu install instructions. 2017-03-06 10:48:39 -08:00
Klaus Ma 32ab0977a2 Updated spec.schedulername to spec.schedulerName. 2017-03-06 10:47:46 -08:00
Guangya Liu 1cbcd2b596 Highlighted command for kubectl proxy. 2017-03-06 10:18:28 -08:00
mlambert890b 61c6266815 Correct ASM logo filename 2017-03-05 20:58:01 -08:00
mlambert890b b1db56f615 fixed ASM blurb 2017-03-05 20:56:00 -08:00
mlambert890b 979686122a Repair Spotinst logo
Corrected size
2017-03-05 20:44:47 -08:00
Michail Kargakis 56f8a68444 Remove redundant section in deployments
The status of the deployment is already covered in a later section in
this doc.
2017-03-04 18:52:00 +01:00
Steve Perry 1bc38a5bab Update Tasks landing page. (#2697) 2017-03-03 16:00:04 -08:00
Steve Perry 5e4a1ed081 Deprecate Guide topics: quick-start ... (#2696) 2017-03-03 15:18:37 -08:00
Steve Perry 172900f9aa Deprecate Guide topic: Secrets Walkthrough. (#2695) 2017-03-03 14:54:05 -08:00
Anirudh Ramanathan 3456093031 Update multiple-schedulers doc (#2063)
* Update tutorial

* Fix md formatting.

* Remove extraneous space
2017-03-03 14:28:17 -08:00
Andrew Chen b50ffef3fb remove extra space 2017-03-03 14:25:06 -08:00
Andrew Chen 1407f52478 Reimplement PR #2525
Fixes typo by removing the word "controller"
2017-03-03 14:25:06 -08:00
Steve Perry a238ed8ced Deprecate Guide topic: Persistent Volume Walkthrough. (#2692) 2017-03-03 14:02:35 -08:00
Xiaoyu Zhang c235b99649 Update garbage-collection.md
change “any” to "every"
2017-03-03 13:42:08 -08:00
Eduardo Baitello 50471b3395 Wrong label and kubectl get completed pods
The label `app=jobexample` should be `jobgroup=jobexample`.
Also, for get completed pods the flag `--show-all` is necessary.
2017-03-03 13:40:42 -08:00
Steve Perry 4d7aecf5de Deprecate Guide topics. (#2691) 2017-03-03 13:32:41 -08:00
Steve Perry adee25b768 Disallow indexing for liveness/index (#2689) 2017-03-03 12:10:47 -08:00
Steve Perry ec03295bf0 Move Guide topics: Logging (#2687) 2017-03-03 11:21:01 -08:00
Jeff Peeler 8dcc673d5d Add docs for projected volume driver 2017-03-03 09:23:47 -08:00
jianglingxia a06df4d14a kubeadm reference--change any to some (#2683)
* modify one word

examples   to  example

* doc-walkthrough-content

modify

* limitrange-update

I think it's redundant that the second to ,in order to do sth and do
sth!thanks!

* cluster-components-could be running

could be doing sth

* update cluster-components.md

In theory,Master components can be run....

* update cluster-components--add a space

add a space after the comma: "In theory, Master components..."

* Highlighted command --kubectl describe

In web page ,there is no space ,need some empty space,thanks!

* Revert "Highlighted command --kubectl describe"

This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1.

* kubeadm reference--change any to some

kubeadm can install any  add-on ?
2017-03-03 00:18:17 -08:00
Xiuyu Li 76f9a1b785 remove redundant a
Signed-off-by: Xiuyu Li <nickleefly@gmail.com>
2017-03-03 00:17:40 -08:00
foxyriver 34cb50be94 fix CronJob object name
fix CronJob object name
2017-03-03 00:17:13 -08:00
houjun e06617a5a1 Modify the link URL of [kubelet eviction design doc]
[kubelet eviction design doc] should be linked to kubernetes.github.io
instead of community/design-proposal.
2017-03-03 00:16:47 -08:00
Chris Schmich 9443291066 s/acomplish/accomplish/ 2017-03-03 00:15:59 -08:00
Rob Paisley d360cee992 Add links to Docker/rtk in cluster-intro.html 2017-03-03 00:12:12 -08:00
Bruce Auyeung 5f22fabf80 add required images in kubeadm init step 2017-03-03 00:09:39 -08:00
yupengzte f88f28bced The attribute [calendarWrapper] must be unique
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-03 00:01:43 -08:00
Xiuyu Li e610c89cc4 use relative path for ha-master-gce image
Signed-off-by: Xiuyu Li <nickleefly@gmail.com>
2017-03-03 00:00:03 -08:00
Xiuyu Li c62eb411cc move ha-master-gce.png to images/docs
Signed-off-by: Xiuyu Li <nickleefly@gmail.com>
2017-03-03 00:00:03 -08:00
huzhifeng 4cba37750b Revision as the suggestion describe 2017-03-02 23:59:04 -08:00
huzhifeng 6a35189e21 Add example show how to configure proxy for kube 2017-03-02 23:59:04 -08:00
jianglingxia abe3171d0a Revert "Highlighted command --kubectl describe"
This reverts commit a70d0a3e3537c3f91b197b23f949e1e506c951d1.
2017-03-02 11:21:04 -08:00
jianglingxia a380fec339 Highlighted command --kubectl describe
In web page ,there is no space ,need some empty space,thanks!
2017-03-02 11:21:04 -08:00
jianglingxia 1abe7577cc update cluster-components--add a space
add a space after the comma: "In theory, Master components..."
2017-03-02 11:21:04 -08:00
jianglingxia 40bf97accf update cluster-components.md
In theory,Master components can be run....
2017-03-02 11:21:04 -08:00
jianglingxia 7dcfaf0b87 cluster-components-could be running
could be doing sth
2017-03-02 11:21:04 -08:00
houjun b86ebf1991 Add --leader-elect=false
Second scheduler could not start without disabling leader-elect.
2017-03-02 11:19:25 -08:00
Jeffrey Regan 0c6b5c6c3f Fix link to dev guide. 2017-03-02 11:05:42 -08:00
Hung Nguyen Viet e6ec869ca7 Remove all dead links, use just filename
As user can guess that it is file copied from the shown content
2017-03-02 10:59:56 -08:00
Hung Nguyen Viet f6bb5e6d44 Update command as files contain no newline 2017-03-02 10:59:56 -08:00
Hung Nguyen Viet e1212ea63b Use single quote to avoid string interpolation, update output 2017-03-02 10:59:56 -08:00
Viet Hung Nguyen 8f30034cc2 Remove newline before passing to base64 2017-03-02 10:59:56 -08:00
yupengzte e6a7773fe4 The attribute [allowfullscree] must have a value
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-03-02 10:43:41 -08:00
mlambert890b 742af56ffe Logo file updates for new registrants
Logos for new registrants
2017-03-02 10:37:01 -08:00
mlambert890b 94f02ff83d Q1 update to k8s tech and service partner list
New partners registered to K8s Partner Ecosystem sign-up form.  Logo updates companion to this edit still WIP
2017-03-02 10:37:01 -08:00
Konstantinos Tsakalozos af34e80f7e Using it vs Juju Kubernetes 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos f2e481abd8 Spell fixes 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos dbedb28b51 Update backups.md 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos 923aeb8bda Update backups.md 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos 5e5d91e3c2 Update validation.md 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos a15d5c1223 Update installation.md 2017-03-02 10:34:18 -08:00
Konstantinos Tsakalozos 6dc694a161 Update index.md 2017-03-02 10:34:18 -08:00
xilabao 7aa8b474f8 support extra arguments in kubeadm master config 2017-03-02 10:14:42 -08:00
Andrew Chen a292ca987a Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Correct the certificate name
2017-03-02 10:12:48 -08:00
Manjunath A Kumatagi 0d7bcf5e6e Correct the certificate name 2017-03-02 09:59:57 -08:00
Andrew Chen 06b5791afa Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  getting-started-guides: add CoreOS Tectonic
  add DefaultTolerationSeconds admission controller
  Move Guide topic: Connect with Proxies. (#2663)
  Move Guide topic: Bootstrapping Pet Sets. (#2662)
  Move Guide topic: Using Port Forwarding. (#2661)
  fix typo (#2656)
  Move Guide topic: Using Environment Variables. (#2645)
  missing word
  Prototype for deprecating User Guide topic.
  Update static-pods.md
  Update static-pods.md
2017-03-02 09:49:33 -08:00
Rob Szumski c3e5ad74c5 getting-started-guides: add CoreOS Tectonic 2017-03-02 09:47:54 -08:00
xilabao 06416ac6e8 add DefaultTolerationSeconds admission controller 2017-03-01 16:27:13 -08:00
Andrew Chen 92c897998b Merge pull request #2518 from scjane/patch-7
Update static-pods.md
2017-03-01 16:25:08 -08:00
Jared a562f77ce0 Merge pull request #2643 from steveperry-53/deprecation
Prototype for deprecating User Guide topic.
2017-03-01 14:38:54 -08:00
Jared 034a978c5f Merge branch 'master' into deprecation 2017-03-01 14:35:33 -08:00
Steve Perry 6b675d9b69 Move Guide topic: Connect with Proxies. (#2663)
* Move Guide topic: Connect with Proxies.

* Fix link.
2017-03-01 09:42:05 -08:00
Steve Perry a642102dc8 Move Guide topic: Bootstrapping Pet Sets. (#2662)
* Move Guide topic: Bootstrapping Pet Sets.

* Add TOC entry.
2017-03-01 09:20:52 -08:00
Steve Perry a2fbc82bd0 Move Guide topic: Using Port Forwarding. (#2661) 2017-03-01 08:55:15 -08:00
tanshanshan b9ca35076b fix typo (#2656)
fix typo
2017-03-01 08:26:42 -08:00
Steve Perry 1564ae52b7 Move Guide topic: Using Environment Variables. (#2645) 2017-02-28 19:05:31 -08:00
Wang Jie fd9ff4c4e0 Merge branch 'master' into patch-7 2017-03-01 09:53:37 +08:00
Philipp T 04f2e50caa missing word
The return of the OCD.
2017-02-28 15:17:19 -08:00
devin-donnelly 46c212b7a8 Merge pull request #2647 from devin-donnelly/release-1.6
Merge latest from master into Release 1.6
2017-02-28 14:34:08 -08:00
Devin Donnelly 9a96256e49 Merge remote-tracking branch 'upstream/master' into release-1.6 2017-02-28 14:33:19 -08:00
steveperry-53 8ab16cb669 Prototype for deprecating User Guide topic. 2017-02-28 11:15:54 -08:00
jianglingxia 4bb9a3a6af kubeadm reference -- /
set up/manage mean set up or manage ? it's better use or?
2017-02-28 10:03:43 -08:00
mlambert890b 2ef4477df3 mirantis_logo.png
,/images/community_logos/mirantis_logo.png updated per Mirantis request
2017-02-28 09:52:04 -08:00
chenhuan12 764225a7a0 fix the command output
fix the command output
2017-02-28 09:50:58 -08:00
EJ 8b97c4265f fix link to go to pod-lifecycle page 2017-02-28 09:37:33 -08:00
Steve Perry 6f83f5070a Move Guide Topic: Multi-container pods. (#2642) 2017-02-28 09:08:11 -08:00
Wang Jie dd595ae05b Update static-pods.md
It works. Please review it again.
2017-02-28 18:57:54 +08:00
Steve Perry 3c20c4da09 Update landing pages for Tasks and Tutorials. (#2634) 2017-02-27 17:45:20 -08:00
xilabao eb57603fcb add http proxy infomation in kubeadm 2017-02-27 17:36:01 -08:00
huzhifeng 1cbd24e888 Merge two pieces to one words 2017-02-27 17:34:21 -08:00
huzhifeng 06104e35a3 Update grammar for kubeadm.md, thanks @chenopis 2017-02-27 17:34:21 -08:00
huzhifeng d30c4a7c78 Add diagnose tips when you face problem. 2017-02-27 17:34:21 -08:00
chenhuan12 11f3e0fec1 Delete the parameter "--google-json-key string"
“# kube-scheduler -help”can not find --google-json-key option

# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-23T00:04:39Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+82450d0", GitCommit:"f5ef9802914a47c848fd84c287333f8b4d28bbc1", GitTreeState:"dirty", BuildDate:"2017-01-22T23:56:57Z", GoVersion:"go1.7", Compiler:"gc", Platform:"linux/amd64", USEEVersion:"V1.02.01_alpha", USEEPublishDate:"2017-1-10 00:00:00"}
2017-02-27 14:28:14 -08:00
Steve Perry 650d632519 Move Compute Resources topic to Concepts. (#2410) 2017-02-27 14:16:14 -08:00
Andrew Chen 3213006abc Merge pull request #2619 from xsgordon/issue-1600
Provide correct location for KUBE_ETCD_SERVERS
2017-02-27 14:00:50 -08:00
Stephen Gordon 29b3f2b99a Provide correct location for KUBE_ETCD_SERVERS
Provide correct location for KUBE_ETCD_SERVERS configuration key. It was
previously listed as being in /etc/kubernetes/config but is actually in
/etc/kubernetes/apiserver.

Related: https://github.com/kubernetes/kubernetes.github.io/issues/1600
2017-02-25 16:12:07 -05:00
Andrew Chen 86df553c4b Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: (136 commits)
  Clarify minimum version of kubernetes supporting PSP authz
  Fix typo: federation-controller-mananger => federation-controller-manager
  Fix typo: federation-controller-mananger => federation-controller-manager
  fix command kubectl get svc,pod output
  limitrange-update
  doc-walkthrough-content
  package apt-transport-https should be installed
  Fix apimachinery vendored dependencies in examples_test.
  Delete the parameter "--google-json-key string"
  Removed Extra space in the KUBE2GO commit
  Added KUBE2GO.io
  fix some wrong links
  Update hello-minikube.md
  show kubectl_rollingupdate svg
  Fixed flag for eviction-soft.
  Update review-issues.md
  Move Guide topic: Garbage Collection. (#2488)
  Update source-ip.md
  Update source-ip.md
  concepts/abstractions: init containers example.
  ...
2017-02-24 15:14:21 -08:00
Andrew Chen b1cae4beb6 Merge pull request #2602 from tailnode/fix_links
Fix links
2017-02-24 15:12:12 -08:00
Jordan Liggitt 6d133c64d5 Clarify minimum version of kubernetes supporting PSP authz 2017-02-24 15:04:21 -08:00
Patrick Decat ae56b5bf07 Fix typo: federation-controller-mananger => federation-controller-manager 2017-02-24 15:04:04 -08:00
Patrick Decat 30023fb5b5 Fix typo: federation-controller-mananger => federation-controller-manager 2017-02-24 15:03:46 -08:00
chenhuan12 4508f114f9 fix command kubectl get svc,pod output
fix command kubectl get svc,pod output
2017-02-24 15:03:17 -08:00
jianglingxia 474ae68f25 limitrange-update
I think it's redundant that the second to ,in order to do sth and do
sth!thanks!
2017-02-24 15:02:54 -08:00
jianglingxia eeb1367c64 doc-walkthrough-content
modify
2017-02-24 15:02:54 -08:00
huzhifeng 180a9b6abc package apt-transport-https should be installed
Ubuntu default install not include apt-transport-https. so if you want to download package from https repo, you need install apt-transport-https package first
2017-02-24 15:00:21 -08:00
Jeff Mendoza fc9b83e95d Fix apimachinery vendored dependencies in examples_test. 2017-02-24 14:44:38 -08:00
chenhuan12 58867752f5 Delete the parameter "--google-json-key string"
Delete the parameter "--google-json-key string"
2017-02-24 09:39:21 -08:00
tailnode 83bfcd018f Merge remote-tracking branch 'upstream/master' into fix_links 2017-02-24 08:18:34 +08:00
roopakparikh fb7a756a77 Removed Extra space in the KUBE2GO commit
Last pull request had an extra space and was missing a newline between the last provider and KUBE2GO
2017-02-23 14:26:29 -08:00
roopakparikh 741292ddb6 Added KUBE2GO.io
Adding a new Free service KUBE2GO.io that provides quick creation of K8s clusters on AWS and other public clouds.
2017-02-23 14:26:29 -08:00
tailnode 47ae58f3c4 fix some wrong links 2017-02-23 16:08:38 +08:00
tailnode 5310464183 Merge remote-tracking branch 'upstream/master' into fix_links 2017-02-23 16:05:56 +08:00
Andres Villarroel da2ebff417 Update hello-minikube.md
- Proposing a different way to run curl without proxy, without touching current environment
 - There's a formatting problem and the whole thing is being displayed in a single line

    ![screenshot](http://imgur.com/download/nfk02hd)
2017-02-23 15:30:47 +08:00
Xiuyu Li fd3b6e66d8 show kubectl_rollingupdate svg 2017-02-23 15:30:47 +08:00
Guangya Liu f5e5175247 Fixed flag for eviction-soft. 2017-02-23 15:30:47 +08:00
Jared 8f6de25c98 Update review-issues.md 2017-02-23 15:30:47 +08:00
Steve Perry 69cfd63def Move Guide topic: Garbage Collection. (#2488) 2017-02-23 15:30:47 +08:00
ztewyk 0a76c67c5b Update source-ip.md 2017-02-23 15:30:47 +08:00
ztewyk c295346b05 Update source-ip.md 2017-02-23 15:30:47 +08:00
Elijah C. Voigt b61c95f072 concepts/abstractions: init containers example. 2017-02-23 15:30:47 +08:00
divyenpatel a512e93e9d updated vsphere getting started guide
addressed review comments
addressed chenopis's review comments
2017-02-23 15:30:47 +08:00
Andrew Chen a7192a9e9a Revert "Updated description for kubeadm init --kubernetes-version" 2017-02-23 15:30:47 +08:00
Alexander Kanevskiy 8261341295 Updated description for kubeadm init --kubernetes-version 2017-02-23 15:30:47 +08:00
Cao Shufeng c5a79de79c Remove details about where authenticator is implemented
It not necessary to mention where the functions are implemented in
document. Further more, the directories recorded here is out of date.

Now they are in:
staging/src/k8s.io/apiserver/plugin/pkg/authenticator/...
2017-02-23 15:30:47 +08:00
tanshanshan b89155a351 replace petset with statefulsets 2017-02-23 15:30:47 +08:00
Ricardo M. Augusto 142bf7dcc4 Updated result of command
Actually according to the command in example:

kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub

The keys will be available with names ssh-publickey and ssh-privatekey.
2017-02-23 15:30:47 +08:00
chenhuan12 0b9dca5a36 replace argumment with argument
replace argumment with argument
2017-02-23 15:30:47 +08:00
Guangya Liu 4731f33d48 Highlight some keyworks in garbage-collection.md. 2017-02-23 15:30:47 +08:00
Guangya Liu 363db9d8af Fixed typos in persistent volume index.md 2017-02-23 15:30:47 +08:00
Ben Mathews 406fe2683b Remove reference to port-forward to services
port forwarding to services isn't supported.
2017-02-23 15:30:47 +08:00
tanshanshan 4806f01d8f add an example 2017-02-23 15:30:47 +08:00
tanshanshan 65eacf1145 fix typo 2017-02-23 15:30:47 +08:00
Olegs Jeremejevs b807813244 Fix typo in concepts 2017-02-23 15:30:47 +08:00
ztewyk dfb8b79b15 Parallel Jobs with a *work queue*:
do not specify `.spec.completions`, default to `.spec.Parallelism`, not  default to 1
2017-02-23 15:30:47 +08:00
xuxinkun dc053ed54f Add more options for self-registration. 2017-02-23 15:30:47 +08:00
Bruce Auyeung 7022b43bc2 dedent yaml code blocks
otherwise extra redundant ````yaml` characters will be displayed
because github code fencing doesn't need any indentation
2017-02-23 15:30:47 +08:00
Harry Zhang 8e490b4251 Add kubelet eviction in GC doc (#2484) 2017-02-23 15:30:47 +08:00
Michael Fraenkel ce82d6301d Revert "Document new optional support for ConfigMap and Secret"
This reverts commit 7abcc6c854.
2017-02-23 15:30:47 +08:00
Michael Fraenkel f8c25df156 Revert "mend"
This reverts commit 324451c337.
2017-02-23 15:30:47 +08:00
jianglingxia 632b2ba474 modify one word
examples   to  example
2017-02-23 15:30:47 +08:00
chenhuan12 e854c082ad fix typo
1、column PORTS is missed
2、fix command `kubectl get pods`output
2017-02-23 15:30:47 +08:00
Guillaume Breton 17daf981f7 Fix typos in running zookeeper article 2017-02-23 15:30:47 +08:00
Steve Perry cd69b5b1e3 Add note about moved content. (#2563) 2017-02-23 15:30:47 +08:00
Steve Perry fe734530ba Move Guide topic to Tasks: Downward API (#2439) 2017-02-23 15:30:47 +08:00
architect.bian 3c262fa8d8 modify typora
modify namespace-kube-system to namespace=kube-system
2017-02-23 15:30:47 +08:00
liangxiaoping b8c5b72111 fix etcd disaster-recovery hyperlink 2017-02-23 15:30:47 +08:00
chenhuan12 1a81cfd224 replace kubernetes.d with kubelet.d
replace kubernetes.d with kubelet.d
2017-02-23 15:30:47 +08:00
tanshanshan 8140e9c2cf remove its name from file content 2017-02-23 15:30:47 +08:00
Jorge O. Castro 771a20326e Let's put kubectl in ~/bin. 2017-02-23 15:30:47 +08:00
steveperry-53 e71b14fa5c Move Guide toic to Tasks: kubectl exec. 2017-02-23 15:30:47 +08:00
foxish 33da5e4fb1 Fix travis and add comments 2017-02-23 15:30:47 +08:00
Steve Perry 3ed3018153 Move Pod Lifecycle to Concepts. (#2420)
* Move Pod Lifecycle to Concepts.

* Put moved note on old page.

* Update pod-lifecycle.md
2017-02-23 15:30:47 +08:00
Michail Kargakis 0ce865cc76 Update deployment completeness documentation 2017-02-23 15:30:47 +08:00
Andrew Chen 4e5e79f35f rollback PR #2522
Rollingback PR #2522 until we can verify which version optional:true will be available in.
2017-02-23 15:30:47 +08:00
sallydeng 0fca22e659 kubectl_apply.md-change it for label key
When I test this command, if the configmap has a label, it just delete the configmaps which has the same label key and that are not in the file.
kubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap
So I advise change the description like this:
"Apply the configuration in manifest.yaml and delete all the other configmaps with the same label key that are not in the file."
2017-02-23 15:30:47 +08:00
Arthur Miranda dec125aa53 Update the links of Deployment User Guide
The file 'blob/master/docs/devel/api-conventions.md' has moved to
'community/blob/master/contributors/devel/api-conventions.md'

Updates the links associated with these file.
2017-02-23 15:30:47 +08:00
Michael Mrowetz 2aea9f9424 #2534 mark openstack-heat as standalone-salt-conf 2017-02-23 15:30:47 +08:00
sallydeng 3e48da5f8b Change sentence base on reviewer's comment
"NOTE: The key-value optional:true is supported for kubernetes 1.5.3 and above."
2017-02-23 15:30:47 +08:00
sallydeng 183fc3d41c The key-value "optional:true" doesn't work
The key-value "optional:true"  doesn't work in 1.5.2 yet. 
So should we add a note here? "The key-value "optional:true" will be work after kubernetes 1.5.2."
2017-02-23 15:30:47 +08:00
foxish e1eb525f01 Fix travis.yml 2017-02-23 15:30:47 +08:00
Andrew Chen 1c634023f6 re: issue #2034; fix docker image link (#2532)
* re: issue #2034; fix docker image link

change link in line 26 to: https://gcr.io/google_containers/hpa-example

* point link to local Dockerfile

* specify it as the Dockerfile, not image
2017-02-23 15:30:47 +08:00
Andrew Chen 523bb2a1fd re: issue #1671; update to direct link
Update Docker Volumes link to https://docs.docker.com/engine/tutorials/dockervolumes/
2017-02-23 15:30:47 +08:00
Robert Kubis a8009333b1 Update cheatsheet for multi-container handling
Added how to retrieve logs for containers in multi-container pods
2017-02-23 15:30:47 +08:00
ztewyk 3ac0584953 add "--show-all" to kubectl get pods
add "--show-all" to  "kubectl get pods  --selector=job-name=pi --output=jsonpath={.items..metadata.name}" ,because the pod was ended
2017-02-23 15:30:47 +08:00
Arthur Miranda 40399ff636 Fix broken/outdated links in the ingress.md file
The Ingress controllers have moved to the kubernetes/ingress repository,
then some links are broken or outdated.
2017-02-23 15:30:47 +08:00
chenhuan12 aaca71474e column READY is missed
column READY is missed
2017-02-23 15:30:47 +08:00
Andrew Chen 4e3f6ae0e3 fix Kubenetes typo
Kubenetes -> Kubernetes
2017-02-23 15:30:47 +08:00
Fabrizio Milo 3a5b4c74d3 Update overview.md 2017-02-23 15:30:47 +08:00
Fabrizio Milo 886f15554f Update pod.md 2017-02-23 15:30:47 +08:00
scjane 87f0e317ab Update multiple-schedulers.md
Similar to #2518. But I think an unordered list can be used here :)
2017-02-23 15:30:47 +08:00
Pierre Ozoux 5a24d6d681 Fix the standard storageClass for GCE
As you can see here: https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/gce/gce.go#L117-L121
The default is not ssd
2017-02-23 15:30:47 +08:00
yupengzte a334d932e1 fix typo
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-02-23 15:30:47 +08:00
tanshanshan 07c4b9f6f8 fix typo 2017-02-23 15:30:47 +08:00
Bruce Auyeung 2c9b093c37 Update index.md 2017-02-23 15:30:47 +08:00
Zhou Tao 5d0f273f34 doc(kubeadm.md) - change base64 decode option to '--decode'
`base64 -D` will lead to error on Ubuntu: "base64: invalid option -- 'D'"
2017-02-23 15:30:47 +08:00
James Gregory 2a597e3789 Update links to ingress repository
Ingress moved out of contrib to kubernetes/ingress.
2017-02-23 15:30:47 +08:00
Albert Vaca ec8fd54d0f Updated dead links 2017-02-23 15:30:47 +08:00
Erik Bean fe9a0c1447 Fix unmatched closing paren
End of line 60 had a closing parenthesis, with no opening one to match. Probably left over from a previous version of the document
2017-02-23 15:30:47 +08:00
Jesse Johnston e79c6662f5 Update overview.md
Update link to Kubernetes API Conventions to point to current document location.
2017-02-23 15:30:47 +08:00
Ahmet Alp Balkan a35d5d3320 Move "User Guide" up in the sidebar
So that it is above "Accessing the Cluster" article which describes
more advanced topics and does not look coherent when it is read
linearly.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-02-23 15:30:47 +08:00
chenhuan12 f1ffbe9599 replace 30 seconds with 35 seconds
replace 30 seconds with 35 seconds
2017-02-23 15:30:47 +08:00
Christoph Blecker 068818e1c6 Fix link to StatefulSet docs from Pods page 2017-02-23 15:30:47 +08:00
foxyriver a5fe6ae18b fix parallelism result
According to job.yaml, the parallelism is 2
2017-02-23 15:30:47 +08:00
caiyixiang 01cea0c713 Update source-ip.md 2017-02-23 15:30:47 +08:00
scjane 3137a4926a Update index.md 2017-02-23 15:30:47 +08:00
Andreas Kohn 3808e4ccd7 Improve grammar 2017-02-23 15:30:47 +08:00
samiam 49dea6f23b Update kubectl_completion.md
Quote shell commands to improve format
2017-02-23 15:30:47 +08:00
Andrew Chen 809c1b8ebe reimplement PR #2217
socks shop port changed
2017-02-23 15:30:47 +08:00
Jason Lock 896c2ddd18 Add line-height to List Item
Add line-height to the body content
list items. The same line-height as the
paragraph.
2017-02-23 15:30:47 +08:00
Jason Lock 34ff10be2f Increase font-size and line-height CSS Properties
Increase the font-size and line-height CSS
properties for the paragraph and list items
within the documentation body content.
Adjusting these properties will make the
information a little easier to read.
2017-02-23 15:30:47 +08:00
Ahmet Alp Balkan 0123149feb Add SIG meetings calendar to /community/
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-02-23 15:30:47 +08:00
Bruce Auyeung eccf13d47b Update kubefed.md 2017-02-23 15:30:47 +08:00
Jérémy Wimsingues c3b483c49f Update overview.md
comamnd => command
2017-02-23 15:30:47 +08:00
scjane 9197fb5822 Update jobs.md 2017-02-23 15:30:47 +08:00
PassionForPie 58322206bd Minor grammatical fix
See https://en.wiktionary.org/wiki/greengrocer's_apostrophe
2017-02-23 15:30:47 +08:00
scjane 822d00df62 Update index.md 2017-02-23 15:30:47 +08:00
scjane 715ccb48e8 Update cron-jobs.md 2017-02-23 15:30:47 +08:00
Jérémy Wimsingues 2f351db5bb redundnacy => redundancy 2017-02-23 15:30:47 +08:00
Jasmine Hegman b51f5a2e2c Fixed a tiny typo
Kubernets -> Kubernetes
2017-02-23 15:30:47 +08:00
Jeff Mendoza 10d678bfc8 Fix Travis test builds' vendoring workaround. 2017-02-23 15:30:47 +08:00
steveperry-53 3a993cdadc New Task: Exposing Pod Info ... Env Vars 2017-02-23 15:30:47 +08:00
Phillip Wittrock 94aab012c0 Kubectl task document for printing out containers in a cluster. 2017-02-23 15:30:47 +08:00
cwitte4191 380fc42886 Update service-accounts.md
Added an automated code snippet to populate the registrykey on a serviceaccount using jq.
2017-02-23 15:30:47 +08:00
Robert Roland 601fd27c56 Adds documentation for new vSphere vm-uuid parameter.
Related to kubernetes/kubernetes#40892
2017-02-23 15:30:47 +08:00
Klaus Ma 76938f5b68 Updated multiple scheduler beta docs. 2017-02-23 15:30:47 +08:00
xilabao 1c04cedd41 add authorizationMode to kubeadm config
ref to https://github.com/kubernetes/kubernetes/pull/39846
2017-02-23 15:30:47 +08:00
Himanshu Raj efbf64d09d Add Contiv Information to addons.md 2017-02-23 15:30:47 +08:00
scjane 50db7c5b29 Update accessing-the-cluster.md 2017-02-23 15:30:47 +08:00
Andrew Chen 667c1818dc Migrate Init Containers to Concepts (#2438)
* Initial commit for Init Containers migration to Concepts section

* Add 1.5 beta include file

* Change include to renamed user-guide-content-moved.md file

* Fix Concepts/KO/Pods ToC

* reformat examples to bullet points

* fix formatting

* Add back Detailed Behavior, Support and compatibility

* Adjust formatting issues

* revised based on feedback from Steve

* complete sentence rewrite
2017-02-23 15:30:47 +08:00
sallydeng 554d6b7e9f Update ui.md
I reword it base on comment.
2017-02-23 15:30:47 +08:00
steveperry-53 25a3aac7b7 Remove Guide topic: kubectl to Manage Resources. 2017-02-23 15:30:47 +08:00
Steve Perry a70480af00 Update walkthrough.md 2017-02-23 15:30:47 +08:00
steveperry-53 ed4770e3d8 Remove Guide topic: Secrets Walkthrough. 2017-02-23 15:30:47 +08:00
steveperry-53 34ab8024ec Remove Guide topic: Deploying Applications. 2017-02-23 15:30:47 +08:00
James Duncan d584b78bed Corrected syntax of Networking Section
Removed an unnecessary 'the' from a sentence.
2017-02-23 15:30:47 +08:00
scjane 7bd4d8ba44 Update debugging-services.md 2017-02-23 15:30:47 +08:00
steveperry-53 c4e1940170 Remove User Guide topic: Launching, Exposing, 2017-02-23 15:30:47 +08:00
Eamon Taaffe e93aaf7028 Missing export statement in example 2017-02-23 15:30:47 +08:00
Ghe Rivero 0b192ad9ec Fix examples display 2017-02-23 15:30:47 +08:00
Andrew Martin 30b425b991 Fix typo
`pages` -> `page`
2017-02-23 15:30:47 +08:00
sallydeng aa1c435df3 Update ui.md: namespace name can't be number only
When the namespace name only contains number, such as "10", the pod can't be created in this kind of namespace, the pod will be put in default namespace.
2017-02-23 15:30:47 +08:00
scjane 8c1b7a6f5c Update assign-cpu-ram-container.md 2017-02-23 15:30:47 +08:00
Bruce Auyeung ee10fefec8 fix unreachable links and typos
1. fix unreachable federated resources links
2. federation proposal doc has been relocated, so i fix this link
3. make federation resources supporting cascading deletion clickable
4. make link to  `Kubernetes Scaling and Performance Goals` clickable
5. other typo fixes
2017-02-23 15:30:47 +08:00
tailnode c999e614f2 fix link 2017-02-23 15:30:47 +08:00
Ben Spoon 34f61c10e8 Fix overflow scroll on code blocks
Fixes https://github.com/kubernetes/kubernetes.github.io/issues/633
2017-02-23 15:30:47 +08:00
sallydeng 83d5b27667 Update ui.md base on comments
Former: The namespace name may contain a maximum of 63 alphanumeric characters and dashes (-) , can not contain capital letters. 
Now: The namespace name may contain a maximum of 63 alphanumeric characters and dashes (-) but can not contain capital letters.
2017-02-23 15:30:47 +08:00
sallydeng f2184920af Update namspace and service part of ui.md
1. Namespace can not contain capital letter.
2. For service, internal endpoints for cluster connections and external endpoints for external users. Here, it lost "external".
2017-02-23 15:30:47 +08:00
yupengzte a045b3987d Fix the url error
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-02-23 15:30:47 +08:00
caiyixiang af059b3b3c Update minikube.md 2017-02-23 15:30:47 +08:00
scjane 456a3ddcd6 Update kubefed.md 2017-02-23 15:30:47 +08:00
Vasily Upornikov 29e432d419 Update container-command-args.md 2017-02-23 15:30:47 +08:00
Philipp T 24fc013242 Update kubeadm.md
grammar ocd
2017-02-23 15:30:47 +08:00
Pan Luo a21e061dcb Add generic to create secret command
The generic is missing from the command and will cause error: `Error: unknown flag: --type` when running the command.
2017-02-23 15:30:47 +08:00
Shiyang Wang 5cf0e08b5b fix typo 2017-02-23 15:30:47 +08:00
David Calavera d2266ed0eb Add documentation to the redirects.rb script.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2017-02-23 15:30:47 +08:00
steveperry-53 aa04248251 Add object fields to style guide. 2017-02-23 15:30:47 +08:00
Ritesh H Shukla 2ef1b0145e Add default storage class documentation for 1.6
fixes https://github.com/kubernetes/kubernetes/issues/40070
2017-02-22 17:20:12 -08:00
Andrew Chen 64267ef509 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Update hello-minikube.md
  show kubectl_rollingupdate svg
  Fixed flag for eviction-soft.
  Update review-issues.md
  Move Guide topic: Garbage Collection. (#2488)
  Update source-ip.md
  Update source-ip.md
2017-02-22 17:18:14 -08:00
Andres Villarroel 9dc31d6302 Update hello-minikube.md
- Proposing a different way to run curl without proxy, without touching current environment
 - There's a formatting problem and the whole thing is being displayed in a single line

    ![screenshot](http://imgur.com/download/nfk02hd)
2017-02-22 16:04:42 -08:00
Xiuyu Li 7b69821e5e show kubectl_rollingupdate svg 2017-02-22 10:58:09 -08:00
Guangya Liu 8904a7f862 Fixed flag for eviction-soft. 2017-02-22 10:57:14 -08:00
Jared c5ca457297 Update review-issues.md 2017-02-22 10:54:28 -08:00
Steve Perry 5095cf60df Move Guide topic: Garbage Collection. (#2488) 2017-02-21 19:12:47 -08:00
ztewyk 93c5edce64 Update source-ip.md 2017-02-21 16:42:25 -08:00
ztewyk 13b7c5eb5c Update source-ip.md 2017-02-21 16:42:25 -08:00
Andrew Chen de68989df2 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  concepts/abstractions: init containers example.
  updated vsphere getting started guide addressed review comments addressed chenopis's review comments
2017-02-21 16:34:58 -08:00
Elijah C. Voigt a7b66a78a3 concepts/abstractions: init containers example. 2017-02-21 14:13:37 -08:00
divyenpatel f1ecafcdb1 updated vsphere getting started guide
addressed review comments
addressed chenopis's review comments
2017-02-21 14:12:33 -08:00
Andrew Chen 578123e106 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Revert "Updated description for kubeadm init --kubernetes-version"
  Updated description for kubeadm init --kubernetes-version
  Remove details about where authenticator is implemented
  replace petset with statefulsets
  Updated result of command
  replace argumment with argument
  Highlight some keyworks in garbage-collection.md.
  Fixed typos in persistent volume index.md
  Remove reference to port-forward to services
  add an example
  fix typo
  Fix typo in concepts
  Parallel Jobs with a *work queue*:
  Add more options for self-registration.
  dedent yaml code blocks
  Add kubelet eviction in GC doc (#2484)
2017-02-21 12:43:53 -08:00
Alexander Kanevskiy 7b17b51997 Updated description for kubeadm init --kubernetes-version 2017-02-21 12:42:46 -08:00
Andrew Chen bd7607a066 Revert "Updated description for kubeadm init --kubernetes-version" 2017-02-21 12:35:34 -08:00
Alexander Kanevskiy 91356cfbd2 Updated description for kubeadm init --kubernetes-version 2017-02-21 12:33:06 -08:00
Cao Shufeng e82a2e2a58 Remove details about where authenticator is implemented
It not necessary to mention where the functions are implemented in
document. Further more, the directories recorded here is out of date.

Now they are in:
staging/src/k8s.io/apiserver/plugin/pkg/authenticator/...
2017-02-21 11:50:02 -08:00
tanshanshan 60b5018738 replace petset with statefulsets 2017-02-21 11:47:29 -08:00
Ricardo M. Augusto 72c93f9b52 Updated result of command
Actually according to the command in example:

kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub

The keys will be available with names ssh-publickey and ssh-privatekey.
2017-02-21 11:38:11 -08:00
chenhuan12 960bb03b30 replace argumment with argument
replace argumment with argument
2017-02-21 10:18:55 -08:00
Guangya Liu 74d8327f6d Highlight some keyworks in garbage-collection.md. 2017-02-21 10:18:16 -08:00
Guangya Liu 58f20b10fa Fixed typos in persistent volume index.md 2017-02-21 10:16:04 -08:00
Ben Mathews d4c2da211e Remove reference to port-forward to services
port forwarding to services isn't supported.
2017-02-21 10:12:32 -08:00
tanshanshan 27039ac3b6 add an example 2017-02-21 10:06:36 -08:00
tanshanshan 03b53f2aa9 fix typo 2017-02-21 10:04:30 -08:00
Olegs Jeremejevs ab7d2c1b3c Fix typo in concepts 2017-02-21 10:01:04 -08:00
ztewyk 8dd5d7b8ad Parallel Jobs with a *work queue*:
do not specify `.spec.completions`, default to `.spec.Parallelism`, not  default to 1
2017-02-21 09:46:11 -08:00
xuxinkun abf9560874 Add more options for self-registration. 2017-02-21 09:40:05 -08:00
Joe Beda 1d1f2a8696 Merge pull request #2575 from bruceauyeung/patch-4
dedent yaml code blocks
2017-02-20 10:33:40 -08:00
Bruce Auyeung 180091299b dedent yaml code blocks
otherwise extra redundant ````yaml` characters will be displayed
because github code fencing doesn't need any indentation
2017-02-20 10:24:13 +08:00
Harry Zhang b01dd765a9 Add kubelet eviction in GC doc (#2484) 2017-02-17 11:06:01 -08:00
Andrew Chen 7673131c02 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: (22 commits)
  Revert "Document new optional support for ConfigMap and Secret"
  Revert "mend"
  modify one word
  fix typo
  Fix typos in running zookeeper article
  Add note about moved content. (#2563)
  Move Guide topic to Tasks: Downward API (#2439)
  modify typora
  fix etcd disaster-recovery hyperlink
  replace kubernetes.d with kubelet.d
  remove its name from file content
  Let's put kubectl in ~/bin.
  Move Guide toic to Tasks: kubectl exec.
  Fix travis and add comments
  Move Pod Lifecycle to Concepts. (#2420)
  Update deployment completeness documentation
  rollback PR #2522
  kubectl_apply.md-change it for label key
  Update the links of Deployment User Guide
  #2534 mark openstack-heat as standalone-salt-conf
  ...

# Conflicts:
#	docs/user-guide/configmap/index.md
2017-02-17 10:36:54 -08:00
Michael Fraenkel 4635787521 Revert "Document new optional support for ConfigMap and Secret"
This reverts commit 7abcc6c854.
2017-02-17 09:19:39 -08:00
Michael Fraenkel 265a2fc996 Revert "mend"
This reverts commit 324451c337.
2017-02-17 09:19:39 -08:00
jianglingxia 77b4ffa696 modify one word
examples   to  example
2017-02-17 09:14:38 -08:00
chenhuan12 041100bd2a fix typo
1、column PORTS is missed
2、fix command `kubectl get pods`output
2017-02-17 09:12:13 -08:00
Jordan Liggitt 6e9fc80694 Add RBAC default roles, CLI helpers, upgrade guide 2017-02-17 09:07:57 -08:00
Jordan Liggitt 258755fbfe Split RBAC documentation into separate page 2017-02-17 09:07:57 -08:00
Jordan Liggitt dc6643e00e subdirectory for authorization 2017-02-17 09:07:57 -08:00
deads2k a6c76bb814 add information about RBAC bootstrap roles 2017-02-17 09:07:57 -08:00
sallydeng 0486082622 Modified sentence base on comment
Base on comment, added the markdown formatting so that "NOTE:" is in bold and "optional:true" is in the code style
2017-02-16 17:50:57 -08:00
sallydeng 177d664239 optional:true is supported for Kubernetes 1.6
NOTE: The key-value optional:true is supported for Kubernetes 1.6 and above.
2017-02-16 17:50:57 -08:00
Guillaume Breton d0bdf37c1f Fix typos in running zookeeper article 2017-02-16 14:39:44 -08:00
Steve Perry 05c1dfe76c Add note about moved content. (#2563) 2017-02-16 13:20:48 -08:00
Steve Perry 0da9c85fd4 Move Guide topic to Tasks: Downward API (#2439) 2017-02-16 12:59:54 -08:00
Phillip Wittrock 4dee823504 Merge pull request #2533 from steveperry-53/kubectl-exec
Move Guide topic to Tasks: kubectl exec
2017-02-16 11:16:55 -08:00
architect.bian 2638f4f087 modify typora
modify namespace-kube-system to namespace=kube-system
2017-02-16 09:50:01 -08:00
liangxiaoping 37a51088f7 fix etcd disaster-recovery hyperlink 2017-02-16 09:45:57 -08:00
chenhuan12 ac44956a75 replace kubernetes.d with kubelet.d
replace kubernetes.d with kubelet.d
2017-02-16 09:38:10 -08:00
tanshanshan 0d9e568d1b remove its name from file content 2017-02-16 09:34:25 -08:00
Jorge O. Castro ed63f9a8ce Let's put kubectl in ~/bin. 2017-02-16 09:27:26 -08:00
steveperry-53 2e3758381d Move Guide toic to Tasks: kubectl exec. 2017-02-15 18:06:07 -08:00
foxish f348728060 Fix travis and add comments 2017-02-15 16:46:45 -08:00
Steve Perry a3a2233e6c Move Pod Lifecycle to Concepts. (#2420)
* Move Pod Lifecycle to Concepts.

* Put moved note on old page.

* Update pod-lifecycle.md
2017-02-15 14:56:39 -08:00
Michail Kargakis c222e9da33 Update deployment completeness documentation 2017-02-15 14:49:35 -08:00
Andrew Chen 4702554cb6 rollback PR #2522
Rollingback PR #2522 until we can verify which version optional:true will be available in.
2017-02-15 14:44:09 -08:00
sallydeng 9b3f420bd9 kubectl_apply.md-change it for label key
When I test this command, if the configmap has a label, it just delete the configmaps which has the same label key and that are not in the file.
kubectl apply --prune -f manifest.yaml --all --prune-whitelist=core/v1/ConfigMap
So I advise change the description like this:
"Apply the configuration in manifest.yaml and delete all the other configmaps with the same label key that are not in the file."
2017-02-15 14:22:29 -08:00
Arthur Miranda 76e1bfc55d Update the links of Deployment User Guide
The file 'blob/master/docs/devel/api-conventions.md' has moved to
'community/blob/master/contributors/devel/api-conventions.md'

Updates the links associated with these file.
2017-02-15 14:20:27 -08:00
Michael Mrowetz 0366fcc114 #2534 mark openstack-heat as standalone-salt-conf 2017-02-15 14:15:01 -08:00
Maciej Szulik ec4e3b0ca2 Remove extensions/v1beta1 Job 2017-02-15 14:01:57 -08:00
sallydeng 2ab877198b Change sentence base on reviewer's comment
"NOTE: The key-value optional:true is supported for kubernetes 1.5.3 and above."
2017-02-15 14:00:48 -08:00
sallydeng 5df783425d The key-value "optional:true" doesn't work
The key-value "optional:true"  doesn't work in 1.5.2 yet. 
So should we add a note here? "The key-value "optional:true" will be work after kubernetes 1.5.2."
2017-02-15 14:00:48 -08:00
Andrew Chen 9310444630 Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io:
  Fix travis.yml
  re: issue #2034; fix docker image link (#2532)
  re: issue #1671; update to direct link
  Update cheatsheet for multi-container handling
  add "--show-all" to kubectl get pods
  Fix broken/outdated links in the ingress.md file
  column READY is missed
  fix Kubenetes typo
  Update overview.md
  Update pod.md
  Update multiple-schedulers.md
  Fix the standard storageClass for GCE
  fix typo
  fix typo
  Update index.md
  doc(kubeadm.md) - change base64 decode option to '--decode'
  Update links to ingress repository
  Updated dead links
  Fix unmatched closing paren
2017-02-15 13:59:13 -08:00
foxish 2553649598 Fix travis.yml 2017-02-15 13:55:35 -08:00
Michail Kargakis 2172507943 Update deployment completeness documentation 2017-02-15 11:47:56 -08:00
Andrew Chen 566f61f4b9 re: issue #2034; fix docker image link (#2532)
* re: issue #2034; fix docker image link

change link in line 26 to: https://gcr.io/google_containers/hpa-example

* point link to local Dockerfile

* specify it as the Dockerfile, not image
2017-02-14 14:34:13 -08:00
Andrew Chen 04d6793544 re: issue #1671; update to direct link
Update Docker Volumes link to https://docs.docker.com/engine/tutorials/dockervolumes/
2017-02-14 13:51:39 -08:00
Robert Kubis cfaf34835c Update cheatsheet for multi-container handling
Added how to retrieve logs for containers in multi-container pods
2017-02-14 13:38:44 -08:00
ztewyk 7c97c392ed add "--show-all" to kubectl get pods
add "--show-all" to  "kubectl get pods  --selector=job-name=pi --output=jsonpath={.items..metadata.name}" ,because the pod was ended
2017-02-14 13:27:32 -08:00
Arthur Miranda 36ebe59068 Fix broken/outdated links in the ingress.md file
The Ingress controllers have moved to the kubernetes/ingress repository,
then some links are broken or outdated.
2017-02-14 13:21:47 -08:00
chenhuan12 710a17c10d column READY is missed
column READY is missed
2017-02-14 11:14:19 -08:00
Andrew Chen 2fb161e033 fix Kubenetes typo
Kubenetes -> Kubernetes
2017-02-14 11:11:31 -08:00
Fabrizio Milo 38033ae6bf Update overview.md 2017-02-14 11:04:22 -08:00
Fabrizio Milo 7bafe3557f Update pod.md 2017-02-14 11:03:51 -08:00
Andrew Chen 501bde89e4 minor grammar addition
added 'be' in line 247: "...variables or be used in"
2017-02-14 09:48:47 -08:00
Michael Fraenkel 15e529958e Initial docs for envFrom ConfigMap 2017-02-14 09:48:47 -08:00
peay ae4bc86dae Update CronJob doc. with history limits 2017-02-14 09:07:01 -08:00
scjane 7b42b5f9dd Update multiple-schedulers.md
Similar to #2518. But I think an unordered list can be used here :)
2017-02-14 08:56:40 -08:00
Pierre Ozoux e56a7296ca Fix the standard storageClass for GCE
As you can see here: https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/gce/gce.go#L117-L121
The default is not ssd
2017-02-14 08:50:00 -08:00
yupengzte 8a865cf1d3 fix typo
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-02-14 08:47:11 -08:00
tanshanshan ff088c2256 fix typo 2017-02-14 08:46:23 -08:00
Bruce Auyeung 4fa487f722 Update index.md 2017-02-13 23:08:22 -08:00
Zhou Tao 3512bc673b doc(kubeadm.md) - change base64 decode option to '--decode'
`base64 -D` will lead to error on Ubuntu: "base64: invalid option -- 'D'"
2017-02-13 23:05:50 -08:00
scjane 7267a33db7 Update static-pods.md
Some of the serial numbers of the ordered list in the "Static pod creation" section are incorrect because items in the list are segmented by code blocks. I think this can be solved in at least the following ways:
1.Remove the ordered list style and just use plain text each beginning with "1", "2",...,or  "step 1", "step 2",... (My modofication adopts this one)
2.Replace the ordered list with an unordered list in which each item beginning with "step 1", "step 2",...
3.Use HTML tags, such as <ol>,<li> to give the lists involved
Are there any other better ways for this problem? I would be appreciated to know.
2017-02-14 14:15:27 +08:00
James Gregory f4c8ba82c5 Update links to ingress repository
Ingress moved out of contrib to kubernetes/ingress.
2017-02-13 16:20:55 -08:00
Albert Vaca 4c85470449 Updated dead links 2017-02-13 16:16:53 -08:00
Erik Bean c72ac0ab6b Fix unmatched closing paren
End of line 60 had a closing parenthesis, with no opening one to match. Probably left over from a previous version of the document
2017-02-13 16:16:07 -08:00
Jesse Johnston 515f62be08 Update overview.md
Update link to Kubernetes API Conventions to point to current document location.
2017-02-13 11:56:55 -08:00
Ahmet Alp Balkan ae45c11b3b Move "User Guide" up in the sidebar
So that it is above "Accessing the Cluster" article which describes
more advanced topics and does not look coherent when it is read
linearly.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-02-13 11:08:02 -08:00
chenhuan12 17050a7fd2 replace 30 seconds with 35 seconds
replace 30 seconds with 35 seconds
2017-02-13 11:02:54 -08:00
Christoph Blecker 1b33b95669 Fix link to StatefulSet docs from Pods page 2017-02-13 10:50:38 -08:00
foxyriver 57260ac2d4 fix parallelism result
According to job.yaml, the parallelism is 2
2017-02-13 10:27:13 -08:00
caiyixiang 62b3570acd Update source-ip.md 2017-02-13 10:16:32 -08:00
scjane f59b154f6f Update index.md 2017-02-13 10:14:19 -08:00
Andreas Kohn 27a450f450 Improve grammar 2017-02-13 10:13:55 -08:00
samiam 4a1f2c2b55 Update kubectl_completion.md
Quote shell commands to improve format
2017-02-13 10:13:19 -08:00
Andrew Chen 6ceec5095e reimplement PR #2217
socks shop port changed
2017-02-13 10:10:34 -08:00
Jason Lock a9e63ea61d Add line-height to List Item
Add line-height to the body content
list items. The same line-height as the
paragraph.
2017-02-13 09:53:17 -08:00
Jason Lock 885864b9bc Increase font-size and line-height CSS Properties
Increase the font-size and line-height CSS
properties for the paragraph and list items
within the documentation body content.
Adjusting these properties will make the
information a little easier to read.
2017-02-13 09:53:17 -08:00
sarahnovotny 6673b5229c Merge pull request #2509 from ahmetalpbalkan/sig-calendar
/LGTM .  Add SIG meetings calendar to /community/
2017-02-13 09:33:07 -08:00
Ahmet Alp Balkan 49169de6aa Add SIG meetings calendar to /community/
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-02-13 09:21:14 -08:00
Bruce Auyeung 010b294cb2 Update kubefed.md 2017-02-12 23:15:19 -08:00
Jérémy Wimsingues e42b16b6d2 Update overview.md
comamnd => command
2017-02-12 23:12:51 -08:00
scjane 6e1ec38daa Update jobs.md 2017-02-12 23:10:38 -08:00
PassionForPie 93729a843a Minor grammatical fix
See https://en.wiktionary.org/wiki/greengrocer's_apostrophe
2017-02-12 23:09:33 -08:00
scjane 87401ac54b Update index.md 2017-02-12 23:08:34 -08:00
scjane 9f3ab47c8b Update cron-jobs.md 2017-02-12 23:08:04 -08:00
Jérémy Wimsingues 32e912fc87 redundnacy => redundancy 2017-02-12 23:03:36 -08:00
Jasmine Hegman 926d049a84 Fixed a tiny typo
Kubernets -> Kubernetes
2017-02-12 23:01:00 -08:00
Steve Perry 7a69c3d78c Merge pull request #2418 from steveperry-53/style-guide
Add object fields to style guide.
2017-02-10 14:09:17 -08:00
Steve Perry 803ff36c78 Merge branch 'master' into style-guide 2017-02-10 14:05:27 -08:00
Steve Perry 03d1539a86 Merge pull request #2477 from steveperry-53/pod-info-envars
New Task: Exposing Pod Info ... Env Vars
2017-02-10 13:55:52 -08:00
Phillip Wittrock e26872cb31 Merge pull request #2489 from jeffmendoza/fix-travis
Fix Travis test builds' vendoring workaround.
2017-02-10 13:48:00 -08:00
Jeff Mendoza baf1b7ef0d Fix Travis test builds' vendoring workaround. 2017-02-10 13:15:15 -08:00
steveperry-53 a65374ff0c New Task: Exposing Pod Info ... Env Vars 2017-02-10 12:58:41 -08:00
Phillip Wittrock 4d33d8073d Merge pull request #2469 from pwittrock/apply-docs-concepts
Kubectl task document for printing out containers in a cluster.
2017-02-09 14:54:08 -08:00
Phillip Wittrock 13c366c09e Kubectl task document for printing out containers in a cluster. 2017-02-09 14:34:15 -08:00
cwitte4191 4499f48856 Update service-accounts.md
Added an automated code snippet to populate the registrykey on a serviceaccount using jq.
2017-02-09 13:02:34 -08:00
Robert Roland 2f1ae18bfc Adds documentation for new vSphere vm-uuid parameter.
Related to kubernetes/kubernetes#40892
2017-02-09 13:01:47 -08:00
Klaus Ma 123b54b101 Updated multiple scheduler beta docs. 2017-02-09 10:36:06 -08:00
xilabao fdd7240594 add authorizationMode to kubeadm config
ref to https://github.com/kubernetes/kubernetes/pull/39846
2017-02-09 10:32:18 -08:00
Himanshu Raj 6620b309e5 Add Contiv Information to addons.md 2017-02-09 10:30:08 -08:00
scjane 51662f0c84 Update accessing-the-cluster.md 2017-02-09 10:27:30 -08:00
Andrew Chen 446606a43a Migrate Init Containers to Concepts (#2438)
* Initial commit for Init Containers migration to Concepts section

* Add 1.5 beta include file

* Change include to renamed user-guide-content-moved.md file

* Fix Concepts/KO/Pods ToC

* reformat examples to bullet points

* fix formatting

* Add back Detailed Behavior, Support and compatibility

* Adjust formatting issues

* revised based on feedback from Steve

* complete sentence rewrite
2017-02-09 10:18:59 -08:00
Andrew Chen 34018d3695 Merge pull request #2455 from sallydeng/patch-3
Update ui.md: namespace name can't be number only
2017-02-09 10:13:23 -08:00
sallydeng 5f71daa575 Merge branch 'master' into patch-3 2017-02-09 15:52:35 +08:00
sallydeng b7e410bb57 Update ui.md
I reword it base on comment.
2017-02-09 15:49:59 +08:00
Steve Perry 2e3810e6ab Merge pull request #2468 from steveperry-53/kubectl-manage
Remove Guide topic: kubectl to Manage Resources.
2017-02-08 17:03:41 -08:00
steveperry-53 2d98e5c1a5 Remove Guide topic: kubectl to Manage Resources. 2017-02-08 16:59:28 -08:00
Steve Perry b3819339f3 Merge pull request #2466 from steveperry-53/secrets-walkthrough
Remove Guide topic: Secrets Walkthrough.
2017-02-08 14:23:33 -08:00
Steve Perry ada6673c7d Update walkthrough.md 2017-02-08 14:20:30 -08:00
steveperry-53 97a5a10ae4 Remove Guide topic: Secrets Walkthrough. 2017-02-08 14:11:08 -08:00
Steve Perry 7db2dd4ddc Merge pull request #2465 from steveperry-53/stateless-deployment
Remove Guide topic: Deploying Applications.
2017-02-08 14:04:21 -08:00
steveperry-53 c125531513 Remove Guide topic: Deploying Applications. 2017-02-08 13:57:45 -08:00
Andrew Chen a4c608ae15 Merge pull request #2464 from JamesDuncanNz/patch-1
Corrected syntax of Networking Section
2017-02-08 13:18:38 -08:00
James Duncan 09af0b070f Corrected syntax of Networking Section
Removed an unnecessary 'the' from a sentence.
2017-02-09 08:27:42 +13:00
scjane bb6684e16f Update debugging-services.md 2017-02-08 10:54:50 -08:00
Steve Perry c95524d506 Merge pull request #2462 from steveperry-53/launch-expose
Remove User Guide topic: Launching, Exposing,
2017-02-08 10:47:46 -08:00
steveperry-53 839854fe7b Remove User Guide topic: Launching, Exposing, 2017-02-08 10:44:45 -08:00
Eamon Taaffe 3bac04bf7a Missing export statement in example 2017-02-08 10:43:16 -08:00
Ghe Rivero 5cc692a6fd Fix examples display 2017-02-08 10:40:55 -08:00
Steve Perry 83139a2acf Merge pull request #2461 from sublimino/patch-1
Fix typo
2017-02-08 08:14:07 -08:00
Steve Perry c9d032988e Merge pull request #2449 from scjane/patch-6
Update assign-cpu-ram-container.md
2017-02-08 08:12:42 -08:00
Andrew Martin 5dda4058f1 Fix typo
`pages` -> `page`
2017-02-08 14:55:50 +00:00
sallydeng 02d938a3d5 Update ui.md: namespace name can't be number only
When the namespace name only contains number, such as "10", the pod can't be created in this kind of namespace, the pod will be put in default namespace.
2017-02-08 16:38:00 +08:00
scjane 72d37e9a33 Update assign-cpu-ram-container.md 2017-02-08 09:48:41 +08:00
Steve Perry 632c2de064 Merge pull request #2447 from spoonben/fix-code-block-scroll
Fix overflow scroll on code blocks
2017-02-07 16:31:21 -08:00
Bruce Auyeung 24d587a9c5 fix unreachable links and typos
1. fix unreachable federated resources links
2. federation proposal doc has been relocated, so i fix this link
3. make federation resources supporting cascading deletion clickable
4. make link to  `Kubernetes Scaling and Performance Goals` clickable
5. other typo fixes
2017-02-07 14:47:08 -08:00
tailnode 007caa5ef1 fix link 2017-02-07 14:42:07 -08:00
Ben Spoon 494f011dd2 Fix overflow scroll on code blocks
Fixes https://github.com/kubernetes/kubernetes.github.io/issues/633
2017-02-07 13:42:11 -08:00
sallydeng cff68f53af Update ui.md base on comments
Former: The namespace name may contain a maximum of 63 alphanumeric characters and dashes (-) , can not contain capital letters. 
Now: The namespace name may contain a maximum of 63 alphanumeric characters and dashes (-) but can not contain capital letters.
2017-02-07 09:59:43 -08:00
sallydeng 5253297f52 Update namspace and service part of ui.md
1. Namespace can not contain capital letter.
2. For service, internal endpoints for cluster connections and external endpoints for external users. Here, it lost "external".
2017-02-07 09:59:43 -08:00
yupengzte 5424759ab1 Fix the url error
Signed-off-by: yupengzte <yu.peng36@zte.com.cn>
2017-02-07 09:56:21 -08:00
caiyixiang 4f390bc64f Update minikube.md 2017-02-06 13:48:57 -08:00
scjane ae0844f477 Update kubefed.md 2017-02-06 13:46:40 -08:00
Vasily Upornikov 7815d386ef Update container-command-args.md 2017-02-06 13:43:12 -08:00
Philipp T b6149571ce Update kubeadm.md
grammar ocd
2017-02-06 13:42:32 -08:00
Pan Luo 7ce1b540c6 Add generic to create secret command
The generic is missing from the command and will cause error: `Error: unknown flag: --type` when running the command.
2017-02-06 13:33:59 -08:00
Shiyang Wang ced286161c fix typo 2017-02-06 13:33:23 -08:00
Andrew Chen 5823b154ab Merge pull request #2428 from calavera/document_redirects_script
Add documentation to the redirects.rb script.
2017-02-06 13:22:17 -08:00
David Calavera bfe683c3fd Add documentation to the redirects.rb script.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2017-02-04 20:25:31 +01:00
Phillip Wittrock f7403f1d7e Merge pull request #2422 from wmaintw/patch-1
Add code comment for "replicas"
2017-02-03 22:18:00 -08:00
Wei Ma 87eae080f7 Add code comment for "replicas"
unnecessary code comment been removed.
2017-02-04 09:20:39 +08:00
Andrew Chen 1e3981a853 Merge pull request #2145 from kubernetes/jaredbhatti-patch-2
Add Bundler to staging a doc request page
2017-02-03 15:40:10 -08:00
Andrew Chen 97d9607b69 Merge branch 'master' into jaredbhatti-patch-2 2017-02-03 15:36:19 -08:00
Andrew Chen 27a185be87 Merge pull request #2419 from colemickens/cmpr-azure-doc-sa-constaint
userguide: PV docs clarify Azure storage account restriction
2017-02-03 15:26:37 -08:00
Cole Mickens 70a2934d02 userguide: PV docs clarify Azure storage account restriction 2017-02-03 13:16:20 -08:00
steveperry-53 69cc2e60a2 Add object fields to style guide. 2017-02-03 11:55:13 -08:00
Andrew Chen a3c2b257c7 Merge pull request #2414 from kubernetes/chenopis-patch-14
Change healthz port
2017-02-03 10:33:23 -08:00
Andrew Chen 631d1d1135 Change healthz port
Reimplemented changes for PR #1826 and Issue #10003
2017-02-03 10:30:33 -08:00
David Calavera e64c482469 Add redirect generator to make Netlify's CDN redirect to the right places.
Netlify will redirect with a 301 status to the right places without the
need of a custom javascript file.

The current redirects.js is not removed so production can keep working
as it is for now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2017-02-03 09:50:23 -08:00
Aneesh Kumar d268a3eaf4 Fix for redundant footer section in home page.
This commit removes redundant footer section in the Home page.
2017-02-03 09:40:30 -08:00
Eric Chiang 592d61c55c docs/admin/authorization: discourage the use rbac-super-user flag
Even though this flag works in 1.5, its use should be discouraged.
It will be removed in 1.6.
2017-02-03 09:27:15 -08:00
Shawn McCarthy e3368b9733 Use base64 -D instead of -d 2017-02-02 14:44:39 -08:00
hekra01 bf0e238e2b Update docker-cli-to-kubectl.md
typo in deployment name
2017-02-02 14:33:38 -08:00
Andrew Chen 6193bb1cc9 Merge pull request #2409 from henrynash/patch-1
Patch 1
2017-02-02 14:29:40 -08:00
Henry Nash 1b4557f0d3 Update api.md
Minor typo.
2017-02-02 10:38:52 -08:00
Henry Nash a92dced983 Update api.md
Minor typo correction
2017-02-02 10:28:52 -08:00
Sean M. Collins 011178a5da [OpenStack-Heat] Use openstackclient to list the Heat stack
python-openstackclient is a more modern tool
2017-02-02 10:27:23 -08:00
Marc Boorshtein 96fb6e2415 added code ticks on the oidc api parameters 2017-02-02 09:37:48 -08:00
steveperry-53 0ac53c2f97 Put moved notice in persistent volume topic. 2017-02-02 09:34:49 -08:00
Phillip Wittrock 2973296f28 Merge pull request #2406 from pwittrock/apply-docs-concepts
Minor wording updates
2017-02-01 18:12:41 -08:00
Phillip Wittrock cef56d1d95 Minor wording updates 2017-02-01 18:09:08 -08:00
Phillip Wittrock 2d3f9f9682 Merge pull request #2404 from pwittrock/apply-docs-concepts
Change label selector tag to use full gvkn instead of vkn
2017-02-01 16:59:55 -08:00
Phillip Wittrock 17db79a875 Change label selector tag to use full gvkn instead of vkn 2017-02-01 16:57:58 -08:00
Phillip Wittrock f9d4fd18e4 Merge pull request #2403 from pwittrock/apply-docs-concepts
Fix url in declarative kubectl
2017-02-01 16:55:20 -08:00
Phillip Wittrock 6e42b5f6ce Fix url in declarative kubectl 2017-02-01 16:54:12 -08:00
Vic Iglesias 087ba3c961 Point to correct annotation in federated deployment 2017-02-01 16:46:59 -08:00
Andrew Chen bce5bae19c Merge pull request #2402 from steveperry-53/move-to-tasks
Put moved notice on User Guide pages.
2017-02-01 16:46:17 -08:00
steveperry-53 6cb33d02c4 Put moved notice on User Guide pages. 2017-02-01 16:33:15 -08:00
Steve Perry 214e749bf7 Merge pull request #2386 from steveperry-53/commands-capabilities
Move Commands and Capabilities out of User Guide.
2017-02-01 15:19:11 -08:00
steveperry-53 9891d65d3e Change name of include file for moved content. 2017-02-01 15:05:34 -08:00
Steve Perry 248173bf81 Merge branch 'master' into commands-capabilities 2017-02-01 14:21:38 -08:00
Steve Perry c4bbf9a8c7 Merge pull request #2015 from jeffmendoza/getting-started
Getting started guides overhaul.
2017-02-01 14:11:48 -08:00
Steve Perry af5cc6a17f Merge branch 'master' into getting-started 2017-02-01 14:05:49 -08:00
Phillip Wittrock a4f3a25f54 Merge pull request #2400 from pwittrock/apply-docs-concepts
fix missnamed field in declarative docs
2017-02-01 13:32:52 -08:00
Phillip Wittrock db6506f640 fix missnamed field in declarative docs 2017-02-01 12:23:23 -08:00
Phillip Wittrock 2955de4f67 Merge pull request #2317 from pwittrock/apply-docs-concepts
Concept docs for kubectl configuration management methods.
2017-02-01 11:16:55 -08:00
Phillip Wittrock bd9b561ad1 Concept docs for kubectl configuration management methods. 2017-02-01 11:12:41 -08:00
Jared fa9cb16339 Fixed broken link to build directory
https://github.com/kubernetes/kubernetes.github.io/issues/2384
2017-02-01 11:11:48 -08:00
Jeff Mendoza a32a2a59c2 Getting started guides overhaul. 2017-02-01 11:03:08 -08:00
Eugene Chow 2027ed39bb Changed "haripin-veth" to "hairpin-veth" 2017-02-01 10:09:37 -08:00
Jared bf3ccfd7af Merge pull request #2390 from aee11/patch-1
Fix broken documentation link
2017-02-01 09:29:49 -08:00
Jared 3b605dd247 Merge pull request #2395 from albertvaka/patch-1
Fixed link
2017-02-01 09:26:18 -08:00
Albert Vaca a631ff3cc9 Fixed link 2017-02-01 12:14:21 +01:00
Alexander 90130cf93c Merge branch 'master' into patch-1 2017-02-01 10:50:10 +00:00
Samuel Cozannet c317ac00d8 modified: docs/getting-started-guides/ubuntu/operational-considerations.md
* Rewording the access section for the controller to make it more user friendly
	* fix typos
2017-01-31 10:39:00 -08:00
Samuel Cozannet d6ee95c6a1 adding link into _data/guides.yml 2017-01-31 10:39:00 -08:00
Samuel Cozannet 147bb4cf02 modified: docs/getting-started-guides/ubuntu/index.md
* adding Operational Considerations section
modified:   docs/getting-started-guides/ubuntu/logging.md
	* Moving logging section from operational-considerations.md to logging.md
renamed:    docs/getting-started-guides/ubuntu/operations.md -> docs/getting-started-guides/ubuntu/operational-considerations.md
	* mapping to the proposed name
	* ditched CDK naming in favor of k8s or cluster
	* add whitelines for titles
2017-01-31 10:39:00 -08:00
Samuel Cozannet 6f1c745bb6 dummy commit to register new email 2017-01-31 10:39:00 -08:00
Samuel Cozannet e28cec48e9 dummy commit to register new email 2017-01-31 10:39:00 -08:00
Samuel Cozannet 095b4bcf54 adding operational hints for people running long lived clusters 2017-01-31 10:39:00 -08:00
Samuel Cozannet b3bfa8a906 adding fix for load balancer interference with helm 2017-01-31 10:39:00 -08:00
Matt Singletary 2dcac11129 typo fix 2017-01-31 10:20:47 -08:00
Dave Sewell c87772cd92 Fix typo in xhyve 2017-01-31 10:19:53 -08:00
Andrew Chen 4f31ff9aec Merge pull request #2253 from php-coder/fix_command_in_secret_example
docs/user-guide/secrets: fix invalid syntax of Pod.spec.containers.command
2017-01-31 10:16:07 -08:00
Alexander 10c6bc9e65 Fix broken documentation link 2017-01-31 17:45:03 +00:00
Slava Semushin 105bf6e1f2 docs/user-guide/secrets: fix invalid syntax of Pod.spec.containers.command. 2017-01-31 18:16:55 +01:00
Andrew Chen c273184db4 Merge branch 'master' into jaredbhatti-patch-2 2017-01-24 15:00:18 -08:00
Andrew Chen b5c01fe816 Merge branch 'master' into jaredbhatti-patch-2 2017-01-11 18:22:17 -08:00
Jared 582d2079ea Update stage-documentation-changes.md 2017-01-05 09:55:12 -08:00
Jared e8727e886e Add Bundler to staging a doc request page
Fixing the following PR: https://github.com/kubernetes/kubernetes.github.io/pull/1796
2017-01-05 09:48:47 -08:00
4647 changed files with 766222 additions and 145537 deletions
+6
View File
@@ -0,0 +1,6 @@
> 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.
![Allow edits from maintainers checkbox](https://help.github.com/assets/images/help/pull_requests/allow-maintainers-to-make-edits-sidebar-checkbox.png)
+11 -7
View File
@@ -1,21 +1,25 @@
language: go
go:
- 1.7.3
- 1.8.1
# Don't want default ./... here:
install:
- export PATH=$GOPATH/bin:$PATH
- mkdir -p $HOME/gopath/src/k8s.io
- mv $TRAVIS_BUILD_DIR $HOME/gopath/src/k8s.io/kubernetes.github.io
# (1) Fetch dependencies for us to run the tests in test/examples_test.go
- go get -t -v k8s.io/kubernetes.github.io/test
# Simplified deduplication of dependencies.
- cp -L -R $GOPATH/src/k8s.io/kubernetes/vendor/ $GOPATH/src/
- rm -r $GOPATH/src/k8s.io/kubernetes/vendor/
# (2) Fetch md-check along with all its dependencies.
- 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
- rm $GOPATH/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery
- rm $GOPATH/src/k8s.io/kubernetes/vendor/k8s.io/apiserver
- rm $GOPATH/src/k8s.io/kubernetes/vendor/k8s.io/client-go
- cp -r $GOPATH/src/k8s.io/kubernetes/vendor/* $GOPATH/src/
- rm -rf $GOPATH/src/k8s.io/kubernetes/vendor/*
- cp -r $GOPATH/src/k8s.io/kubernetes/staging/src/* $GOPATH/src/
# (3) Fetch mungedocs
- go get -v k8s.io/kubernetes/cmd/mungedocs
script:
+2 -2
View File
@@ -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/contribute/style-guide/) and follow the [instructions for using page templates](http://kubernetes.io/docs/contribute/page-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/).
## 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/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/home/contribute/create-pull-request/).
+5 -5
View File
@@ -7,11 +7,11 @@ You can click the **Fork** button in the upper-right area of the screen to creat
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/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/)
* [Documentation Style Guide](http://kubernetes.io/docs/contribute/style-guide/)
* [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/)
## Thank you!
+9 -5
View File
@@ -1,5 +1,6 @@
name: Kubernetes
title: Kubernetes
url: https://kubernetes.io
description: Production-Grade Container Orchestration
markdown: kramdown
kramdown:
@@ -17,7 +18,8 @@ defaults:
scope:
path: ""
values:
version: "v1.5.1"
fullversion: "v1.7.0"
version: "v1.7"
githubbranch: "master"
docsbranch: "master"
-
@@ -41,14 +43,16 @@ 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
- guides
- tutorials
- setup
- tasks
- tutorials
- concepts
- reference
- tools
- samples
- support
- search
+82 -13
View File
@@ -3,27 +3,96 @@ abstract: "Detailed explanations of Kubernetes system concepts and abstractions.
toc:
- docs/concepts/index.md
- title: Kubectl Command Line
- title: Overview
section:
- docs/concepts/tools/kubectl/object-management-overview.md
- 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 Objects
- title: Kubernetes Architecture
section:
- docs/concepts/abstractions/overview.md
- docs/concepts/abstractions/pod.md
- 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/abstractions/controllers/statefulsets.md
- title: Object Metadata
section:
- docs/concepts/object-metadata/annotations.md
- 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/container-command-args.md
- 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: Policies
- title: Services, Load Balancing, and Networking
section:
- docs/concepts/policy/container-capabilities.md
- 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
+21 -2
View File
@@ -1,4 +1,23 @@
bigheader: "Kubernetes Documentation"
bigheader: "Documentation Home"
abstract: "Documentation for using and learning about Kubernetes."
toc:
- docs/index.md
- 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
+2 -2
View File
@@ -1,10 +1,10 @@
tocs:
- docs-home
- guides
- tutorials
- setup
- tasks
- tutorials
- concepts
- reference
- tools
- samples
- support
-233
View File
@@ -1,233 +0,0 @@
bigheader: "Guides"
abstract: "How to get started, and accomplish tasks, using Kubernetes."
toc:
- docs/user-guide/index.md
- title: Getting Started
section:
- docs/whatisk8s.md
- docs/getting-started-guides/kubeadm.md
- docs/getting-started-guides/kops.md
- docs/getting-started-guides/kargo.md
- docs/hellonode.md
- docs/getting-started-guides/kubectl.md
- docs/getting-started-guides/binary_release.md
- title: Online Training Course
path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
- title: Accessing the Cluster
section:
- docs/user-guide/prereqs.md
- docs/user-guide/accessing-the-cluster.md
- docs/user-guide/sharing-clusters.md
- docs/user-guide/kubeconfig-file.md
- docs/user-guide/index.md
- docs/user-guide/ui.md
- title: Workload Deployment and Management
section:
- docs/user-guide/quick-start.md
- docs/user-guide/deploying-applications.md
- docs/user-guide/managing-deployments.md
- docs/user-guide/replication-controller/operations.md
- docs/user-guide/resizing-a-replication-controller.md
- docs/user-guide/rolling-updates.md
- docs/user-guide/update-demo/index.md
- docs/user-guide/secrets/walkthrough.md
- docs/user-guide/configmap/index.md
- docs/user-guide/horizontal-pod-autoscaling/walkthrough.md
- docs/user-guide/config-best-practices.md
- docs/user-guide/working-with-resources.md
- docs/user-guide/garbage-collection.md
- title: Using NetworkPolicy
section:
- docs/getting-started-guides/network-policy/walkthrough.md
- docs/getting-started-guides/network-policy/calico.md
- docs/getting-started-guides/network-policy/romana.md
- docs/getting-started-guides/network-policy/weave.md
- title: Batch Jobs
section:
- docs/user-guide/jobs.md
- docs/user-guide/jobs/expansions/index.md
- docs/user-guide/jobs/work-queue-1/index.md
- docs/user-guide/jobs/work-queue-2/index.md
- docs/user-guide/cron-jobs.md
- title: Service Discovery and Load Balancing
section:
- docs/user-guide/connecting-applications.md
- docs/user-guide/services/operations.md
- docs/user-guide/load-balancer.md
- docs/user-guide/services-firewalls.md
- docs/user-guide/federation/federated-services.md
- title: Containers and Pods
section:
- docs/user-guide/pods/multi-container.md
- docs/user-guide/pods/init-container.md
- docs/user-guide/pod-templates.md
- docs/user-guide/containers.md
- docs/user-guide/environment-guide/index.md
- docs/user-guide/compute-resources.md
- docs/user-guide/pod-states.md
- docs/user-guide/liveness/index.md
- docs/user-guide/container-environment.md
- docs/user-guide/node-selection/index.md
- docs/user-guide/downward-api/index.md
- docs/user-guide/downward-api/volume/index.md
- docs/user-guide/persistent-volumes/walkthrough.md
- docs/user-guide/petset/bootstrapping/index.md
- title: Monitoring, Logging, and Debugging Containers
section:
- docs/user-guide/monitoring.md
- title: Logging
section:
- docs/user-guide/logging/overview.md
- docs/user-guide/logging/stackdriver.md
- docs/user-guide/logging/elasticsearch.md
- docs/user-guide/getting-into-containers.md
- docs/user-guide/connecting-to-applications-proxy.md
- docs/user-guide/connecting-to-applications-port-forward.md
- title: Using Explorer to Examine the Runtime Environment
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/explorer
- title: Creating a Cluster
section:
- docs/getting-started-guides/index.md
- title: Running Kubernetes on Your Local Machine
section:
- docs/getting-started-guides/minikube.md
- docs/getting-started-guides/alternatives.md
- 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/
- docs/getting-started-guides/gce.md
- docs/getting-started-guides/aws.md
- title: Running Kubernetes on Azure Container Service
path: https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough
- docs/getting-started-guides/azure.md
- docs/getting-started-guides/clc.md
- title: Running Kubernetes on IBM SoftLayer
path: https://github.com/patrocinio/kubernetes-softlayer
- title: Running Kubernetes on Multiple Clouds with Stackpoint.io
path: /docs/getting-started-guides/stackpoint/
- title: Running Kubernetes on Custom Solutions
section:
- docs/getting-started-guides/scratch.md
- title: Custom Cloud Solutions
section:
- docs/getting-started-guides/coreos/index.md
- docs/getting-started-guides/ubuntu/index.md
- docs/getting-started-guides/rackspace.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/calico.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/getting-started-guides/docker-multinode.md
- docs/admin/cluster-large.md
- docs/admin/multiple-zones.md
- docs/admin/high-availability/index.md
- title: Administering Clusters
section:
- docs/admin/index.md
- docs/admin/cluster-management.md
- docs/admin/kubeadm.md
- docs/admin/addons.md
- docs/admin/audit.md
- docs/admin/ha-master-gce.md
- docs/admin/namespaces/index.md
- docs/admin/namespaces/walkthrough.md
- docs/admin/limitrange/index.md
- docs/admin/disruptions.md
- docs/admin/resourcequota/index.md
- docs/admin/resourcequota/walkthrough.md
- docs/admin/resourcequota/limitstorageconsumption.md
- docs/admin/rescheduler.md
- docs/admin/sysctls.md
- docs/admin/cluster-components.md
- docs/admin/etcd.md
- docs/admin/multi-cluster.md
- title: Changing Cluster Size
path: https://github.com/kubernetes/kubernetes/wiki/User-FAQ#how-do-i-change-the-size-of-my-cluster/
- docs/admin/multiple-schedulers.md
- docs/admin/networking.md
- docs/admin/dns.md
- title: Setting Up and Configuring DNS
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/cluster-dns
- docs/admin/master-node-communication.md
- docs/admin/network-plugins.md
- docs/admin/static-pods.md
- docs/admin/garbage-collection.md
- docs/admin/out-of-resource.md
- docs/admin/salt.md
- docs/admin/node-problem.md
- docs/admin/apparmor/index.md
- title: Administering Federation
section:
- docs/admin/federation/kubefed.md
- title: Federated Kubernetes Objects
section:
- docs/user-guide/federation/index.md
- docs/user-guide/federation/configmap.md
- docs/user-guide/federation/daemonsets.md
- docs/user-guide/federation/deployment.md
- docs/user-guide/federation/events.md
- docs/user-guide/federation/federated-ingress.md
- docs/user-guide/federation/namespaces.md
- docs/user-guide/federation/replicasets.md
- docs/user-guide/federation/secrets.md
- docs/federation/api-reference/index.md
- title: Federation Components
section:
- docs/admin/federation-apiserver.md
- title : federation-controller-mananger
path: /docs/admin/federation-controller-manager
-7
View File
@@ -1,6 +1,4 @@
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
@@ -8,10 +6,5 @@ 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.5/extensions-v1beta1-definitions.html
- changedpath: docs/api-reference/extensions/v1beta1/operations.html _includes/v1.5/extensions-v1beta1-operations.html
- changedpath: docs/api-reference/v1/definitions.html _includes/v1.5/v1-definitions.html
- changedpath: docs/api-reference/v1/operations.html _includes/v1.5/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
+59 -162
View File
@@ -1,200 +1,97 @@
bigheader: "Reference Documentation"
abstract: "Design docs, concept definitions, and references for APIs and CLIs."
toc:
- docs/reference.md
- docs/reference/index.md
- title: "Kubernetes Resource Types (New Docs Style)"
- title: Using the API
section:
- title: Version 1.5
path: /docs/resources-reference/v1.5/
- title: "Kubernetes API (New Docs Style)"
section:
- title: Version 1.5
path: /docs/api-reference/v1.5/
- title: "Kubectl Commands (New Docs Style)"
section:
- title: Version 1.5
path: /docs/user-guide/kubectl/v1.5/
- title: Kubernetes API
section:
- docs/api.md
- docs/reference/api-overview.md
- title: Accessing the API
section:
- docs/admin/accessing-the-api.md
- docs/admin/authentication.md
- docs/admin/authorization.md
- docs/admin/bootstrap-tokens.md
- docs/admin/admission-controllers.md
- docs/admin/extensible-admission-controllers.md
- docs/admin/service-accounts-admin.md
- docs/api-reference/v1/operations.html
- docs/api-reference/v1/definitions.html
- docs/api-reference/labels-annotations-taints.md
- kubernetes/third_party/swagger-ui/index.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: Autoscaling API
- title: API Reference
section:
- docs/api-reference/autoscaling/v1/operations.html
- docs/api-reference/autoscaling/v1/definitions.html
- 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: Batch API
- title: Federation API
section:
- docs/api-reference/batch/v1/operations.html
- docs/api-reference/batch/v1/definitions.html
- title: Apps API
section:
- title: Apps API Operations
path: /docs/api-reference/apps/v1beta1/operations/
- title: Apps API Definitions
path: /docs/api-reference/apps/v1beta1/definitions/
- title: Extensions API
section:
- docs/api-reference/extensions/v1beta1/operations.html
- docs/api-reference/extensions/v1beta1/definitions.html
- 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: 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 Commands
section:
- docs/user-guide/kubectl/index.md
- docs/user-guide/kubectl/kubectl_annotate.md
- docs/user-guide/kubectl/kubectl_api-versions.md
- docs/user-guide/kubectl/kubectl_apply.md
- docs/user-guide/kubectl/kubectl_attach.md
- docs/user-guide/kubectl/kubectl_autoscale.md
- docs/user-guide/kubectl/kubectl_certificate.md
- docs/user-guide/kubectl/kubectl_certificate_approve.md
- docs/user-guide/kubectl/kubectl_certificate_deny.md
- docs/user-guide/kubectl/kubectl_cluster-info.md
- docs/user-guide/kubectl/kubectl_cluster-info_dump.md
- docs/user-guide/kubectl/kubectl_completion.md
- docs/user-guide/kubectl/kubectl_config.md
- docs/user-guide/kubectl/kubectl_config_current-context.md
- docs/user-guide/kubectl/kubectl_config_delete-cluster.md
- docs/user-guide/kubectl/kubectl_config_delete-context.md
- docs/user-guide/kubectl/kubectl_config_get-clusters.md
- docs/user-guide/kubectl/kubectl_config_get-contexts.md
- docs/user-guide/kubectl/kubectl_config_set-cluster.md
- docs/user-guide/kubectl/kubectl_config_set-context.md
- docs/user-guide/kubectl/kubectl_config_set-credentials.md
- docs/user-guide/kubectl/kubectl_config_set.md
- docs/user-guide/kubectl/kubectl_config_unset.md
- docs/user-guide/kubectl/kubectl_config_use-context.md
- docs/user-guide/kubectl/kubectl_config_view.md
- docs/user-guide/kubectl/kubectl_convert.md
- docs/user-guide/kubectl/kubectl_cordon.md
- docs/user-guide/kubectl/kubectl_cp.md
- docs/user-guide/kubectl/kubectl_create.md
- docs/user-guide/kubectl/kubectl_create_configmap.md
- docs/user-guide/kubectl/kubectl_create_deployment.md
- docs/user-guide/kubectl/kubectl_create_namespace.md
- docs/user-guide/kubectl/kubectl_create_quota.md
- docs/user-guide/kubectl/kubectl_create_secret_docker-registry.md
- docs/user-guide/kubectl/kubectl_create_secret.md
- docs/user-guide/kubectl/kubectl_create_secret_generic.md
- docs/user-guide/kubectl/kubectl_create_secret_tls.md
- docs/user-guide/kubectl/kubectl_create_serviceaccount.md
- docs/user-guide/kubectl/kubectl_create_service_clusterip.md
- docs/user-guide/kubectl/kubectl_create_service_loadbalancer.md
- docs/user-guide/kubectl/kubectl_create_service_nodeport.md
- docs/user-guide/kubectl/kubectl_delete.md
- docs/user-guide/kubectl/kubectl_describe.md
- docs/user-guide/kubectl/kubectl_drain.md
- docs/user-guide/kubectl/kubectl_edit.md
- docs/user-guide/kubectl/kubectl_exec.md
- docs/user-guide/kubectl/kubectl_explain.md
- docs/user-guide/kubectl/kubectl_expose.md
- docs/user-guide/kubectl/kubectl_get.md
- docs/user-guide/kubectl/kubectl_label.md
- docs/user-guide/kubectl/kubectl_logs.md
- docs/user-guide/kubectl/kubectl_options.md
- docs/user-guide/kubectl/kubectl_patch.md
- docs/user-guide/kubectl/kubectl_port-forward.md
- docs/user-guide/kubectl/kubectl_proxy.md
- docs/user-guide/kubectl/kubectl_replace.md
- docs/user-guide/kubectl/kubectl_rolling-update.md
- docs/user-guide/kubectl/kubectl_rollout.md
- docs/user-guide/kubectl/kubectl_rollout_history.md
- docs/user-guide/kubectl/kubectl_rollout_pause.md
- docs/user-guide/kubectl/kubectl_rollout_resume.md
- docs/user-guide/kubectl/kubectl_rollout_status.md
- docs/user-guide/kubectl/kubectl_rollout_undo.md
- docs/user-guide/kubectl/kubectl_run.md
- docs/user-guide/kubectl/kubectl_scale.md
- docs/user-guide/kubectl/kubectl_set.md
- docs/user-guide/kubectl/kubectl_set_image.md
- docs/user-guide/kubectl/kubectl_set_resources.md
- docs/user-guide/kubectl/kubectl_taint.md
- docs/user-guide/kubectl/kubectl_top.md
- docs/user-guide/kubectl/kubectl_top_node.md
- docs/user-guide/kubectl/kubectl_top_pod.md
- docs/user-guide/kubectl/kubectl_uncordon.md
- docs/user-guide/kubectl/kubectl_version.md
- title: Superseded and Deprecated Commands
section:
- /docs/user-guide/kubectl/kubectl_namespace/
- docs/user-guide/kubectl/kubectl_stop.md
- title: Kubernetes Components
- docs/admin/kubeadm.md
- title: Config Reference
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
- title: kubelet
section:
- docs/admin/kubelet.md
- docs/admin/master-node-communication.md
- docs/admin/kubelet-tls-bootstrapping.md
- docs/admin/kubelet-authentication-authorization.md
- title: Glossary
section:
- docs/user-guide/annotations.md
- docs/admin/daemons.md
- docs/user-guide/deployments.md
- docs/user-guide/horizontal-pod-autoscaling/index.md
- docs/user-guide/images.md
- docs/user-guide/ingress.md
- docs/user-guide/jobs.md
- docs/user-guide/labels.md
- docs/user-guide/identifiers.md
- docs/user-guide/namespaces.md
- docs/user-guide/networkpolicies.md
- docs/admin/node.md
- docs/user-guide/persistent-volumes/index.md
- docs/user-guide/petset.md
- docs/user-guide/pods/index.md
- docs/user-guide/pod-security-policy/index.md
- docs/user-guide/replicasets.md
- docs/user-guide/replication-controller/index.md
- docs/admin/resourcequota/index.md
- docs/user-guide/cron-jobs.md
- docs/user-guide/secrets/index.md
- docs/user-guide/security-context.md
- docs/user-guide/services/index.md
- docs/user-guide/service-accounts.md
- docs/user-guide/thirdpartyresources.md
- docs/user-guide/volumes.md
- docs/admin/federation-apiserver.md
- docs/admin/federation-controller-manager.md
- title: Kubernetes Design Docs
section:
- title: Kubernetes Architecture
path: https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/design/architecture.md
path: https://git.k8s.io/community/contributors/design-proposals/architecture.md
- title: Kubernetes Design Overview
path: https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/design/
path: https://github.com/kubernetes/kubernetes/tree/release-1.6/docs/design
- title: Kubernetes Identity and Access Management
path: https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/design/access.md
path: https://git.k8s.io/community/contributors/design-proposals/access.md
- docs/admin/ovs-networking.md
- title: Security Contexts
path: https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/design/security_context.md
path: https://git.k8s.io/community/contributors/design-proposals/security_context.md
- title: Security in Kubernetes
path: https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/design/security.md
path: https://git.k8s.io/community/contributors/design-proposals/security.md
- title: Kubernetes Issues and Security
section:
- title: Kubernetes Issue Tracker on GitHub
path: https://github.com/kubernetes/kubernetes/issues/
- docs/reference/security.md
-75
View File
@@ -1,75 +0,0 @@
bigheader: "Samples"
abstract: "A collection of example applications that show how to use Kubernetes."
toc:
- docs/samples.md
- title: Storage / Database / KV
section:
- title: Apache Cassandra Database
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/cassandra
- title: Ceph
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/volumes/rbd/
- title: CephFS
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/volumes/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.5/examples/volumes/glusterfs/
- title: Hazelcast
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/hazelcast
- title: iSCSI
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/volumes/iscsi/
- title: MySQL Galera
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/mysql-galera
- title: NFS
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/volumes/nfs/
- title: Redis
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/redis/
- title: RethinkDB
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/rethinkdb/
- title: Vitess
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/vitess/
- title: Big Data
section:
- title: Apache Spark
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/spark
- title: Apache Storm
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storm
- title: Messaging / Queueing
section:
- title: Hazelcast
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/storage/hazelcast
- title: Miscellaneous
section:
- title: Meteor Applications
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/meteor/
- title: OpenShift Origin
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/openshift-origin/
- title: Selenium
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/selenium/
- title: Monitoring and Logging
section:
- title: Elasticsearch
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/elasticsearch/
- title: NewRelic
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/newrelic
- title: Multi-tier Applications
section:
- title: Guestbook - Go Server
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/guestbook-go/
- title: GuestBook - PHP Server
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/guestbook/
- docs/getting-started-guides/meanstack.md
- title: MySQL + Wordpress
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/mysql-wordpress-pd/
- title: MySQL + Phabricator Server
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/phabricator/
- title: Nodejs + Mongo
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/nodesjs-mongodb
- title: Petstore
path: https://github.com/kubernetes/kubernetes/tree/release-1.5/examples/k8petstore/
+4
View File
@@ -0,0 +1,4 @@
bigheader: ""
abstract: ""
toc:
- docs/search.md
+107
View File
@@ -0,0 +1,107 @@
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
-44
View File
@@ -1,44 +0,0 @@
bigheader: "Support"
abstract: "Troubleshooting resources, frequently asked questions, and community support channels."
toc:
- docs/troubleshooting.md
- title: Troubleshooting
section:
- docs/user-guide/debugging-pods-and-replication-controllers.md
- docs/user-guide/introspection-and-debugging.md
- docs/user-guide/application-troubleshooting.md
- docs/admin/cluster-troubleshooting.md
- docs/user-guide/debugging-services.md
- 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: Contributing to the Kubernetes Docs
section:
- editdocs.md
- docs/contribute/create-pull-request.md
- docs/contribute/write-new-topic.md
- docs/contribute/stage-documentation-changes.md
- docs/contribute/page-templates.md
- docs/contribute/review-issues.md
- docs/contribute/style-guide.md
- title: Other Resources
section:
- title: Kubernetes Issue Tracker on GitHub
path: https://github.com/kubernetes/kubernetes/issues/
- docs/reporting-security-issues.md
- title: Release Notes
path: https://github.com/kubernetes/kubernetes/releases/
- title: Release Roadmap
path: https://github.com/kubernetes/kubernetes/milestones/
- title: Deprecation Policy
path: /docs/deprecation-policy.md
+139 -19
View File
@@ -3,49 +3,169 @@ abstract: "Step-by-step instructions for performing operations with Kubernetes."
toc:
- docs/tasks/index.md
- title: Configuring Pods and Containers
- title: Install Tools
section:
- docs/tasks/tools/install-kubectl.md
- docs/tasks/tools/install-minikube.md
- docs/setup/independent/install-kubeadm.md
- title: Configure Pods and Containers
section:
- docs/tasks/configure-pod-container/define-environment-variable-container.md
- docs/tasks/configure-pod-container/define-command-argument-container.md
- 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/distribute-credentials-secure.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/communicate-containers-same-pod.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: Accessing Applications in a Cluster
- title: Inject Data Into Applications
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: Run Applications
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
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: Debugging Applications in a Cluster
- 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: Accessing the Kubernetes API
- 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: Administering a Cluster
- title: TLS
section:
- docs/tasks/administer-cluster/assign-pods-nodes.md
- 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: Managing Stateful Applications
- title: Federation - Run an App on Multiple Clusters
section:
- docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.md
- docs/tasks/manage-stateful-set/scale-stateful-set.md
- docs/tasks/manage-stateful-set/deleting-a-statefulset.md
- docs/tasks/manage-stateful-set/debugging-a-statefulset.md
- docs/tasks/manage-stateful-set/delete-pods.md
- 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: Troubleshooting
- title: Manage Cluster Daemons
section:
- docs/tasks/troubleshoot/debug-init-containers.md
- docs/tasks/administer-cluster/access-control-identity-management/
- 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
+22 -7
View File
@@ -29,21 +29,36 @@ toc:
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: Stateless Applications
section:
- docs/tutorials/stateless-application/hello-minikube.md
- docs/tutorials/stateless-application/run-stateless-application-deployment.md
- docs/tutorials/stateless-application/expose-external-ip-address-service.md
- 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: Stateful Applications
section:
- docs/tutorials/stateful-application/basic-stateful-set.md
- docs/tutorials/stateful-application/run-stateful-application.md
- docs/tutorials/stateful-application/run-replicated-stateful-application.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: Connecting Applications
- title: Clusters
section:
- docs/tutorials/connecting-apps/connecting-frontend-backend.md
- docs/tutorials/clusters/apparmor.md
- title: Services
section:
- docs/tutorials/services/source-ip.md
+2
View File
@@ -0,0 +1,2 @@
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:
+1 -1
View File
@@ -14,7 +14,7 @@
{% 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">
<img src="/images/copycode.svg" style="max-height:24px" onclick="copyCode('{{include.file | handleize}}')" title="Copy {{include.file}} to clipboard">
</th>
</tr>
</thead>
+28
View File
@@ -0,0 +1,28 @@
<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 %}
+13
View File
@@ -0,0 +1,13 @@
{% 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 %}
+14
View File
@@ -0,0 +1,14 @@
{% 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 %}
+6
View File
@@ -0,0 +1,6 @@
{% 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 %}
+10
View File
@@ -0,0 +1,10 @@
{% 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 %}
@@ -0,0 +1,8 @@
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.
+2
View File
@@ -0,0 +1,2 @@
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:
+32 -32
View File
@@ -1,34 +1,34 @@
<footer>
<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">
&copy; {{ 'now' | date: "%Y" }} The Kubernetes Authors | Documentation Distributed under <a href="https://github.com/kubernetes/kubernetes.github.io/blob/master/LICENSE" class="light-text">CC BY 4.0</a>
</div>
<div id="miceType" class="center">
Copyright &copy; {{ 'now' | date: "%Y" }} The Linux Foundation&reg;. 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/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">
&copy; {{ '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 &copy; {{ 'now' | date: "%Y" }} The Linux Foundation&reg;. 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>
</footer>
+13 -6
View File
@@ -2,12 +2,19 @@
<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.class == "gridPage" %}<link rel="stylesheet" href="/css/gridpage.css">{% endif %}
<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>
+4 -4
View File
@@ -5,13 +5,13 @@
<div class="nav-buttons" data-auto-burger="primary">
<ul class="global-nav">
<li><a href="/docs/">Documentation</a></li>
<li><a href="/docs/home/">Documentation</a></li>
<li><a href="http://blog.kubernetes.io/">Blog</a></li>
<li><a href="/partners/">Partners</a></li>
<li><a href="/community/">Community</a></li>
<li><a href="/case-studies/">Case Studies</a></li>
</ul>
<!-- <a href="/docs/" class="button" id="viewDocs" data-auto-burger-exclude>View Documentation</a> -->
<!-- <a href="/docs/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>
<button id="hamburger" onclick="kub.toggleMenu()" data-auto-burger-exclude><div></div></button>
</div>
@@ -19,11 +19,11 @@
<nav id="mainNav">
<main data-auto-burger="primary">
<div class="nav-box">
<h3><a href="/docs/hellonode/">Get Started</a></h3>
<h3><a href="/docs/tutorials/stateless-application/hello-minikube/">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>
<h3><a href="/docs/home/">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">
+234 -2
View File
@@ -279,14 +279,246 @@
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')
-17
View File
@@ -1,17 +0,0 @@
{% 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>
+15
View File
@@ -0,0 +1,15 @@
{% 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>
-121
View File
@@ -1,121 +0,0 @@
{% 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 %}
+12
View File
@@ -0,0 +1,12 @@
<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>
@@ -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>
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -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>
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -3453,7 +3453,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">nodeSelector</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node&#8217;s labels for the pod to be scheduled on that node. More info: <a href="http://kubernetes.io/docs/user-guide/node-selection/README">http://kubernetes.io/docs/user-guide/node-selection/README</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node&#8217;s labels for the pod to be scheduled on that node. More info: <a href="http://kubernetes.io/docs/user-guide/node-selection">http://kubernetes.io/docs/user-guide/node-selection</a></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">object</p></td>
<td class="tableblock halign-left valign-top"></td>
@@ -3557,14 +3557,14 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">postStart</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: <a href="http://kubernetes.io/docs/user-guide/container-environment#hook-details">http://kubernetes.io/docs/user-guide/container-environment#hook-details</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: <a href="http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details">http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details</a></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_handler">v1.Handler</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">preStop</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: <a href="http://kubernetes.io/docs/user-guide/container-environment#hook-details">http://kubernetes.io/docs/user-guide/container-environment#hook-details</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: <a href="http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details">http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details</a></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_handler">v1.Handler</a></p></td>
<td class="tableblock halign-left valign-top"></td>
@@ -4613,10 +4613,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>
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+4 -4
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -4172,7 +4172,7 @@ The resulting set of endpoints can be viewed as:<br>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">nodeSelector</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node&#8217;s labels for the pod to be scheduled on that node. More info: <a href="http://kubernetes.io/docs/user-guide/node-selection/README">http://kubernetes.io/docs/user-guide/node-selection/README</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node&#8217;s labels for the pod to be scheduled on that node. More info: <a href="http://kubernetes.io/docs/user-guide/node-selection">http://kubernetes.io/docs/user-guide/node-selection</a></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">object</p></td>
<td class="tableblock halign-left valign-top"></td>
@@ -8146,7 +8146,7 @@ The resulting set of endpoints can be viewed as:<br>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">unschedulable</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: <a href="http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration"">http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration"</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: <a href="http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration">http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration</a></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">boolean</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
@@ -8263,4 +8263,4 @@ Last updated 2016-11-17 06:26:10 UTC
</div>
</div>
</body>
</html>
</html>
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+20 -25
View File
@@ -22,18 +22,15 @@
<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/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>
<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)">
<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>
@@ -41,9 +38,7 @@
<section id="encyclopedia">
<div id="docsToc">
<div class="pi-accordion">
{% if toc.bigheader != "Kubernetes Documentation" %}
{% include_cached tree.html tree=toc.toc %}
{% endif %}
</div> <!-- /pi-accordion -->
<button class="push-menu-close-button" onclick="kub.toggleToc()"></button>
</div> <!-- /docsToc -->
@@ -57,22 +52,22 @@
{{ content }}
<p><a href=""><img src="https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/{{ page.path }}?pixel" alt="Analytics" /></a>
<p><a href=""><img src="https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/{{ page.path }}?pixel" alt="Analytics" /></a></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>
<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>
</section>
{% include_cached footer.html %}
+294 -8
View File
@@ -816,9 +816,9 @@ dd
font-weight: 500
p
font-size: 14px
font-size: 16px
font-weight: 300
line-height: 1.25em
line-height: 1.75em
p + p
margin-top: 10px
@@ -856,6 +856,7 @@ dd
display: block
margin: 20px 0
padding: 15px
position: relative
overflow-x: auto
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code
@@ -863,6 +864,9 @@ dd
font-size: inherit
background-color: transparent
.includecode
table-layout: fixed
.includecode, .includecode th, .includecode td
padding: 0 !important
@@ -893,6 +897,8 @@ dd
li
margin-bottom: 0.75em
font-size: 16px
line-height: 1.75em
table
width: 100%
@@ -962,8 +968,8 @@ dd
//font-weight: 700
text-decoration: underline
a:visited
color: blueviolet
// a:visited
// color: blueviolet
a.button
border-radius: 2px
@@ -1277,7 +1283,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)
#calendarWrapper
#calendarMeetings
position: relative
width: 80vw
height: 60vw
@@ -1285,12 +1291,284 @@ $feature-box-div-margin-bottom: 40px
max-height: 900px
margin: 20px auto
#calendarEvents
position: relative
width: 80vw
height: 30vw
max-width: 1200px
max-height: 450px
margin: 20px auto
iframe
position: absolute
border: 0
width: 100%
height: 100%
// Dialog
.ui-icon
display: inline-block !important
#feature-state-dialog-link
text-decoration: none !important
padding: 5px !important
a:visited
color: #454545 !important
a code
display: inline-block !important
box-sizing: border-box !important
background-color: #f7f7f7 !important
color: #303030 !important
font-family: "Roboto Mono", monospace !important
vertical-align: baseline !important
font-size: 14px !important
font-weight: bold !important
padding: 0px 4px !important
#feature-state-dialog
background: #fff !important
border: 1px solid #ddd !important
padding: 0.5em 1em !important
ul, li
list-style: disc !important
margin: 4px 12px !important
p
margin: 8px 0px !important
code
display: inline-block !important
box-sizing: border-box !important
background-color: #f7f7f7 !important
color: #303030 !important
font-family: "Roboto Mono", monospace !important
vertical-align: baseline !important
font-size: 14px !important
font-weight: bold !important
padding: 0px 4px !important
.ui-dialog
background: #f7f7f7 !important
padding: 0.5em
.ui-dialog-content
position: relative
float: right
width: 100%
$toc-margin: 15px
$header-clearance: $header-height + 20px
* + h2, * + h3, * + h4, * + h5, * + h6
margin-top: 30px
h1, h2, h3, h4, h5, h6
line-height: normal
font-weight: 500
margin-bottom: 30px
padding-bottom: 10px
// Make sure anchor links aren't hidden by the header
&:before
display: block
content: " "
margin-top: -$header-clearance
height: $header-clearance
visibility: hidden
h1,h2
border-bottom: 1px solid #cccccc
h1
font-size: 32px
padding-right: 60px
h2
font-size: 28px
h3
font-size: 24px
font-weight: 300
margin-bottom: 5px
h4
font-size: 20px
margin-bottom: 0px
h5, h6
font-size: 16px
font-weight: 500
p
font-size: 16px
font-weight: 300
line-height: 1.75em
p + p
margin-top: 10px
code
display: inline-block
box-sizing: border-box
background-color: $light-grey
color: $dark-grey
font-family: $mono-font
vertical-align: baseline
font-size: 14px
font-weight: bold
padding: 2px 4px
a code
color: $blue
text-decoration: underline
pre .pi, pre .s
margin: 0
padding: 0
.highlight code span, code, pre code
font-family: "Roboto Mono", monospace
code, pre code
color: #303030
pre code
padding: 0
pre
background-color: #f7f7f7
display: block
margin: 20px 0
padding: 15px
position: relative
overflow-x: auto
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code
font-family: inherit
font-size: inherit
background-color: transparent
.includecode
table-layout: fixed
.includecode, .includecode th, .includecode td
padding: 0 !important
.includecode th
text-align: right !important
padding: 10px !important
.includecode th a, .includecode th a code
color: white !important
background-color: transparent !important
.includecode pre
margin: 0 !important
ul li
list-style: disc
ol li
list-style: decimal
ul, ol
margin: 20px 0
padding-left: 30px
font-weight: 300
ul ul, ol ol, ul ol, ol ul
margin: 0.75em 0
li
margin-bottom: 0.75em
font-size: 16px
line-height: 1.75em
table
width: 100%
border: 1px solid #ccc
border-spacing: 0
margin-top: 30px
margin-bottom: 30px
thead, tr:nth-child(even)
background-color: $light-grey
thead
background-color: #555
color: white
th, td
padding: 8px
text-align: left
margin: 0
th
font-weight: normal
td
font-size: 0.85em
#editPageButton
position: absolute
top: -25px
right: 5px
width: 50px
height: 50px
line-height: 50px
border-radius: 50%
white-space: nowrap
text-indent: 50px
overflow: hidden
background: $blue url(/images/icon-pencil.svg) no-repeat
background-position: 12px 10px
background-size: 29px 29px
#markdown-toc
margin-bottom: 20px
ul, li
list-style: disc
color: $blue
ul
padding: 0 15px
margin: 0
li
padding: 0
line-height: 1.5em
margin-bottom: 0
a
position: relative
color: $blue
font-weight: 700
img
max-width: 100%
a
//font-weight: 700
text-decoration: underline
// a:visited
// color: blueviolet
a.button
border-radius: 2px
text-decoration: none
&:visited
color: white
a.issue
margin-left: 0px
.ui-dialog-buttonpane
background: #f7f7f7 !important
// Tabs
.ui-widget-header
background: transparent !important
@@ -1302,19 +1580,27 @@ $feature-box-div-margin-bottom: 40px
padding: 0px !important
list-style: none !important
margin-bottom: 0px !important
margin-left: 1px !important
margin-left: 4px !important
.ui-tabs-panel
ul li
list-style: disc !important
ol li
list-style: decimal !important
.ui-widget-content
border: 0px !important
.ui-widget-content
table
margin: 0px !important
.ui-tabs .ui-tabs-panel
padding: 0px !important
border: 1px solid #ccc !important
.ui-tabs-anchor
text-decoration: none !important
// Talk to us
#talkToUs
h3, h4
+77 -77
View File
@@ -6,94 +6,94 @@ cid: caseStudies
---
<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="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>
</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></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="true"></iframe>
<button id="closeButton"></button>
</div>
+60 -60
View File
@@ -6,76 +6,76 @@ cid: caseStudies
---
<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>
+75 -75
View File
@@ -6,91 +6,91 @@ cid: caseStudies
---
<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>
+18
View File
@@ -0,0 +1,18 @@
## 如何参与 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 在社区参与中茁壮成长,我们非常感谢您对我们的网站和文档的贡献!
+2
View File
@@ -0,0 +1,2 @@
Kubernetes 文档的 [用户指南](/docs/user-guide/) 部分中的主题将被移动到 [任务](/docs/tasks/)、[教程](/docs/tutorials/)和
[概念](/docs/concepts) 部分。 本主题的内容已转移到:
View File
@@ -0,0 +1,119 @@
---
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/)?
![为什么是容器?](/images/docs/why_containers.svg)
*传统* 部署应用程序的方式,一般是使用操作系统自带的包管理器在主机上安装应用依赖,之后再安装应用程序。这无疑将应用程序的可执行文件、应用的配置、应用依赖库和应用的生命周期与宿主机操作系统进行了紧耦合。在此情境下,可以通过构建不可改变的虚拟机镜像版本,通过镜像版本实现可预测的发布和回滚,但是虚拟机实在是太重量级了,且镜像体积太庞大,便捷性差。
*新方式* 是基于操作系统级虚拟化而不是硬件级虚拟化方法来部署容器。容器之间彼此隔离并与主机隔离:它们具有自己的文件系统,不能看到彼此的进程,并且它们所使用的计算资源是可以被限制的。它们比虚拟机更容易构建,并且因为它们与底层基础架构和主机文件系统隔离,所以它们可以跨云和操作系统快速分发。
由于容器体积小且启动快,因此可以在每个容器镜像中打包一个应用程序。这种一对一的应用镜像关系拥有很多好处。使用容器,不需要与外部的基础架构环境绑定, 因为每一个应用程序不需要外部依赖,更不需要与外部的基础架构环境依赖。完美解决了从开发到生产环境的一致性问题。
类似地,容器比虚拟机更加透明,这有助于监测和管理。真实的情况是,容器进程的生命周期由基础设施管理,而容器内的进程对外是隐藏的。最后,每个应用程序用容器封装,管理容器部署就等同于管理应用程序部署。
容器好处摘要:
* **敏捷的应用程序创建和部署**:
与虚拟机镜像相比,容器镜像更容易创建,提升了硬件的使用效率。
* **持续开发、集成和部署**:
提供可靠与频繁的容器镜像构建和部署,可以很方便及快速的回滚 (由于镜像不可变性).
* **关注开发与运维的分离**:
在构建/发布时创建应用程序容器镜像,从而将应用程序与基础架构分离。
* **开发、测试和生产环境的一致性**:
在笔记本电脑上运行与云中一样。
* **云和操作系统的可移植性**:
可运行在 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 的发音比较接近。
@@ -0,0 +1,35 @@
---
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>
+110
View File
@@ -0,0 +1,110 @@
---
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>
@@ -0,0 +1,39 @@
---
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>
+108
View File
@@ -0,0 +1,108 @@
---
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>
@@ -0,0 +1,39 @@
---
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>
+142
View File
@@ -0,0 +1,142 @@
---
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>
@@ -0,0 +1,36 @@
---
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>
+138
View File
@@ -0,0 +1,138 @@
---
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>
+106
View File
@@ -0,0 +1,106 @@
---
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>
+38
View File
@@ -0,0 +1,38 @@
---
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>
+120
View File
@@ -0,0 +1,120 @@
---
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>
@@ -0,0 +1,31 @@
---
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>
+135
View File
@@ -0,0 +1,135 @@
---
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>
+9
View File
@@ -0,0 +1,9 @@
---
assignees:
- k8s-merge-robot
title: 认识 Kubernetes?
---
{% include user-guide-content-moved.md %}
[认识 Kubernetes?](/docs/concepts/overview/what-is-kubernetes/)
+56 -49
View File
@@ -9,56 +9,63 @@ cid: community
</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>
</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>
<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>
<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>
+42 -41
View File
@@ -3,16 +3,12 @@ assignees:
- bgrant0607
- erictune
- lavalamp
title: Overview
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/user-guide/service-accounts/) can be
[Kubernetes service accounts](/docs/tasks/configure-pod-container/configure-service-account/) can be
authorized for API access.
When a request reaches the API, it goes through several stages, illustrated in the
following diagram:
@@ -42,7 +38,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,
and JWT Tokens (used for service accounts).
Bootstrap Tokens, 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.
@@ -61,43 +57,48 @@ users in its object store.
## Authorization
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.
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.
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.
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.
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).
For example, if Bob has the policy below, then he can read pods only in the namespace `projectCaribou`:
The [Authorization Modules](/docs/admin/authorization) page describes what authorization modules
are available and how to configure them.
```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:
For version 1.2, clusters created by `kube-up.sh` are configured so that no authorization is
required for any request.
```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.
As of version 1.3, clusters created by `kube-up.sh` are configured so that the ABAC authorization
modules are 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 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.
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).
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).
To learn more about Kubernetes authorization, including details about creating policies using the supported authorization modules, see [Authorization Overview](/docs/admin/authorization).
Access controls and policies that depend on specific fields of specific Kinds of objects
are handled by Admission Controllers.
## Admission Control
@@ -108,7 +109,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.
@@ -122,7 +123,7 @@ 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:
@@ -132,7 +133,7 @@ By default the Kubernetes API server 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.
@@ -141,8 +142,8 @@ 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.
-30
View File
@@ -1,30 +0,0 @@
---
title: Installing Addons
---
## 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/v2.0/getting-started/kubernetes/installation/hosted/) is a secure L3 networking and network policy provider.
* [Canal](https://github.com/tigera/canal/tree/master/k8s-install/kubeadm) unites Flannel and Calico, providing networking and network policy.
* [Flannel](https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml) is an 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 &amp; 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!
+65 -7
View File
@@ -87,7 +87,7 @@ The ImagePolicyWebhook plug-in allows a backend webhook to make admission decisi
```
#### Configuration File 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:
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:
```javascript
{
@@ -101,7 +101,7 @@ ImagePolicyWebhook uses the admission controller config file (`--admission-contr
}
```
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 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 kubeconfig file's cluster field must point to the remote service, and the user field must contain the returned authorizer.
@@ -120,7 +120,7 @@ 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/user-guide/kubeconfig-file/) documentation.
For additional HTTP configuration, refer to the [kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/) documentation.
#### Request Payloads
@@ -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 with a [SecurityContext](/docs/user-guide/security-context) that defines options that were not available on the `Container`.
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.
### 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://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.
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.
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://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.
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.
### 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://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/proposals/initial-resources.md) for more details.
See the [InitialResouces proposal](https://git.k8s.io/community/contributors/design-proposals/initial-resources.md) for more details.
### NamespaceLifecycle
@@ -252,9 +252,67 @@ 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):
-392
View File
@@ -1,392 +0,0 @@
---
assignees:
- stclair
title: AppArmor
---
AppArmor is a Linux kernel enhancement that can reduce the potential attack surface of an
application and provide greater defense in depth for Applications. Beta support for AppArmor was
added in Kubernetes v1.4.
* TOC
{:toc}
## What is AppArmor
AppArmor is a Linux kernel security module that supplements the standard Linux user and group based
permissions to confine programs to a limited set of resources. AppArmor can be configured for any
application to reduce its potential attack surface and provide greater defense in depth. It is
configured through profiles tuned to whitelist the access needed by a specific program or container,
such as Linux capabilities, network access, file permissions, etc. Each profile can be run in either
enforcing mode, which blocks access to disallowed resources, or complain mode, which only reports
violations.
AppArmor can help you to run a more secure deployment by restricting what containers are allowed to
do, and /or providing better auditing through system logs. However, it is important to keep in mind
that AppArmor is not a silver bullet, and can only do so much to protect against exploits in your
application code. It is important to provide good, restrictive profiles, and harden your
applications and cluster from other angles as well.
AppArmor support in Kubernetes is currently in beta.
## Prerequisites
1. **Kubernetes version is at least v1.4**. Kubernetes support for AppArmor was added in
v1.4. Kubernetes components older than v1.4 are not aware of the new AppArmor annotations, and
will **silently ignore** any AppArmor settings that are provided. To ensure that your Pods are
receiving the expected protections, it is important to verify the Kubelet version of your nodes:
$ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.kubeletVersion}\n{end}'
gke-test-default-pool-239f5d02-gyn2: v1.4.0
gke-test-default-pool-239f5d02-x1kf: v1.4.0
gke-test-default-pool-239f5d02-xwux: v1.4.0
2. **AppArmor kernel module is enabled**. For the Linux kernel to enforce an AppArmor profile, the
AppArmor kernel module must be installed and enabled. Several distributions enable the module by
default, such as Ubuntu and SUSE, and many others provide optional support. To check whether the
module is enabled, check the `/sys/module/apparmor/parameters/enabled` file:
$ cat /sys/module/apparmor/parameters/enabled
Y
If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor
options if the kernel module is not enabled.
*Note: Ubuntu carries many AppArmor patches that have not been merged into the upstream Linux
kernel, including patches that add additional hooks and features. Kubernetes has only been
tested with the upstream version, and does not promise support for other features.*
3. **Container runtime is Docker**. Currently the only Kubernetes-supported container runtime that
also supports AppArmor is Docker. As more runtimes add AppArmor support, the options will be
expanded. You can verify that your nodes are running docker with:
$ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.containerRuntimeVersion}\n{end}'
gke-test-default-pool-239f5d02-gyn2: docker://1.11.2
gke-test-default-pool-239f5d02-x1kf: docker://1.11.2
gke-test-default-pool-239f5d02-xwux: docker://1.11.2
If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor
options if the runtime is not Docker.
4. **Profile is loaded**. AppArmor is applied to a Pod by specifying an AppArmor profile that each
container should be run with. If any of the specified profiles is not already loaded in the
kernel, the Kubelet (>= v1.4) will reject the Pod. You can view which profiles are loaded on a
node by checking the `/sys/kernel/security/apparmor/profiles` file. For example:
$ ssh gke-test-default-pool-239f5d02-gyn2 "sudo cat /sys/kernel/security/apparmor/profiles | sort"
apparmor-test-deny-write (enforce)
apparmor-test-audit-write (enforce)
docker-default (enforce)
k8s-nginx (enforce)
For more details on loading profiles on nodes, see
[Setting up nodes with profiles](#setting-up-nodes-with-profiles).
As long as the Kubelet version includes AppArmor support (>= v1.4), the Kubelet will reject a Pod
with AppArmor options if any of the prerequisites are not met. You can also verify AppArmor support
on nodes by checking the node ready condition message (though this is likely to be removed in a
later release):
$ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {.status.conditions[?(@.reason=="KubeletReady")].message}\n{end}'
gke-test-default-pool-239f5d02-gyn2: kubelet is posting ready status. AppArmor enabled
gke-test-default-pool-239f5d02-x1kf: kubelet is posting ready status. AppArmor enabled
gke-test-default-pool-239f5d02-xwux: kubelet is posting ready status. AppArmor enabled
## Securing a Pod
*Note: AppArmor is currently in beta, so options are specified as annotations. Once support graduates to
general availability, the annotations will be replaced with first-class fields (more details in
[Upgrade path to GA](#upgrade-path-to-general-availability)).*
AppArmor profiles are specified *per-container*. To specify the AppArmor profile to run a Pod
container with, add an annotation to the Pod's metadata:
container.apparmor.security.beta.kubernetes.io/<container_name>: <profile_ref>
Where `<container_name>` is the name of the container to apply the profile to, and `<profile_ref>`
specifies the profile to apply. The `profile_ref` can be one of:
- `runtime/default` to apply the runtime's default profile.
- `localhost/<profile_name>` to apply the profile loaded on the host with the name `<profile_name>`
See the [API Reference](#api-reference) for the full details on the annotation and profile name formats.
The Kubernetes AppArmor enforcement works by first checking that all the prerequisites have been
met, and then forwarding the profile selection to the container runtime for enforcement. If the
prerequisites have not been met, the Pod will be rejected, and will not run.
To verify that the profile was applied, you can expect to see the AppArmor security option listed in the container created event:
$ kubectl get events | grep Created
22s 22s 1 hello-apparmor Pod spec.containers{hello} Normal Created {kubelet e2e-test-stclair-minion-group-31nt} Created container with docker id 269a53b202d3; Security:[seccomp=unconfined apparmor=k8s-apparmor-example-deny-write]
You can also verify directly that the container's root process is running with the correct profile by checking its proc attr:
$ kubectl exec <pod_name> cat /proc/1/attr/current
k8s-apparmor-example-deny-write (enforce)
## Example
In this example you'll see:
- One way to load a profile on a node
- How to enforce the profile on a Pod
- How to check that the profile is loaded
- What happens when a profile is violated
- What happens when a profile cannot be loaded
*This example assumes you have already set up a cluster with AppArmor support.*
First, we need to load the profile we want to use onto our nodes. The profile we'll use simply
denies all file writes:
{% include code.html language="text" file="deny-write.profile" ghlink="/docs/admin/apparmor/deny-write.profile" %}
Since we don't know where the Pod will be scheduled, we'll need to load the profile on all our
nodes. For this example we'll just use SSH to install the profiles, but other approaches are
discussed in [Setting up nodes with profiles](#setting-up-nodes-with-profiles).
$ NODES=(
# The SSH-accessible domain names of your nodes
gke-test-default-pool-239f5d02-gyn2.us-central1-a.my-k8s
gke-test-default-pool-239f5d02-x1kf.us-central1-a.my-k8s
gke-test-default-pool-239f5d02-xwux.us-central1-a.my-k8s)
$ for NODE in ${NODES[*]}; do ssh $NODE 'sudo apparmor_parser -q <<EOF
#include <tunables/global>
profile k8s-apparmor-example-deny-write flags=(attach_disconnected) {
#include <abstractions/base>
file,
# Deny all file writes.
deny /** w,
}
EOF'
done
Next, we'll run a simple "Hello AppArmor" pod with the deny-write profile:
{% include code.html language="yaml" file="hello-apparmor-pod.yaml" ghlink="/docs/admin/apparmor/hello-apparmor-pod.yaml" %}
$ kubectl create -f /dev/stdin <<EOF
apiVersion: v1
kind: Pod
metadata:
name: hello-apparmor
annotations:
container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-deny-write
spec:
containers:
- name: hello
image: busybox
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
EOF
pod "hello-apparmor" created
If we look at the pod events, we can see that the Pod container was created with the AppArmor
profile "k8s-apparmor-example-deny-write":
$ kubectl get events | grep hello-apparmor
14s 14s 1 hello-apparmor Pod Normal Scheduled {default-scheduler } Successfully assigned hello-apparmor to gke-test-default-pool-239f5d02-gyn2
14s 14s 1 hello-apparmor Pod spec.containers{hello} Normal Pulling {kubelet gke-test-default-pool-239f5d02-gyn2} pulling image "busybox"
13s 13s 1 hello-apparmor Pod spec.containers{hello} Normal Pulled {kubelet gke-test-default-pool-239f5d02-gyn2} Successfully pulled image "busybox"
13s 13s 1 hello-apparmor Pod spec.containers{hello} Normal Created {kubelet gke-test-default-pool-239f5d02-gyn2} Created container with docker id 06b6cd1c0989; Security:[seccomp=unconfined apparmor=k8s-apparmor-example-deny-write]
13s 13s 1 hello-apparmor Pod spec.containers{hello} Normal Started {kubelet gke-test-default-pool-239f5d02-gyn2} Started container with docker id 06b6cd1c0989
We can verify that the container is actually running with that profile by checking its proc attr:
$ kubectl exec hello-apparmor cat /proc/1/attr/current
k8s-apparmor-example-deny-write (enforce)
Finally, we can see what happens if we try to violate the profile by writing to a file:
$ kubectl exec hello-apparmor touch /tmp/test
touch: /tmp/test: Permission denied
error: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1
To wrap up, let's look at what happens if we try to specify a profile that hasn't been loaded:
$ kubectl create -f /dev/stdin <<EOF
apiVersion: v1
kind: Pod
metadata:
name: hello-apparmor-2
annotations:
container.apparmor.security.beta.kubernetes.io/hello: localhost/k8s-apparmor-example-allow-write
spec:
containers:
- name: hello
image: busybox
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
EOF
pod "hello-apparmor-2" created
$ kubectl describe pod hello-apparmor-2
Name: hello-apparmor-2
Namespace: default
Node: gke-test-default-pool-239f5d02-x1kf/
Start Time: Tue, 30 Aug 2016 17:58:56 -0700
Labels: <none>
Status: Failed
Reason: AppArmor
Message: Pod Cannot enforce AppArmor: profile "k8s-apparmor-example-allow-write" is not loaded
IP:
Controllers: <none>
Containers:
hello:
Image: busybox
Port:
Command:
sh
-c
echo 'Hello AppArmor!' && sleep 1h
Requests:
cpu: 100m
Environment Variables: <none>
Volumes:
default-token-dnz7v:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-dnz7v
QoS Tier: Burstable
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
23s 23s 1 {default-scheduler } Normal Scheduled Successfully assigned hello-apparmor-2 to e2e-test-stclair-minion-group-t1f5
23s 23s 1 {kubelet e2e-test-stclair-minion-group-t1f5} Warning AppArmor Cannot enforce AppArmor: profile "k8s-apparmor-example-allow-write" is not loaded
Note the pod status is Failed, with a helpful error message: `Pod Cannot enforce AppArmor: profile
"k8s-apparmor-example-allow-write" is not loaded`. An event was also recorded with the same message.
## Administration
### Setting up nodes with profiles
Kubernetes does not currently provide any native mechanisms for loading AppArmor profiles onto
nodes. There are lots of ways to setup the profiles though, such as:
- Through a [DaemonSet](../daemons/) that runs a Pod on each node to
ensure the correct profiles are loaded. An example implementation can be found
[here](https://github.com/kubernetes/contrib/tree/master/apparmor/loader).
- At node initialization time, using your node initialization scripts (e.g. Salt, Ansible, etc.) or
image.
- By copying the profiles to each node and loading them through SSH, as demonstrated in the
[Example](#example).
The scheduler is not aware of which profiles are loaded onto which node, so the full set of profiles
must be loaded onto every node. An alternative approach is to add a node label for each profile (or
class of profiles) on the node, and use a
[node selector](../../user-guide/node-selection/) to ensure the Pod is run on a
node with the required profile.
### Restricting profiles with the PodSecurityPolicy
If the PodSecurityPolicy extension is enabled, cluster-wide AppArmor restrictions can be applied. To
enable the PodSecurityPolicy, two flags must be set on the `apiserver`:
--admission-control=PodSecurityPolicy[,others...]
--runtime-config=extensions/v1beta1/podsecuritypolicy[,others...]
With the extension enabled, the AppArmor options can be specified as annotations on the PodSecurityPolicy:
apparmor.security.beta.kubernetes.io/defaultProfileName: <profile_ref>
apparmor.security.beta.kubernetes.io/allowedProfileNames: <profile_ref>[,others...]
The default profile name option specifies the profile to apply to containers by default when none is
specified. The allowed profile names option specifies a list of profiles that Pod containers are
allowed to be run with. If both options are provided, the default must be allowed. The profiles are
specified in the same format as on containers. See the [API Reference](#api-reference) for the full
specification.
### Disabling AppArmor
If you do not want AppArmor to be available on your cluster, it can be disabled by a command-line flag:
--feature-gates=AppArmor=false
When disabled, any Pod that includes an AppArmor profile will fail validation with a "Forbidden"
error. Note that by default docker always enables the "docker-default" profile on non-privileged
pods (if the AppArmor kernel module is enabled), and will continue to do so even if the feature-gate
is disabled. The option to disable AppArmor will be removed when AppArmor graduates to general
availability (GA).
### Upgrading to Kubernetes v1.4 with AppArmor
No action is required with respect to AppArmor to upgrade your cluster to v1.4. However, if any
existing pods had an AppArmor annotation, they will not go through validation (or PodSecurityPolicy
admission). If permissive profiles are loaded on the nodes, a malicious user could pre-apply a
permissive profile to escalate the pod privileges above the docker-default. If this is a concern, it
is recommended to scrub the cluster of any pods containing an annotation with
`apparmor.security.beta.kubernetes.io`.
### Upgrade path to General Availability
When AppArmor is ready to be graduated to general availability (GA), the options currently specified
through annotations will be converted to fields. Supporting all the upgrade and downgrade paths
through the transition is very nuanced, and will be explained in detail when the transition
occurs. We will commit to supporting both fields and annotations for at least 2 releases, and will
explicitly reject the annotations for at least 2 releases after that.
## Authoring Profiles
Getting AppArmor profiles specified correctly can be a tricky business. Fortunately there are some
tools to help with that:
- `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activity and
logs, and admitting the actions it takes. Further instructions are provided by the
[AppArmor documentation](http://wiki.apparmor.net/index.php/Profiling_with_tools).
- [bane](https://github.com/jfrazelle/bane) is an AppArmor profile generator for Docker that uses a
simplified profile language.
It is recommended to run your application through Docker on a development workstation to generate
the profiles, but there is nothing preventing running the tools on the Kubernetes node where your
Pod is running.
To debug problems with AppArmor, you can check the system logs to see what, specifically, was
denied. AppArmor logs verbose messages to `dmesg`, and errors can usually be found in the system
logs or through `journalctl`. More information is provided in
[AppArmor failures](http://wiki.apparmor.net/index.php/AppArmor_Failures).
Additional resources:
- [Quick guide to the AppArmor profile language](http://wiki.apparmor.net/index.php/QuickProfileLanguage)
- [AppArmor core policy reference](http://wiki.apparmor.net/index.php/ProfileLanguage)
## API Reference
**Pod Annotation**:
Specifying the profile a container will run with:
- **key**: `container.apparmor.security.beta.kubernetes.io/<container_name>`
Where `<container_name>` matches the name of a container in the Pod.
A separate profile can be specified for each container in the Pod.
- **value**: a profile reference, described below
**Profile Reference**:
- `runtime/default`: Refers to the default runtime profile.
- Equivalent to not specifying a profile (without a PodSecurityPolicy default), except it still
requires AppArmor to be enabled.
- For Docker, this resolves to the
[`docker-default`](https://docs.docker.com/engine/security/apparmor/) profile for non-privileged
containers, and unconfined (no profile) for privileged containers.
- `localhost/<profile_name>`: Refers to a profile loaded on the node (localhost) by name.
- The possible profile names are detailed in the
[core policy reference](http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference#Profile_names_and_attachment_specifications)
Any other profile reference format is invalid.
**PodSecurityPolicy Annotations**
Specifying the default profile to apply to containers when none is provided:
- **key**: `apparmor.security.beta.kubernetes.io/defaultProfileName`
- **value**: a profile reference, described above
Specifying the list of profiles Pod containers is allowed to specify:
- **key**: `apparmor.security.beta.kubernetes.io/allowedProfileNames`
- **value**: a comma-separated list of profile references (described above)
- Although an escaped comma is a legal character in a profile name, it cannot be explicitly
allowed here
-67
View File
@@ -1,67 +0,0 @@
---
assignees:
- soltysh
- sttts
title: Audit in Kubernetes
---
* TOC
{:toc}
Kubernetes Audit provides a security-relevant chronological set of records documenting
the sequence of activities that have affected system by individual users, administrators
or other components of the system. It allows cluster administrator to
answer the following questions:
- what happened?
- when did it happen?
- who initiated it?
- on what did it happen?
- where was it observed?
- from where was it initiated?
- to where was it going?
NOTE: Currently, Kubernetes provides only basic audit capabilities, there is still a lot
of work going on to provide fully featured auditing capabilities (see [this issue](https://github.com/kubernetes/features/issues/22)).
Kubernetes audit is part of [kube-apiserver](/docs/admin/kube-apiserver) logging all requests
coming to the server. Each audit log contains two entries:
1. The request line containing:
- unique id allowing to match the response line (see 2)
- source ip of the request
- HTTP method being invoked
- original user invoking the operation
- impersonated user for the operation
- namespace of the request or <none>
- URI as requested
2. The response line containing:
- the unique id from 1
- response code
Example output for user `admin` asking for a list of pods:
```
2016-09-07T13:03:57.400333046Z AUDIT: id="5c3b8227-4af9-4322-8a71-542231c3887b" ip="127.0.0.1" method="GET" user="admin" as="<self>" namespace="default" uri="/api/v1/namespaces/default/pods"
2016-09-07T13:03:57.400710987Z AUDIT: id="5c3b8227-4af9-4322-8a71-542231c3887b" response="200"
```
NOTE: The audit capabilities are available *only* for the secured endpoint of the API server.
## Configuration
[Kube-apiserver](/docs/admin/kube-apiserver) provides following options which are responsible
for configuring where and how audit logs are handled:
- `audit-log-path` - enables the audit log pointing to a file where the requests are being logged to.
- `audit-log-maxage` - specifies maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
- `audit-log-maxbackup` - specifies maximum number of old audit log files to retain.
- `audit-log-maxsize` - specifies maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB
If an audit log file already exists, Kubernetes appends new audit logs to that file.
Otherwise, Kubernetes creates an audit log file at the location you specified in
`audit-log-path`. If the audit log file exceeds the size you specify in `audit-log-maxsize`,
Kubernetes will rename the current log file by appending the current timestamp on
the file name (before the file extension) and create a new audit log file.
Kubernetes may delete old log files when creating a new log file; you can configure
how many files are retained and how old they can be by specifying the `audit-log-maxbackup`
and `audit-log-maxage` options.
+222 -25
View File
@@ -54,7 +54,7 @@ You can enable multiple authentication methods at once. You should usually use a
- service account tokens for service accounts
- at least one other method for user authentication.
When multiple are enabled, the first authenticator module
When multiple authenticator modules are enabled, the first module
to successfully authenticate the request short-circuits evaluation.
The API server does not guarantee the order authenticators run in.
@@ -85,9 +85,9 @@ See [APPENDIX](#appendix) for how to generate a client cert.
The API server reads bearer tokens from a file when given the `--token-auth-file=SOMEFILE` option on the command line. Currently, tokens last indefinitely, and the token list cannot be
changed without restarting API server.
The token file format is implemented in `plugin/pkg/auth/authenticator/token/tokenfile/...`
and is a csv file with a minimum of 3 columns: token, user name, user uid, followed by
optional group names. Note, if you have more than one group the column must be double quoted e.g.
The token file is a csv file with a minimum of 3 columns: token, user name, user uid,
followed by optional group names. Note, if you have more than one group the column must be
double quoted e.g.
```conf
token,user,uid,"group1,group2,group3"
@@ -107,6 +107,41 @@ header as shown below.
Authorization: Bearer 31ada4fd-adec-460c-809a-9e56ceb75269
```
### Bootstrap Tokens
This feature is currently in **alpha**.
To allow for streamlined bootstrapping for new clusters, Kubernetes includes a
dynamically-managed Bearer token type called a *Bootstrap Token*. These tokens
are stored as Secrets in the `kube-system` namespace, where they can be
dynamically managed and created. Controller Manager contains a TokenCleaner
controller that deletes bootstrap tokens as they expire.
The tokens are of the form `[a-z0-9]{6}.[a-z0-9]{16}`. The first component is a
Token ID and the second component is the Token Secret. You specify the token
in an HTTP header as follows:
```http
Authorization: Bearer 781292.db7bc3a58fc5f07e
```
You must enable the Bootstrap Token Authenticator with the
`--experimental-bootstrap-token-auth` flag on the API Server. You must enable
the TokenCleaner controller via the `--controllers` flag on the Controller
Manager. This is done with something like `--controllers=*,tokencleaner`.
`kubeadm` will do this for you if you are using it to bootstrapping a cluster.
The authenticator authenticates as `system:bootstrap:<Token ID>`. It is
included in the `system:bootstrappers` group. The naming and groups are
intentionally limited to discourage users from using these tokens past
bootstrapping. The user names and group can be used (and are used by `kubeadm`)
to craft the appropriate authorization policies to support bootstrapping a
cluster.
Please see [Bootstrap Tokens](/docs/admin/bootstrap-tokens/) for in depth
documentation on the Bootstrap Token authenticator and controllers along with
how to manage these tokens with `kubeadm`.
### Static Password File
Basic authentication is enabled by passing the `--basic-auth-file=SOMEFILE`
@@ -115,9 +150,10 @@ and the password cannot be changed without restarting API server. Note that basi
authentication is currently supported for convenience while we finish making the
more secure modes described above easier to use.
The basic auth file format is implemented in `plugin/pkg/auth/authenticator/password/passwordfile/...`
and is a csv file with a minimum of 3 columns: password, user name, user id, followed by
optional group names. Note, if you have more than one group the column must be double quoted e.g.
The basic auth file is a csv file with a minimum of 3 columns: password, user name, user id.
In Kubernetes version 1.6 and later, you can specify an optional fourth column containing
comma-separated group names. If you have more than one group, you must enclose the fourth
column value in double quotes ("). See the following example:
```conf
password,user,uid,"group1,group2,group3"
@@ -145,7 +181,7 @@ talk to the API server. Accounts may be explicitly associated with pods using th
NOTE: `serviceAccountName` is usually omitted because this is done automatically.
```
apiVersion: extensions/v1beta1
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
@@ -250,11 +286,21 @@ To enable the plugin, configure the following flags on the API server:
| Parameter | Description | Example | Required |
| --------- | ----------- | ------- | ------- |
| --oidc-issuer-url | URL of the provider which allows the API server to discover public signing keys. Only URLs which use the `https://` scheme are accepted. This is typically the provider's discovery URL without a path, for example "https://accounts.google.com" or "https://login.salesforce.com". This URL should point to the level below .well-known/openid-configuration | If the discovery URL is https://accounts.google.com/.well-known/openid-configuration the value should be https://accounts.google.com | Yes |
| --oidc-client-id | A client id that all tokens must be issued for. | kubernetes | Yes |
| --oidc-username-claim | JWT claim to use as the user name. By default `sub`, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as `email`, depending on their provider. | sub | No |
| --oidc-groups-claim | JWT claim to use as the user's group. If the claim is present it must be an array of strings. | groups | No |
| --oidc-ca-file | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
| `--oidc-issuer-url` | URL of the provider which allows the API server to discover public signing keys. Only URLs which use the `https://` scheme are accepted. This is typically the provider's discovery URL without a path, for example "https://accounts.google.com" or "https://login.salesforce.com". This URL should point to the level below .well-known/openid-configuration | If the discovery URL is https://accounts.google.com/.well-known/openid-configuration the value should be https://accounts.google.com | Yes |
| `--oidc-client-id` | A client id that all tokens must be issued for. | kubernetes | Yes |
| `--oidc-username-claim` | JWT claim to use as the user name. By default `sub`, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as `email` or `name`, depending on their provider. However, claims other than `email` will be prefixed with the issuer URL to prevent naming clashes with other plugins. | sub | No |
| `--oidc-groups-claim` | JWT claim to use as the user's group. If the claim is present it must be an array of strings. | groups | No |
| `--oidc-ca-file` | The path to the certificate for the CA that signed your identity provider's web certificate. Defaults to the host's root CAs. | `/etc/kubernetes/ssl/kc-ca.pem` | No |
If a claim other than `email` is chosen for `--oidc-username-claim`, the value
will be prefixed with the `--oidc-issuer-url` to prevent clashes with existing
Kubernetes names (such as the `system:` users). For example, if the provider
URL is `https://accounts.google.com` and the username claim maps to `jane`, the
plugin will authenticate the user as:
```
https://accounts.google.com#jane
```
Importantly, the API server is not an OAuth2 client, rather it can only be
configured to trust a single issuer. This allows the use of public providers,
@@ -289,13 +335,14 @@ The first option is to use the `oidc` authenticator. This authenticator takes y
```bash
kubectl config set-credentials USER_NAME \
--auth-provider=oidc
--auth-provider=oidc \
--auth-provider-arg=idp-issuer-url=( issuer url ) \
--auth-provider-arg=client-id=( your client id ) \
--auth-provider-arg=client-secret=( your client secret ) \
--auth-provider-arg=refresh-token=( your refresh token ) \
--auth-provider-arg=idp-certificate-authority=( path to your ca certificate ) \
--auth-provider-arg=id-token=( your id_token )
--auth-provider-arg=id-token=( your id_token ) \
--auth-provider-arg=extra-scopes=( comma separated list of scopes to add to "openid email profile", optional )
```
As an example, running the below command after authenticating to your identity provider:
@@ -308,6 +355,7 @@ kubectl config set-credentials mmosley \
--auth-provider-arg=client-secret=1db158f6-177d-4d9c-8a8b-d36869918ec5 \
--auth-provider-arg=refresh-token=q1bKLFOyUiosTfawzA93TzZIDzH2TNa2SMm0zEiPKTUwME6BkEo6Sql5yUWVBSWpKUGphaWpxSVAfekBOZbBhaEW+VlFUeVRGcluyVF5JT4+haZmPsluFoFu5XkpXk5BXqHega4GAXlF+ma+vmYpFcHe5eZR+slBFpZKtQA= \
--auth-provider-arg=idp-certificate-authority=/root/ca.pem \
--auth-provider-arg=extra-scopes=groups \
--auth-provider-arg=id-token=eyJraWQiOiJDTj1vaWRjaWRwLnRyZW1vbG8ubGFuLCBPVT1EZW1vLCBPPVRybWVvbG8gU2VjdXJpdHksIEw9QXJsaW5ndG9uLCBTVD1WaXJnaW5pYSwgQz1VUy1DTj1rdWJlLWNhLTEyMDIxNDc5MjEwMzYwNzMyMTUyIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL29pZGNpZHAudHJlbW9sby5sYW46ODQ0My9hdXRoL2lkcC9PaWRjSWRQIiwiYXVkIjoia3ViZXJuZXRlcyIsImV4cCI6MTQ4MzU0OTUxMSwianRpIjoiMm96US15TXdFcHV4WDlHZUhQdy1hZyIsImlhdCI6MTQ4MzU0OTQ1MSwibmJmIjoxNDgzNTQ5MzMxLCJzdWIiOiI0YWViMzdiYS1iNjQ1LTQ4ZmQtYWIzMC0xYTAxZWU0MWUyMTgifQ.w6p4J_6qQ1HzTG9nrEOrubxIMb9K5hzcMPxc9IxPx2K4xO9l-oFiUw93daH3m5pluP6K7eOE6txBuRVfEcpJSwlelsOsW8gb8VJcnzMS9EnZpeA0tW_p-mnkFc3VcfyXuhe5R3G7aa5d8uHv70yJ9Y3-UhjiN9EhpMdfPAoEB9fYKKkJRzF7utTTIPGrSaSU6d2pcpfYKaxIwePzEkT4DfcQthoZdy9ucNvvLoi1DIC-UocFD8HLs8LYKEqSxQvOcvnThbObJ9af71EwmuE21fO5KzMW20KtAeget1gnldOosPtz1G5EwvaQ401-RPQzPGMVBld0_zMCAwZttJ4knw
```
@@ -321,6 +369,7 @@ users:
config:
client-id: kubernetes
client-secret: 1db158f6-177d-4d9c-8a8b-d36869918ec5
extra-scopes: groups
id-token: eyJraWQiOiJDTj1vaWRjaWRwLnRyZW1vbG8ubGFuLCBPVT1EZW1vLCBPPVRybWVvbG8gU2VjdXJpdHksIEw9QXJsaW5ndG9uLCBTVD1WaXJnaW5pYSwgQz1VUy1DTj1rdWJlLWNhLTEyMDIxNDc5MjEwMzYwNzMyMTUyIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL29pZGNpZHAudHJlbW9sby5sYW46ODQ0My9hdXRoL2lkcC9PaWRjSWRQIiwiYXVkIjoia3ViZXJuZXRlcyIsImV4cCI6MTQ4MzU0OTUxMSwianRpIjoiMm96US15TXdFcHV4WDlHZUhQdy1hZyIsImlhdCI6MTQ4MzU0OTQ1MSwibmJmIjoxNDgzNTQ5MzMxLCJzdWIiOiI0YWViMzdiYS1iNjQ1LTQ4ZmQtYWIzMC0xYTAxZWU0MWUyMTgifQ.w6p4J_6qQ1HzTG9nrEOrubxIMb9K5hzcMPxc9IxPx2K4xO9l-oFiUw93daH3m5pluP6K7eOE6txBuRVfEcpJSwlelsOsW8gb8VJcnzMS9EnZpeA0tW_p-mnkFc3VcfyXuhe5R3G7aa5d8uHv70yJ9Y3-UhjiN9EhpMdfPAoEB9fYKKkJRzF7utTTIPGrSaSU6d2pcpfYKaxIwePzEkT4DfcQthoZdy9ucNvvLoi1DIC-UocFD8HLs8LYKEqSxQvOcvnThbObJ9af71EwmuE21fO5KzMW20KtAeget1gnldOosPtz1G5EwvaQ401-RPQzPGMVBld0_zMCAwZttJ4knw
idp-certificate-authority: /root/ca.pem
idp-issuer-url: https://oidcidp.tremolo.lan:8443/auth/idp/OidcIdP
@@ -346,7 +395,7 @@ Webhook authentication is a hook for verifying bearer tokens.
* `--authentication-token-webhook-config-file` a kubeconfig file describing how to access the remote webhook service.
* `--authentication-token-webhook-cache-ttl` how long to cache authentication decisions. Defaults to two minutes.
The configuration file uses the [kubeconfig](/docs/user-guide/kubeconfig-file/)
The configuration file uses the [kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/)
file format. Within the file "users" refers to the API server webhook and
"clusters" refers to the remote service. An example would be:
@@ -446,11 +495,45 @@ HTTP status codes can be used to supply additional error context.
The API server can be configured to identify users from request header values, such as `X-Remote-User`.
It is designed for use in combination with an authenticating proxy, which sets the request header value.
* `--requestheader-username-headers` Required, case-insensitive. Header names to check, in order, for the user identity. The first header containing a value is used as the username.
* `--requestheader-group-headers` 1.6+. Optional, case-insensitive. "X-Remote-Group" is suggested. Header names to check, in order, for the user's groups. All values in all specified headers are used as group names.
* `--requestheader-extra-headers-prefix` 1.6+. Optional, case-insensitive. "X-Remote-Extra-" is suggested. Header prefixes to look for to determine extra information about the user (typically used by the configured authorization plugin). Any headers beginning with any of the specified prefixes have the prefix removed, the remainder of the header name becomes the extra key, and the header value is the extra value.
For example, with this configuration:
```
--requestheader-username-headers=X-Remote-User
--requestheader-group-headers=X-Remote-Group
--requestheader-extra-headers-prefix=X-Remote-Extra-
```
this request:
```
GET / HTTP/1.1
X-Remote-User: fido
X-Remote-Group: dogs
X-Remote-Group: dachshunds
X-Remote-Extra-Scopes: openid
X-Remote-Extra-Scopes: profile
```
would result in this user info:
```yaml
name: fido
groups:
- dogs
- dachshunds
extra:
scopes:
- openid
- profile
```
In order to prevent header spoofing, the authenticating proxy is required to present a valid client
certificate to the API server for validation against the specified CA before the request headers are
checked.
* `--requestheader-username-headers` Required, case-insensitive. Header names to check, in order, for the user identity. The first header containing a value is used as the identity.
* `--requestheader-client-ca-file` Required. PEM-encoded certificate bundle. A valid client certificate must be presented and validated against the certificate authorities in the specified file before the request headers are checked for user names.
* `--requestheader-allowed-names` Optional. List of common names (cn). If set, a valid client certificate with a Common Name (cn) in the specified list must be presented before the request headers are checked for user names. If empty, any Common Name is allowed.
@@ -480,9 +563,6 @@ changes](https://github.com/kubernetes/kubernetes/pull/25536) for more details.
## Anonymous requests
Anonymous access is enabled by default, and can be disabled by passing `--anonymous-auth=false`
option to the API server during startup.
When enabled, requests that are not rejected by other configured authentication methods are
treated as anonymous requests, and given a username of `system:anonymous` and a group of
`system:unauthenticated`.
@@ -491,8 +571,119 @@ For example, on a server with token authentication configured, and anonymous acc
a request providing an invalid bearer token would receive a `401 Unauthorized` error.
A request providing no bearer token would be treated as an anonymous request.
If you rely on authentication alone to authorize access, either change to use an
authorization mode other than `AlwaysAllow`, or set `--anonymous-auth=false`.
In 1.5.1-1.5.x, anonymous access is disabled by default, and can be enabled by
passing the `--anonymous-auth=false` option to the API server.
In 1.6+, anonymous access is enabled by default if an authorization mode other than `AlwaysAllow`
is used, and can be disabled by passing the `--anonymous-auth=false` option to the API server.
Starting in 1.6, the ABAC and RBAC authorizers require explicit authorization of the
`system:anonymous` user or the `system:unauthenticated` group, so legacy policy rules
that grant access to the `*` user or `*` group do not include anonymous users.
## User impersonation
A user can act as another user through impersonation headers. These let requests
manually override the user info a request authenticates as. For example, an admin
could use this feature to debug an authorization policy by temporarily
impersonating another user and seeing if a request was denied.
Impersonation requests first authenticate as the requesting user, then switch
to the impersonated user info.
* A user makes an API call with their credentials _and_ impersonation headers.
* API server authenticates the user.
* API server ensures the authenticated users has impersonation privileges.
* Request user info is replaced with impersonation values.
* Request is evaluated, authorization acts on impersonated user info.
The following HTTP headers can be used to performing an impersonation request:
* `Impersonate-User`: The username to act as.
* `Impersonate-Group`: A group name to act as. Can be provided multiple times to set multiple groups. Optional. Requires "Impersonate-User"
* `Impersonate-Extra-( extra name )`: A dynamic header used to associate extra fields with the user. Optional. Requires "Impersonate-User"
An example set of headers:
```http
Impersonate-User: jane.doe@example.com
Impersonate-Group: developers
Impersonate-Group: admins
Impersonate-Extra-dn: cn=jane,ou=engineers,dc=example,dc=com
Impersonate-Extra-scopes: view
Impersonate-Extra-scopes: development
```
When using `kubectl` set the `--as` flag to configure the `Impersonate-User`
header, set the `--as-group` flag to configure the `Impersonate-Group` header.
```shell
$ kubectl drain mynode
Error from server (Forbidden): User "clark" cannot get nodes at the cluster scope. (get nodes mynode)
$ kubectl drain mynode --as=superman --as-group=system:masters
node "mynode" cordoned
node "mynode" drained
```
To impersonate a user, group, or set extra fields, the impersonating user must
have the ability to perform the "impersonate" verb on the kind of attribute
being impersonated ("user", "group", etc.). For clusters that enable the RBAC
authorization plugin, the following ClusterRole encompasses the rules needed to
set user and group impersonation headers:
```yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: impersonator
rules:
- apiGroups: [""]
resources: ["users", "groups", "serviceaccounts"]
verbs: ["impersonate"]
```
Extra fields are evaluated as sub-resources of the resource "userextras". To
allow a user to use impersonation headers for the extra field "scopes," a user
should be granted the following role:
```yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: scopes-impersonator
# Can set "Impersonate-Extra-scopes" header.
- apiGroups: ["authentication.k8s.io"]
resources: ["userextras/scopes"]
verbs: ["impersonate"]
```
The values of impersonation headers can also be restricted by limiting the set
of `resourceNames` a resource can take.
```yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: limited-impersonator
rules:
# Can impersonate the user "jane.doe@example.com"
- apiGroups: [""]
resources: ["users"]
verbs: ["impersonate"]
resourceNames: ["jane.doe@example.com"]
# Can impersonate the groups "developers" and "admins"
- apiGroups: [""]
resources: ["groups"]
- verbs: ["impersonate"]
resourceNames: ["developers","admins"]
# Can impersonate the extras field "scopes" with the values "view" and "development"
- apiGroups: ["authentication.k8s.io"]
resources: ["userextras/scopes"]
verbs: ["impersonate"]
resourceNames: ["view", "development"]
```
## Plugin Development
@@ -512,7 +703,7 @@ using an existing deployment script or manually through `easyrsa` or `openssl.`
#### Using an Existing Deployment Script
**Using an existing deployment script** is implemented at
`cluster/saltbase/salt/generate-cert/make-ca-cert.sh`.
`cluster/saltbase/salt/generate-cert/make-ca-cert.sh`.
Execute this script with two parameters. The first is the IP address
of API server. The second is a list of subject alternate names in the form `IP:<ip-address> or DNS:<dns-name>`.
@@ -541,8 +732,8 @@ Finally, add the following parameters into API server start parameters:
1. Generate server certificate and key.
(build-server-full [filename]: Generate a keypair and sign locally for a client or server)
./easyrsa --subject-alt-name="IP:${MASTER_IP}" build-server-full kubernetes-master nopass
1. Copy `pki/ca.crt`, `pki/issued/kubernetes-master.crt`, and `pki/private/kubernetes-master.key` to your directory.
./easyrsa --subject-alt-name="IP:${MASTER_IP}" build-server-full server nopass
1. Copy `pki/ca.crt`, `pki/issued/server.crt`, and `pki/private/server.key` to your directory.
1. Fill in and add the following parameters into the API server start parameters:
--client-ca-file=/yourdirectory/ca.crt
@@ -573,3 +764,9 @@ Finally, add the following parameters into API server start parameters:
openssl x509 -noout -text -in ./server.crt
Finally, do not forget to fill out and add the same parameters into the API server start parameters.
#### Certificates API
You can use the `certificates.k8s.io` API to provision
x509 certificates to use for authentication as documented
[here](/docs/tasks/tls/managing-tls-in-a-cluster).
-662
View File
@@ -1,662 +0,0 @@
---
assignees:
- erictune
- lavalamp
- deads2k
- liggitt
title: Using Authorization Plugins
---
In Kubernetes, authorization happens as a separate step from authentication.
See the [Accessing Control Overview](/docs/admin/accessing-the-api/) for an
overview of how authentication and authorization are applied to requests.
Authorization applies to all HTTP accesses on the main (secure) apiserver port.
The authorization check for any request compares attributes of the context of
the request, (such as user, resource, and namespace) with access
policies. An API call must be allowed by some policy in order to proceed.
The following implementations are available, and are selected by flag:
- `--authorization-mode=AlwaysDeny` blocks all requests (used in tests).
- `--authorization-mode=AlwaysAllow` allows all requests; use if you don't
need authorization.
- `--authorization-mode=ABAC` allows for a simple local-file-based user-configured
authorization policy. ABAC stands for Attribute-Based Access Control.
authorization policy.
- `--authorization-mode=RBAC` is an experimental implementation which allows
for authorization to be driven by the Kubernetes API.
RBAC stands for Roles-Based Access Control.
- `--authorization-mode=Webhook` allows for authorization to be driven by a
remote service using REST.
If multiple modes are provided the set is unioned, and only a single authorizer is required to admit the action. This means the flag:
```
--authorization-mode=AlwaysDeny,AlwaysAllow
```
will always allow.
## Request Attributes
A request has the following attributes that can be considered for authorization:
- user (the user-string which a user was authenticated as).
- group (the list of group names the authenticated user is a member of).
- "extra" (a map of arbitrary string keys to string values, provided by the authentication layer)
- whether the request is for an API resource.
- the request path.
- allows authorizing access to miscellaneous non-resource endpoints like `/api` or `/healthz` (see [kubectl](#kubectl)).
- the request verb.
- API verbs `get`, `list`, `create`, `update`, `patch`, `watch`, `proxy`, `redirect`, `delete`, and `deletecollection` are used for resource requests
- HTTP verbs `get`, `post`, `put`, and `delete` are used for non-resource requests
- what resource is being accessed (for resource requests only)
- what subresource is being accessed (for resource requests only)
- the namespace of the object being accessed (for namespaced resource requests only)
- the API group being accessed (for resource requests only); an empty string designates the [core API group](/docs/api/)
The request verb for a resource API endpoint can be determined by the HTTP verb used and whether or not the request acts on an individual resource or a collection of resources:
HTTP verb | request verb
----------|---------------
POST | create
GET, HEAD | get (for individual resources), list (for collections)
PUT | update
PATCH | patch
DELETE | delete (for individual resources), deletecollection (for collections)
## ABAC Mode
### Policy File Format
For mode `ABAC`, also specify `--authorization-policy-file=SOME_FILENAME`.
The file format is [one JSON object per line](http://jsonlines.org/). There
should be no enclosing list or map, just one map per line.
Each line is a "policy object". A policy object is a map with the following
properties:
- Versioning properties:
- `apiVersion`, type string; valid values are "abac.authorization.kubernetes.io/v1beta1". Allows versioning and conversion of the policy format.
- `kind`, type string: valid values are "Policy". Allows versioning and conversion of the policy format.
- `spec` property set to a map with the following properties:
- Subject-matching properties:
- `user`, type string; the user-string from `--token-auth-file`. If you specify `user`, it must match the username of the authenticated user.
- `group`, type string; if you specify `group`, it must match one of the groups of the authenticated user. `system:authenticated` matches all authenticated requests. `system:unauthenticated` matches all unauthenticated requests.
- `readonly`, type boolean, when true, means that the policy only applies to get, list, and watch operations.
- Resource-matching properties:
- `apiGroup`, type string; an API group, such as `extensions`. `*` matches all API groups.
- `namespace`, type string; a namespace string. `*` matches all resource requests.
- `resource`, type string; a resource, such as `pods`. `*` matches all resource requests.
- Non-resource-matching properties:
- `nonResourcePath`, type string; matches the non-resource request paths (like `/version` and `/apis`). `*` matches all non-resource requests. `/foo/*` matches `/foo/` and all of its subpaths.
An unset property is the same as a property set to the zero value for its type
(e.g. empty string, 0, false). However, unset should be preferred for
readability.
In the future, policies may be expressed in a JSON format, and managed via a
REST interface.
### Authorization Algorithm
A request has attributes which correspond to the properties of a policy object.
When a request is received, the attributes are determined. Unknown attributes
are set to the zero value of its type (e.g. empty string, 0, false).
A property set to `"*"` will match any value of the corresponding attribute.
The tuple of attributes is checked for a match against every policy in the
policy file. If at least one line matches the request attributes, then the
request is authorized (but may fail later validation).
To permit any authenticated user to do something, write a policy with the
group property set to `"system:authenticated"`.
To permit any unauthenticated user to do something, write a policy with the
group property set to `"system:unauthenticated"`.
To permit a user to do anything, write a policy with the apiGroup, namespace,
resource, and nonResourcePath properties set to `"*"`.
### Kubectl
Kubectl uses the `/api` and `/apis` endpoints of api-server to negotiate
client/server versions. To validate objects sent to the API by create/update
operations, kubectl queries certain swagger resources. For API version `v1`
those would be `/swaggerapi/api/v1` & `/swaggerapi/experimental/v1`.
When using ABAC authorization, those special resources have to be explicitly
exposed via the `nonResourcePath` property in a policy (see [examples](#examples) below):
* `/api`, `/api/*`, `/apis`, and `/apis/*` for API version negotiation.
* `/version` for retrieving the server version via `kubectl version`.
* `/swaggerapi/*` for create/update operations.
To inspect the HTTP calls involved in a specific kubectl operation you can turn
up the verbosity:
kubectl --v=8 version
### Examples
1. Alice can do anything to all resources:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "*", "resource": "*", "apiGroup": "*"}}
```
2. Kubelet can read any pods:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "pods", "readonly": true}}
```
3. Kubelet can read and write events:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "events"}}
```
4. Bob can just read pods in namespace "projectCaribou":
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "bob", "namespace": "projectCaribou", "resource": "pods", "readonly": true}}
```
5. Anyone can make read-only requests to all non-resource paths:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:authenticated", "readonly": true, "nonResourcePath": "*"}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:unauthenticated", "readonly": true, "nonResourcePath": "*"}}
```
[Complete file example](http://releases.k8s.io/{{page.githubbranch}}/pkg/auth/authorizer/abac/example_policy_file.jsonl)
### A quick note on service accounts
A service account automatically generates a user. The user's name is generated
according to the naming convention:
```shell
system:serviceaccount:<namespace>:<serviceaccountname>
```
Creating a new namespace also causes a new service account to be created, of
this form:
```shell
system:serviceaccount:<namespace>:default
```
For example, if you wanted to grant the default service account in the
kube-system full privilege to the API, you would add this line to your policy
file:
```json
{"apiVersion":"abac.authorization.kubernetes.io/v1beta1","kind":"Policy","spec":{"user":"system:serviceaccount:kube-system:default","namespace":"*","resource":"*","apiGroup":"*"}}
```
The apiserver will need to be restarted to pickup the new policy lines.
## RBAC Mode
When specified "RBAC" (Role-Based Access Control) uses the
"rbac.authorization.k8s.io" API group to drive authorization decisions,
allowing admins to dynamically configure permission policies through the
Kubernetes API.
As of 1.3 RBAC mode is in alpha and considered experimental.
To use RBAC, you must both enable the authorization module with `--authorization-mode=RBAC`,
and [enable the API version](
/docs/admin/cluster-management/#turn-on-or-off-an-api-version-for-your-cluster),
with a `--runtime-config=` that includes `rbac.authorization.k8s.io/v1alpha1`.
### Privilege Escalation Prevention and Bootstrapping
The `rbac.authorization.k8s.io` API group inherently attempts to prevent users
from escalating privileges. Simply put, __a user can't grant permissions they
don't already have even when the RBAC authorizer it disabled__. If "user-1"
does not have the ability to read secrets in "namespace-a", they cannot create
a binding that would grant that permission to themselves or any other user.
For bootstrapping the first roles, it becomes necessary for someone to get
around these limitations. For the alpha release of RBAC, an API Server flag was
added to allow one user to step around all RBAC authorization and privilege
escalation checks. NOTE: _This is subject to change with future releases._
```
--authorization-rbac-super-user=admin
```
Once set the specified super user, in this case "admin", can be used to create
the roles and role bindings to initialize the system.
This flag is optional and once the initial bootstrapping is performed can be
unset.
### Roles, RolesBindings, ClusterRoles, and ClusterRoleBindings
The RBAC API Group declares four top level types which will be covered in this
section. Users can interact with these resources as they would with any other
API resource. Through `kubectl`, direct calls to the API, etc. For instance,
`kubectl create -f (resource).yml` can be used with any of these examples,
though readers who wish to follow along should review the following section on
bootstrapping first.
In the RBAC API Group, roles hold a logical grouping of permissions. These
permissions map very closely to ABAC policies, but only contain information
about requests being made. Permission are purely additive, rules may only omit
permissions they do not wish to grant.
Here's an example of a role which grants read access to pods within the
"default" namespace.
```yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # The API group "" indicates the core API Group.
resources: ["pods"]
verbs: ["get", "watch", "list"]
```
`ClusterRoles` hold the same information as a `Role` but can apply to any
namespace as well as non-namespaced resources (such as `Nodes`,
`PersistentVolume`, etc.). The following `ClusterRole` can grant permissions to
read secrets in any namespace.
```yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
# "namespace" omitted since ClusterRoles are not namespaced.
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
nonResourceURLs: []
```
`RoleBindings` perform the task of granting the permission to a user or set of
users. They hold a list of subjects which they apply to, and a reference to the
`Role` being assigned.
The following `RoleBinding` assigns the "pod-reader" role to the user "jane"
within the "default" namespace, and allows jane to read pods.
```yaml
# This role binding allows "jane" to read pods in the namespace "default"
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User # May be "User", "Group" or "ServiceAccount"
name: jane
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
```
`RoleBindings` may also refer to a `ClusterRole`. However, a `RoleBinding` that
refers to a `ClusterRole` only applies in the `RoleBinding`'s namespace, not at
the cluster level. This allows admins to define a set of common roles for the
entire cluster, then reuse them in multiple namespaces.
For instance, even though the following `RoleBinding` refers to a `ClusterRole`,
"dave" (the subject) will only be able read secrets in the "development"
namespace, the namespace of the `RoleBinding`.
```yaml
# This role binding allows "dave" to read secrets in the namespace "development"
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: read-secrets
namespace: development # This binding only applies in the "development" namespace
subjects:
- kind: User # May be "User", "Group" or "ServiceAccount"
name: dave
roleRef:
kind: ClusterRole
name: secret-reader
apiGroup: rbac.authorization.k8s.io
```
Finally a `ClusterRoleBinding` may be used to grant permissions in all
namespaces. The following `ClusterRoleBinding` allows any user in the group
"manager" to read secrets in any namespace.
```yaml
# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace.
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
name: read-secrets-global
subjects:
- kind: Group # May be "User", "Group" or "ServiceAccount"
name: manager
roleRef:
kind: ClusterRole
 name: secret-reader
apiGroup: rbac.authorization.k8s.io
```
### Referring to Resources
Most resources are represented by a string representation of their name, such as "pods", just as it
appears in the URL for the relevant API endpoint. However, some Kubernetes APIs involve a
"subresource" such as the logs for a pod. The URL for the pods logs endpoint is:
```
GET /api/v1/namespaces/{namespace}/pods/{name}/log
```
In this case, "pods" is the namespaced resource, and "log" is a subresource of pods. To represent
this in an RBAC role, use a slash to delimit the resource and subresource names. To allow a subject
to read both pods and pod logs, you would write:
```yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
namespace: default
name: pod-and-pod-logs-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list"]
```
### Referring to Subjects
RoleBindings and ClusterRoleBindings bind "subjects" to "roles".
Subjects can be groups, users or service accounts.
Users are represented by strings. These can be plain usernames, like
"alice", or email style names, like "bob@example.com", or numeric ids
as string. It is up to the Kubernetes admin to configure
the [authentication modules](/docs/admin/authentication/) to produce
usernames in the desired format. The RBAC authorization system does
not require any particular format. However, the prefix `system:` is
reserved for Kubernetes system use, and so the admin should ensure
usernames should not contain this prefix by accident.
Groups information in Kubernetes is currently provided by the Authenticator
modules. (In the future we may add a separate way for the RBAC Authorizer
to query groups information for users.) Groups, like users, are represented
by a string, and that string has no format requirements, other than that the
prefix `system:` is reserved.
Service Accounts have usernames with the `system:` prefix and belong
to groups with the `system:` prefix.
#### Role Binding Examples
Only the `subjects` section of a RoleBinding object shown in the following examples.
For a user called `alice@example.com`, specify
```yaml
subjects:
- kind: User
name: "alice@example.com"
```
For a group called `frontend-admins`, specify:
```yaml
subjects:
- kind: Group
name: "frontend-admins"
```
For the default service account in the kube-system namespace:
```yaml
subjects:
- kind: ServiceAccount
name: default
namespace: kube-system
```
For all service accounts in the `qa` namespace:
```yaml
subjects:
- kind: Group
name: system:serviceaccounts:qa
```
For all service accounts everywhere:
```yaml
subjects:
- kind: Group
name: system:serviceaccounts
```
For all authenticated users:
```yaml
subjects:
- kind: Group
name: system:authenticated
```
For all unauthenticated users:
```yaml
subjects:
- kind: Group
name: system:unauthenticated
```
For all users:
```yaml
subjects:
- kind: Group
name: system:authenticated
- kind: Group
name: system:unauthenticated
```
## Webhook Mode
When specified, mode `Webhook` causes Kubernetes to query an outside REST
service when determining user privileges.
### Configuration File Format
Mode `Webhook` requires a file for HTTP configuration, specify by the
`--authorization-webhook-config-file=SOME_FILENAME` flag.
The configuration file uses the [kubeconfig](/docs/user-guide/kubeconfig-file/)
file format. Within the file "users" refers to the API Server webhook and
"clusters" refers to the remote service.
A configuration example which uses HTTPS client auth:
```yaml
# clusters refers to the remote service.
clusters:
- name: name-of-remote-authz-service
cluster:
certificate-authority: /path/to/ca.pem # CA for verifying the remote service.
server: https://authz.example.com/authorize # URL of remote service to query. Must use 'https'.
# users refers to the API Server's webhook configuration.
users:
- name: name-of-api-server
user:
client-certificate: /path/to/cert.pem # cert for the webhook plugin to use
client-key: /path/to/key.pem # key matching the cert
# kubeconfig files require a context. Provide one for the API Server.
current-context: webhook
contexts:
- context:
cluster: name-of-remote-authz-service
user: name-of-api-sever
name: webhook
```
### Request Payloads
When faced with an authorization decision, the API Server POSTs a JSON
serialized api.authorization.v1beta1.SubjectAccessReview object describing the
action. This object contains fields describing the user attempting to make the
request, and either details about the resource being accessed or requests
attributes.
Note that webhook API objects are subject to the same [versioning compatibility rules](/docs/api/)
as other Kubernetes API objects. Implementers should be aware of looser
compatibility promises for beta objects and check the "apiVersion" field of the
request to ensure correct deserialization. Additionally, the API Server must
enable the `authorization.k8s.io/v1beta1` API extensions group (`--runtime-config=authorization.k8s.io/v1beta1=true`).
An example request body:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"spec": {
"resourceAttributes": {
"namespace": "kittensandponies",
"verb": "GET",
"group": "unicorn.example.org",
"resource": "pods"
},
"user": "jane",
"group": [
"group1",
"group2"
]
}
}
```
The remote service is expected to fill the SubjectAccessReviewStatus 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:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"status": {
"allowed": true
}
}
```
To disallow access, the remote service would return:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"status": {
"allowed": false,
"reason": "user does not have read access to the namespace"
}
}
```
Access to non-resource paths are sent as:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"spec": {
"nonResourceAttributes": {
"path": "/debug",
"verb": "GET"
},
"user": "jane",
"group": [
"group1",
"group2"
]
}
}
```
Non-resource paths include: `/api`, `/apis`, `/metrics`, `/resetMetrics`,
`/logs`, `/debug`, `/healthz`, `/swagger-ui/`, `/swaggerapi/`, `/ui`, and
`/version.` Clients require access to `/api`, `/api/*`, `/apis`, `/apis/*`,
and `/version` to discover what resources and versions are present on the server.
Access to other non-resource paths can be disallowed without restricting access
to the REST api.
For further documentation refer to the authorization.v1beta1 API objects and
plugin/pkg/auth/authorizer/webhook/webhook.go.
## Module Development
Other implementations can be developed fairly easily.
The APIserver calls the Authorizer interface:
```go
type Authorizer interface {
Authorize(a Attributes) error
}
```
to determine whether or not to allow each API action.
An authorization plugin is a module that implements this interface.
Authorization plugin code goes in `pkg/auth/authorizer/$MODULENAME`.
An authorization module can be completely implemented in go, or can call out
to a remote authorization service. Authorization modules can implement
their own caching to reduce the cost of repeated authorization calls with the
same or similar arguments. Developers should then consider the interaction
between caching and revocation of permissions.
### Checking API Access
Kubernetes exposes the `subjectaccessreviews.v1beta1.authorization.k8s.io` resource as a
normal resource that allows external access to API authorizer decisions. No matter which authorizer
you choose to use, you can issue a `POST` with a `SubjectAccessReview` just like the webhook
authorizer to the `apis/authorization.k8s.io/v1beta1/subjectaccessreviews` endpoint and
get back a response. For instance:
```bash
kubectl create --v=8 -f - << __EOF__
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"spec": {
"resourceAttributes": {
"namespace": "kittensandponies",
"verb": "GET",
"group": "unicorn.example.org",
"resource": "pods"
},
"user": "jane",
"group": [
"group1",
"group2"
]
}
}
__EOF__
--- snip lots of output ---
I0913 08:12:31.362873 27425 request.go:908] Response Body: {"kind":"SubjectAccessReview","apiVersion":"authorization.k8s.io/v1beta1","metadata":{"creationTimestamp":null},"spec":{"resourceAttributes":{"namespace":"kittensandponies","verb":"GET","group":"unicorn.example.org","resource":"pods"},"user":"jane","group":["group1","group2"]},"status":{"allowed":true}}
subjectaccessreview "" created
```
This is useful for debugging access problems, in that you can use this resource
to determine what access an authorizer is granting.
+155
View File
@@ -0,0 +1,155 @@
---
assignees:
- erictune
- lavalamp
- deads2k
- liggitt
title: ABAC Mode
---
{% capture overview %}
Attribute-based access control (ABAC) defines an access control paradigm whereby access rights are granted to users through the use of policies which combine attributes together.
{% endcapture %}
{% capture body %}
## Policy File Format
For mode `ABAC`, also specify `--authorization-policy-file=SOME_FILENAME`.
The file format is [one JSON object per line](http://jsonlines.org/). There
should be no enclosing list or map, just one map per line.
Each line is a "policy object". A policy object is a map with the following
properties:
- Versioning properties:
- `apiVersion`, type string; valid values are "abac.authorization.kubernetes.io/v1beta1". Allows versioning and conversion of the policy format.
- `kind`, type string: valid values are "Policy". Allows versioning and conversion of the policy format.
- `spec` property set to a map with the following properties:
- Subject-matching properties:
- `user`, type string; the user-string from `--token-auth-file`. If you specify `user`, it must match the username of the authenticated user.
- `group`, type string; if you specify `group`, it must match one of the groups of the authenticated user. `system:authenticated` matches all authenticated requests. `system:unauthenticated` matches all unauthenticated requests.
- Resource-matching properties:
- `apiGroup`, type string; an API group.
- Ex: `extensions`
- Wildcard: `*` matches all API groups.
- `namespace`, type string; a namespace.
- Ex: `kube-system`
- Wildcard: `*` matches all resource requests.
- `resource`, type string; a resource type
- Ex: `pods`
- Wildcard: `*` matches all resource requests.
- Non-resource-matching properties:
- `nonResourcePath`, type string; non-resource request paths.
- Ex: `/version` or `/apis`
- Wildcard:
- `*` matches all non-resource requests.
- `/foo/*` matches all subpaths of `/foo/`.
- `readonly`, type boolean, when true, means that the policy only applies to get, list, and watch operations.
**NOTES:** An unset property is the same as a property set to the zero value for its type
(e.g. empty string, 0, false). However, unset should be preferred for
readability.
In the future, policies may be expressed in a JSON format, and managed via a
REST interface.
## Authorization Algorithm
A request has attributes which correspond to the properties of a policy object.
When a request is received, the attributes are determined. Unknown attributes
are set to the zero value of its type (e.g. empty string, 0, false).
A property set to `"*"` will match any value of the corresponding attribute.
The tuple of attributes is checked for a match against every policy in the
policy file. If at least one line matches the request attributes, then the
request is authorized (but may fail later validation).
To permit any authenticated user to do something, write a policy with the
group property set to `"system:authenticated"`.
To permit any unauthenticated user to do something, write a policy with the
group property set to `"system:unauthenticated"`.
To permit a user to do anything, write a policy with the apiGroup, namespace,
resource, and nonResourcePath properties set to `"*"`.
## Kubectl
Kubectl uses the `/api` and `/apis` endpoints of api-server to negotiate
client/server versions. To validate objects sent to the API by create/update
operations, kubectl queries certain swagger resources. For API version `v1`
those would be `/swaggerapi/api/v1` & `/swaggerapi/experimental/v1`.
When using ABAC authorization, those special resources have to be explicitly
exposed via the `nonResourcePath` property in a policy (see [examples](#examples) below):
* `/api`, `/api/*`, `/apis`, and `/apis/*` for API version negotiation.
* `/version` for retrieving the server version via `kubectl version`.
* `/swaggerapi/*` for create/update operations.
To inspect the HTTP calls involved in a specific kubectl operation you can turn
up the verbosity:
kubectl --v=8 version
## Examples
1. Alice can do anything to all resources:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "alice", "namespace": "*", "resource": "*", "apiGroup": "*"}}
```
2. Kubelet can read any pods:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "pods", "readonly": true}}
```
3. Kubelet can read and write events:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "kubelet", "namespace": "*", "resource": "events"}}
```
4. Bob can just read pods in namespace "projectCaribou":
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "bob", "namespace": "projectCaribou", "resource": "pods", "readonly": true}}
```
5. Anyone can make read-only requests to all non-resource paths:
```json
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:authenticated", "readonly": true, "nonResourcePath": "*"}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:unauthenticated", "readonly": true, "nonResourcePath": "*"}}
```
[Complete file example](http://releases.k8s.io/{{page.githubbranch}}/pkg/auth/authorizer/abac/example_policy_file.jsonl)
## A quick note on service accounts
A service account automatically generates a user. The user's name is generated
according to the naming convention:
```shell
system:serviceaccount:<namespace>:<serviceaccountname>
```
Creating a new namespace also causes a new service account to be created, of
this form:
```shell
system:serviceaccount:<namespace>:default
```
For example, if you wanted to grant the default service account in the
kube-system full privilege to the API, you would add this line to your policy
file:
```json
{"apiVersion":"abac.authorization.kubernetes.io/v1beta1","kind":"Policy","spec":{"user":"system:serviceaccount:kube-system:default","namespace":"*","resource":"*","apiGroup":"*"}}
```
The apiserver will need to be restarted to pickup the new policy lines.
{% endcapture %}
{% include templates/concept.md %}
+158
View File
@@ -0,0 +1,158 @@
---
assignees:
- erictune
- lavalamp
- deads2k
- liggitt
title: Overview
---
{% capture overview %}
Learn more about Kubernetes authorization, including details about creating policies using the supported authorization modules.
{% endcapture %}
{% capture body %}
In Kubernetes, you must be authenticated (logged in) before your request can be authorized (granted permission to access). For information about authentication, see [Accessing Control Overview](/docs/admin/accessing-the-api/).
Kubernetes expects attributes that are common to REST API requests. This means that Kubernetes authorization works with existing organization-wide or cloud-provider-wide access control systems which may handle other APIs besides the Kubernetes API.
## Determine Whether a Request is Allowed or Denied
Kubernetes authorizes API requests using the API server. It evaluates all of the request attributes against all policies and allows or denies the request. All parts of an API request must be allowed by some policy in order to proceed. This means that permissions are denied by default.
(Although Kubernetes uses the API server, access controls and policies that depend on specific fields of specific kinds of objects are handled by Admission Controllers.)
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 modules deny the request, then the request is denied (HTTP status code 403).
## Review Your Request Attributes
Kubernetes reviews only the following API request attributes:
* **user** - The `user` string provided during authentication
* **group** - The list of group names to which the authenticated user belongs
* **"extra"** - A map of arbitrary string keys to string values, provided by the authentication layer
* **API** - Indicates whether the request is for an API resource
* **Request path** - Path to miscellaneous non-resource endpoints like `/api` or `/healthz` (see [kubectl](#kubectl)).
* **API request verb** - API verbs `get`, `list`, `create`, `update`, `patch`, `watch`, `proxy`, `redirect`, `delete`, and `deletecollection` are used for resource requests. To determine the request verb for a resource API endpoint, see **Determine the request verb** below.
* **HTTP request verb** - HTTP verbs `get`, `post`, `put`, and `delete` are used for non-resource requests
* **Resource** - The ID or name of the resource that is being accessed (for resource requests only)
--* For resource requests using `get`, `update`, `patch`, and `delete` verbs, you must provide the resource name.
* **Subresource** - The subresource that is being accessed (for resource requests only)
* **Namespace** - The namespace of the object that is being accessed (for namespaced resource requests only)
* **API group** - The API group being accessed (for resource requests only). An empty string designates the [core API group](/docs/api/).
## Determine the Request Verb
To determine the request verb for a resource API endpoint, review the HTTP verb used and whether or not the request acts on an individual resource or a collection of resources:
HTTP verb | request verb
----------|---------------
POST | create
GET, HEAD | get (for individual resources), list (for collections)
PUT | update
PATCH | patch
DELETE | delete (for individual resources), deletecollection (for collections)
Kubernetes sometimes checks authorization for additional permissions using specialized verbs. For example:
* [PodSecurityPolicy](/docs/concepts/policy/pod-security-policy/) checks for authorization of the `use` verb on `podsecuritypolicies` resources in the `extensions` API group.
* [RBAC](/docs/admin/authorization/rbac/#privilege-escalation-prevention-and-bootstrapping) checks for authorization
of the `bind` verb on `roles` and `clusterroles` resources in the `rbac.authorization.k8s.io` API group.
* [Authentication](/docs/admin/authentication/) layer checks for authorization of the `impersonate` verb on `users`, `groups`, and `serviceaccounts` in the core API group, and the `userextras` in the `authentication.k8s.io` API group.
## Authorization Modules
* **Node** - A special-purpose authorizer that grants permissions to kubelets based on the pods they are scheduled to run. To learn more about using the Node authorization mode, see [Node Authorization](/docs/admin/authorization/node/)
* **ABAC** - Attribute-based access control (ABAC) defines an access control paradigm whereby access rights are granted to users through the use of policies which combine attributes together. The policies can use any type of attributes (user attributes, resource attributes, object, environment attributes etc). To learn more about using the ABAC mode, see [ABAC Mode](/docs/admin/authorization/abac/)
* **RBAC** - Role-based access control (RBAC) is a method of regulating access to computer or network resources based on the roles of individual users within an enterprise. In this context, access is the ability of an individual user to perform a specific task, such as view, create, or modify a file. To learn more about using the RBAC mode, see [RBAC Mode](/docs/admin/authorization/rbac/)
..* When specified "RBAC" (Role-Based Access Control) uses the "rbac.authorization.k8s.io" API group to drive authorization decisions, allowing admins to dynamically configure permission policies through the Kubernetes API.
..* As of 1.6 RBAC mode is in beta.
..* To enable RBAC, start the apiserver with `--authorization-mode=RBAC`.
* **Webhook** - A WebHook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST. A web application implementing WebHooks will POST a message to a URL when certain things happen. To learn more about using the Webhook mode, see [Webhook Mode](/docs/admin/authorization/webhook/)
* **Custom Modules** - You can create custom modules for using with Kubernetes. To learn more, see **Custom Modules** below.
### Custom Modules
Other implementations can be developed fairly easily. The APIserver calls the Authorizer interface:
```go
type Authorizer interface {
Authorize(a Attributes) error
}
```
to determine whether or not to allow each API action.
An authorization plugin is a module that implements this interface.
Authorization plugin code goes in `pkg/auth/authorizer/$MODULENAME`.
An authorization module can be completely implemented in go, or can call out
to a remote authorization service. Authorization modules can implement
their own caching to reduce the cost of repeated authorization calls with the
same or similar arguments. Developers should then consider the interaction
between caching and revocation of permissions.
#### Checking API Access
Kubernetes exposes the `subjectaccessreviews.v1.authorization.k8s.io` resource as a
normal resource that allows external access to API authorizer decisions. No matter which authorizer
you choose to use, you can issue a `POST` with a `SubjectAccessReview` just like the webhook
authorizer to the `apis/authorization.k8s.io/v1/subjectaccessreviews` endpoint and
get back a response. For instance:
```bash
kubectl create --v=8 -f - << __EOF__
{
"apiVersion": "authorization.k8s.io/v1",
"kind": "SubjectAccessReview",
"spec": {
"resourceAttributes": {
"namespace": "kittensandponies",
"verb": "get",
"group": "unicorn.example.org",
"resource": "pods"
},
"user": "jane",
"group": [
"group1",
"group2"
],
"extra": {
"scopes": [
"openid",
"profile"
]
}
}
}
__EOF__
--- snip lots of output ---
I0913 08:12:31.362873 27425 request.go:908] Response Body: {"kind":"SubjectAccessReview","apiVersion":"authorization.k8s.io/v1","metadata":{"creationTimestamp":null},"spec":{"resourceAttributes":{"namespace":"kittensandponies","verb":"GET","group":"unicorn.example.org","resource":"pods"},"user":"jane","group":["group1","group2"],"extra":{"scopes":["openid","profile"]}},"status":{"allowed":true}}
subjectaccessreview "" created
```
This is useful for debugging access problems, in that you can use this resource
to determine what access an authorizer is granting.
## Using Flags for Your Authorization Module
You must include a flag in your policy to indicate which authorization module your policies include:
The following flags can be used:
- `--authorization-mode=ABAC` Attribute-Based Access Control (ABAC) mode allows you to configure policies using local files.
- `--authorization-mode=RBAC` Role-based access control (RBAC) mode allows you to create and store policies using the Kubernetes API.
- `--authorization-mode=Webhook` WebHook is an HTTP callback mode that allows you to manage authorization using a remote REST.
- `--authorization-mode=AlwaysDeny` This flag blocks all requests. Use this flag only for testing.
- `--authorization-mode=AlwaysAllow` This flag allows all requests. Use this flag only if you do not require authorization for your API requests.
You can choose more than one authorization module. If one of the modes is `AlwaysAllow`, then it overrides the other modes and all API requests are allowed.
## Versioning
For version 1.2, clusters created by kube-up.sh are configured so that no authorization is required for any request.
As of version 1.3, clusters created by kube-up.sh are configured so that the ABAC authorization modules are 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.
{% endcapture %}
{% capture whatsnext %}
* To learn more about Authentication, see **Authentication** in [Controlling Access to the Kubernetes API](/docs/admin/accessing-the-api/).
* To learn more about Admission Control, see [Using Admission Controllers](/docs/admin/admission-controllers/).
{% endcapture %}
{% include templates/concept.md %}
+93
View File
@@ -0,0 +1,93 @@
---
assignees:
- timstclair
- deads2k
- liggitt
- ericchiang
title: Using Node Authorization
---
* TOC
{:toc}
Node authorization is a special-purpose authorization mode that specifically authorizes API requests made by kubelets.
## Overview
The Node authorizer allows a kubelet to perform API operations. This includes:
Read operations:
* services
* endpoints
* nodes
* pods
* secrets, configmaps, persistent volume claims and persistent volumes related to pods bound to the kubelet's node
Write operations:
* nodes and node status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify its own node)
* pods and pod status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify pods bound to itself)
* events
Auth-related operations:
* read/write access to the certificationsigningrequests API for TLS bootstrapping
* the ability to create tokenreviews and subjectaccessreviews for delegated authentication/authorization checks
In future releases, the node authorizer may add or remove permissions to ensure kubelets
have the minimal set of permissions required to operate correctly.
In order to be authorized by the Node authorizer, kubelets must use a credential that identifies them as
being in the `system:nodes` group, with a username of `system:node:<nodeName>`.
This group and user name format match the identity created for each kubelet as part of
[kubelet TLS bootstrapping](/docs/admin/kubelet-tls-bootstrapping/).
To enable the Node authorizer, start the apiserver with `--authorization-mode=Node`.
To limit the API objects kubelets are able to write, enable the [NodeRestriction](/docs/admin/admission-controllers#NodeRestriction) admission plugin by starting the apiserver with `--admission-control=...,NodeRestriction,...`
## Migration considerations
### Kubelets outside the `system:nodes` group
Kubelets outside the `system:nodes` group would not be authorized by the `Node` authorization mode,
and would need to continue to be authorized via whatever mechanism currently authorizes them.
The node admission plugin would not restrict requests from these kubelets.
### Kubelets with undifferentiated usernames
In some deployments, kubelets have credentials that place them in the `system:nodes` group,
but do not identify the particular node they are associated with,
because they do not have a username in the `system:node:...` format.
These kubelets would not be authorized by the `Node` authorization mode,
and would need to continue to be authorized via whatever mechanism currently authorizes them.
The `NodeRestriction` admission plugin would ignore requests from these kubelets,
since the default node identifier implementation would not consider that a node identity.
### Upgrades from previous versions using RBAC
Upgraded pre-1.7 clusters using [RBAC](/docs/admin/authorization/rbac/) will continue functioning as-is because the `system:nodes` group binding will already exist.
If a cluster admin wishes to start using the `Node` authorizer and `NodeRestriction` admission plugin
to limit node access to the API, that can be done non-disruptively:
1. Enable the `Node` authorization mode (`--authorization-mode=Node,RBAC`) and the `NodeRestriction` admission plugin
2. Ensure all kubelets' credentials conform to the group/username requirements
3. Audit apiserver logs to ensure the `Node` authorizer is not rejecting requests from kubelets (no persistent `NODE DENY` messages logged)
4. Delete the `system:node` cluster role binding
### RBAC Node Permissions
In 1.6, the `system:node` cluster role was automatically bound to the `system:nodes` group when using the [RBAC Authorization mode](/docs/admin/authorization/rbac/).
In 1.7, the automatic binding of the `system:nodes` group to the `system:node` role is deprecated
because the node authorizer accomplishes the same purpose with the benefit of additional restrictions
on secret and configmap access. If the `Node` and `RBAC` authorization modes are both enabled,
the automatic binding of the `system:nodes` group to the `system:node` role is not created in 1.7.
In 1.8, the binding will not be created at all.
When using RBAC, the `system:node` cluster role will continue to be created,
for compatibility with deployment methods that bind other users or groups to that role.
+784
View File
@@ -0,0 +1,784 @@
---
assignees:
- erictune
- deads2k
- liggitt
title: Using RBAC Authorization
---
* TOC
{:toc}
Role-Based Access Control ("RBAC") uses the "rbac.authorization.k8s.io" API group
to drive authorization decisions, allowing admins to dynamically configure policies
through the Kubernetes API.
As of 1.6 RBAC mode is in beta.
To enable RBAC, start the apiserver with `--authorization-mode=RBAC`.
## API Overview
The RBAC API declares four top-level types which will be covered in this
section. Users can interact with these resources as they would with any other
API resource (via `kubectl`, API calls, etc.). For instance,
`kubectl create -f (resource).yml` can be used with any of these examples,
though readers who wish to follow along should review the section on
bootstrapping first.
### Role and ClusterRole
In the RBAC API, a role contains rules that represent a set of permissions.
Permissions are purely additive (there are no "deny" rules).
A role can be defined within a namespace with a `Role`, or cluster-wide with a `ClusterRole`.
A `Role` can only be used to grant access to resources within a single namespace.
Here's an example `Role` in the "default" namespace that can be used to grant read access to pods:
```yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
```
A `ClusterRole` can be used to grant the same permissions as a `Role`,
but because they are cluster-scoped, they can also be used to grant access to:
* cluster-scoped resources (like nodes)
* non-resource endpoints (like "/healthz")
* namespaced resources (like pods) across all namespaces (needed to run `kubectl get pods --all-namespaces`, for example)
The following `ClusterRole` can be used to grant read access to secrets in any particular namespace,
or across all namespaces (depending on how it is [bound](#rolebinding-and-clusterrolebinding)):
```yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
# "namespace" omitted since ClusterRoles are not namespaced
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"]
```
### RoleBinding and ClusterRoleBinding
A role binding grants the permissions defined in a role to a user or set of users.
It holds a list of subjects (users, groups, or service accounts), and a reference to the role being granted.
Permissions can be granted within a namespace with a `RoleBinding`, or cluster-wide with a `ClusterRoleBinding`.
A `RoleBinding` may reference a `Role` in the same namespace.
The following `RoleBinding` grants the "pod-reader" role to the user "jane" within the "default" namespace.
This allows "jane" to read pods in the "default" namespace.
```yaml
# This role binding allows "jane" to read pods in the "default" namespace.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
```
A `RoleBinding` may also reference a `ClusterRole` to grant the permissions to namespaced
resources defined in the `ClusterRole` within the `RoleBinding`'s namespace.
This allows administrators to define a set of common roles for the entire cluster,
then reuse them within multiple namespaces.
For instance, even though the following `RoleBinding` refers to a `ClusterRole`,
"dave" (the subject) will only be able read secrets in the "development"
namespace (the namespace of the `RoleBinding`).
```yaml
# This role binding allows "dave" to read secrets in the "development" namespace.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: read-secrets
namespace: development # This only grants permissions within the "development" namespace.
subjects:
- kind: User
name: dave
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: secret-reader
apiGroup: rbac.authorization.k8s.io
```
Finally, a `ClusterRoleBinding` may be used to grant permission at the cluster level and in all
namespaces. The following `ClusterRoleBinding` allows any user in the group "manager" to read
secrets in any namespace.
```yaml
# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace.
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: read-secrets-global
subjects:
- kind: Group
name: manager
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
 name: secret-reader
apiGroup: rbac.authorization.k8s.io
```
### Referring to Resources
Most resources are represented by a string representation of their name, such as "pods", just as it
appears in the URL for the relevant API endpoint. However, some Kubernetes APIs involve a
"subresource", such as the logs for a pod. The URL for the pods logs endpoint is:
```
GET /api/v1/namespaces/{namespace}/pods/{name}/log
```
In this case, "pods" is the namespaced resource, and "log" is a subresource of pods. To represent
this in an RBAC role, use a slash to delimit the resource and subresource. To allow a subject
to read both pods and pod logs, you would write:
```yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: default
name: pod-and-pod-logs-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list"]
```
Resources can also be referred to by name for certain requests through the `resourceNames` list.
When specified, requests using the "get", "delete", "update", and "patch" verbs can be restricted
to individual instances of a resource. To restrict a subject to only "get" and "update" a single
configmap, you would write:
```yaml
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: default
name: configmap-updater
rules:
- apiGroups: [""]
resources: ["configmap"]
resourceNames: ["my-configmap"]
verbs: ["update", "get"]
```
Notably, if `resourceNames` are set, then the verb must not be list, watch, create, or deletecollection.
Because resource names are not present in the URL for create, list, watch, and deletecollection API requests,
those verbs would not be allowed by a rule with resourceNames set, since the resourceNames portion of the
rule would not match the request.
#### Role Examples
Only the `rules` section is shown in the following examples.
Allow reading the resource "pods" in the core API group:
```yaml
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
```
Allow reading/writing "deployments" in both the "extensions" and "apps" API groups:
```yaml
rules:
- apiGroups: ["extensions", "apps"]
resources: ["deployments"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
```
Allow reading "pods" and reading/writing "jobs":
```yaml
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- apiGroups: ["batch", "extensions"]
resources: ["jobs"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
```
Allow reading a `ConfigMap` named "my-config" (must be bound with a `RoleBinding` to limit to a single `ConfigMap` in a single namespace):
```yaml
rules:
- apiGroups: [""]
resources: ["configmaps"]
resourceNames: ["my-config"]
verbs: ["get"]
```
Allow reading the resource "nodes" in the core group (because a `Node` is cluster-scoped, this must be in a `ClusterRole` bound with a `ClusterRoleBinding` to be effective):
```yaml
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
```
Allow "GET" and "POST" requests to the non-resource endpoint "/healthz" and all subpaths (must be in a `ClusterRole` bound with a `ClusterRoleBinding` to be effective):
```yaml
rules:
- nonResourceURLs: ["/healthz", "/healthz/*"] # '*' in a nonResourceURL is a suffix glob match
verbs: ["get", "post"]
```
### Referring to Subjects
A `RoleBinding` or `ClusterRoleBinding` binds a role to *subjects*.
Subjects can be groups, users or service accounts.
Users are represented by strings. These can be plain usernames, like
"alice", email-style names, like "bob@example.com", or numeric ids
represented as a string. It is up to the Kubernetes admin to configure
the [authentication modules](/docs/admin/authentication/) to produce
usernames in the desired format. The RBAC authorization system does
not require any particular format. However, the prefix `system:` is
reserved for Kubernetes system use, and so the admin should ensure
usernames do not contain this prefix by accident.
Group information in Kubernetes is currently provided by the Authenticator
modules. Groups, like users, are represented as strings, and that string
has no format requirements, other than that the prefix `system:` is reserved.
[Service Accounts](/docs/tasks/configure-pod-container/configure-service-account/) have usernames with the `system:serviceaccount:` prefix and belong
to groups with the `system:serviceaccounts:` prefix.
#### Role Binding Examples
Only the `subjects` section of a `RoleBinding` is shown in the following examples.
For a user named "alice@example.com":
```yaml
subjects:
- kind: User
name: "alice@example.com"
apiGroup: rbac.authorization.k8s.io
```
For a group named "frontend-admins":
```yaml
subjects:
- kind: Group
name: "frontend-admins"
apiGroup: rbac.authorization.k8s.io
```
For the default service account in the kube-system namespace:
```yaml
subjects:
- kind: ServiceAccount
name: default
namespace: kube-system
```
For all service accounts in the "qa" namespace:
```yaml
subjects:
- kind: Group
name: system:serviceaccounts:qa
apiGroup: rbac.authorization.k8s.io
```
For all service accounts everywhere:
```yaml
subjects:
- kind: Group
name: system:serviceaccounts
apiGroup: rbac.authorization.k8s.io
```
For all authenticated users (version 1.5+):
```yaml
subjects:
- kind: Group
name: system:authenticated
apiGroup: rbac.authorization.k8s.io
```
For all unauthenticated users (version 1.5+):
```yaml
subjects:
- kind: Group
name: system:unauthenticated
apiGroup: rbac.authorization.k8s.io
```
For all users (version 1.5+):
```yaml
subjects:
- kind: Group
name: system:authenticated
apiGroup: rbac.authorization.k8s.io
- kind: Group
name: system:unauthenticated
apiGroup: rbac.authorization.k8s.io
```
## Default Roles and Role Bindings
API servers create a set of default `ClusterRole` and `ClusterRoleBinding` objects.
Many of these are `system:` prefixed, which indicates that the resource is "owned" by the infrastructure.
Modifications to these resources can result in non-functional clusters. One example is the `system:node` ClusterRole.
This role defines permissions for kubelets. If the role is modified, it can prevent kubelets from working.
All of the default cluster roles and rolebindings are labeled with `kubernetes.io/bootstrapping=rbac-defaults`.
### Auto-reconciliation
At each start-up, the API server updates default cluster roles with any missing permissions,
and updates default cluster role bindings with any missing subjects.
This allows the cluster to repair accidental modifications,
and to keep roles and rolebindings up-to-date as permissions and subjects change in new releases.
To opt out of this reconciliation, set the `rbac.authorization.kubernetes.io/autoupdate`
annotation on a default cluster role or rolebinding to `false`.
Be aware that missing default permissions and subjects can result in non-functional clusters.
Auto-reconciliation is enabled in Kubernetes version 1.6+ when the RBAC authorizer is active.
### Discovery Roles
<table>
<colgroup><col width="25%"><col width="25%"><col></colgroup>
<tr>
<th>Default ClusterRole</th>
<th>Default ClusterRoleBinding</th>
<th>Description</th>
</tr>
<tr>
<td><b>system:basic-user</b></td>
<td><b>system:authenticated</b> and <b>system:unauthenticated</b> groups</td>
<td>Allows a user read-only access to basic information about themselves.</td>
</tr>
<tr>
<td><b>system:discovery</b></td>
<td><b>system:authenticated</b> and <b>system:unauthenticated</b> groups</td>
<td>Allows read-only access to API discovery endpoints needed to discover and negotiate an API level.</td>
</tr>
</table>
### User-facing Roles
Some of the default roles are not `system:` prefixed. These are intended to be user-facing roles.
They include super-user roles (`cluster-admin`),
roles intended to be granted cluster-wide using ClusterRoleBindings (`cluster-status`),
and roles intended to be granted within particular namespaces using RoleBindings (`admin`, `edit`, `view`).
<table>
<colgroup><col width="25%"><col width="25%"><col></colgroup>
<tr>
<th>Default ClusterRole</th>
<th>Default ClusterRoleBinding</th>
<th>Description</th>
</tr>
<tr>
<td><b>cluster-admin</b></td>
<td><b>system:masters</b> group</td>
<td>Allows super-user access to perform any action on any resource.
When used in a <b>ClusterRoleBinding</b>, it gives full control over every resource in the cluster and in all namespaces.
When used in a <b>RoleBinding</b>, it gives full control over every resource in the rolebinding's namespace, including the namespace itself.</td>
</tr>
<tr>
<td><b>admin</b></td>
<td>None</td>
<td>Allows admin access, intended to be granted within a namespace using a <b>RoleBinding</b>.
If used in a <b>RoleBinding</b>, allows read/write access to most resources in a namespace,
including the ability to create roles and rolebindings within the namespace.
It does not allow write access to resource quota or to the namespace itself.</td>
</tr>
<tr>
<td><b>edit</b></td>
<td>None</td>
<td>Allows read/write access to most objects in a namespace.
It does not allow viewing or modifying roles or rolebindings.</td>
</tr>
<tr>
<td><b>view</b></td>
<td>None</td>
<td>Allows read-only access to see most objects in a namespace.
It does not allow viewing roles or rolebindings.
It does not allow viewing secrets, since those are escalating.</td>
</tr>
</table>
### Core Component Roles
<table>
<colgroup><col width="25%"><col width="25%"><col></colgroup>
<tr>
<th>Default ClusterRole</th>
<th>Default ClusterRoleBinding</th>
<th>Description</th>
</tr>
<tr>
<td><b>system:kube-scheduler</b></td>
<td><b>system:kube-scheduler</b> user</td>
<td>Allows access to the resources required by the kube-scheduler component.</td>
</tr>
<tr>
<td><b>system:kube-controller-manager</b></td>
<td><b>system:kube-controller-manager</b> user</td>
<td>Allows access to the resources required by the kube-controller-manager component.
The permissions required by individual control loops are contained in the <a href="#controller-roles">controller roles</a>.</td>
</tr>
<tr>
<td><b>system:node</b></td>
<td><b>system:nodes</b> group (deprecated in 1.7)</td>
<td>Allows access to resources required by the kubelet component, <b>including read access to all secrets, and write access to all pods</b>.
As of 1.7, use of the [Node authorizer](/docs/admin/authorization/node/)
and [NodeRestriction admission plugin](/docs/admin/admission-controllers#NodeRestriction)
is recommended instead of this role, and allow granting API access to kubelets based on the pods scheduled to run on them.
As of 1.7, when the `Node` authorization mode is enabled, the automatic binding to the `system:nodes` group is not created.
</td>
</tr>
<tr>
<td><b>system:node-proxier</b></td>
<td><b>system:kube-proxy</b> user</td>
<td>Allows access to the resources required by the kube-proxy component.</td>
</tr>
</table>
### Other Component Roles
<table>
<colgroup><col width="25%"><col width="25%"><col></colgroup>
<tr>
<th>Default ClusterRole</th>
<th>Default ClusterRoleBinding</th>
<th>Description</th>
</tr>
<tr>
<td><b>system:auth-delegator</b></td>
<td>None</td>
<td>Allows delegated authentication and authorization checks.
This is commonly used by add-on API servers for unified authentication and authorization.</td>
</tr>
<tr>
<td><b>system:heapster</b></td>
<td>None</td>
<td>Role for the <a href="https://github.com/kubernetes/heapster">Heapster</a> component.</td>
</tr>
<tr>
<td><b>system:kube-aggregator</b></td>
<td>None</td>
<td>Role for the <a href="https://github.com/kubernetes/kube-aggregator">kube-aggregator</a> component.</td>
</tr>
<tr>
<td><b>system:kube-dns</b></td>
<td><b>kube-dns</b> service account in the <b>kube-system</b> namespace</td>
<td>Role for the <a href="/docs/admin/dns/">kube-dns</a> component.</td>
</tr>
<tr>
<td><b>system:node-bootstrapper</b></td>
<td>None</td>
<td>Allows access to the resources required to perform <a href="/docs/admin/kubelet-tls-bootstrapping/">Kubelet TLS bootstrapping</a>.</td>
</tr>
<tr>
<td><b>system:node-problem-detector</b></td>
<td>None</td>
<td>Role for the <a href="https://github.com/kubernetes/node-problem-detector">node-problem-detector</a> component.</td>
</tr>
<tr>
<td><b>system:persistent-volume-provisioner</b></td>
<td>None</td>
<td>Allows access to the resources required by most <a href="/docs/user-guide/persistent-volumes/#provisioner">dynamic volume provisioners</a>.</td>
</tr>
</table>
### Controller Roles
The [Kubernetes controller manager](/docs/admin/kube-controller-manager/) runs core control loops.
When invoked with `--use-service-account-credentials`, each control loop is started using a separate service account.
Corresponding roles exist for each control loop, prefixed with `system:controller:`.
If the controller manager is not started with `--use-service-account-credentials`,
it runs all control loops using its own credential, which must be granted all the relevant roles.
These roles include:
* system:controller:attachdetach-controller
* system:controller:certificate-controller
* system:controller:cronjob-controller
* system:controller:daemon-set-controller
* system:controller:deployment-controller
* system:controller:disruption-controller
* system:controller:endpoint-controller
* system:controller:generic-garbage-collector
* system:controller:horizontal-pod-autoscaler
* system:controller:job-controller
* system:controller:namespace-controller
* system:controller:node-controller
* system:controller:persistent-volume-binder
* system:controller:pod-garbage-collector
* system:controller:replicaset-controller
* system:controller:replication-controller
* system:controller:resourcequota-controller
* system:controller:route-controller
* system:controller:service-account-controller
* system:controller:service-controller
* system:controller:statefulset-controller
* system:controller:ttl-controller
## Privilege Escalation Prevention and Bootstrapping
The RBAC API prevents users from escalating privileges by editing roles or role bindings.
Because this is enforced at the API level, it applies even when the RBAC authorizer is not in use.
A user can only create/update a role if they already have all the permissions contained in the role,
at the same scope as the role (cluster-wide for a `ClusterRole`, within the same namespace or cluster-wide for a `Role`).
For example, if "user-1" does not have the ability to list secrets cluster-wide, they cannot create a `ClusterRole`
containing that permission. To allow a user to create/update roles:
1. Grant them a role that allows them to create/update `Role` or `ClusterRole` objects, as desired.
2. Grant them roles containing the permissions you would want them to be able to set in a `Role` or `ClusterRole`. If they attempt to create or modify a `Role` or `ClusterRole` with permissions they themselves have not been granted, the API request will be forbidden.
A user can only create/update a role binding if they already have all the permissions contained in the referenced role
(at the same scope as the role binding) *or* if they've been given explicit permission to perform the `bind` verb on the referenced role.
For example, if "user-1" does not have the ability to list secrets cluster-wide, they cannot create a `ClusterRoleBinding`
to a role that grants that permission. To allow a user to create/update role bindings:
1. Grant them a role that allows them to create/update `RoleBinding` or `ClusterRoleBinding` objects, as desired.
2. Grant them permissions needed to bind a particular role:
* implicitly, by giving them the permissions contained in the role.
* explicitly, by giving them permission to perform the `bind` verb on the particular role (or cluster role).
For example, this cluster role and role binding would allow "user-1" to grant other users the `admin`, `edit`, and `view` roles in the "user-1-namespace" namespace:
```yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: role-grantor
rules:
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["rolebindings"]
verbs: ["create"]
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["clusterroles"]
verbs: ["bind"]
resourceNames: ["admin","edit","view"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: role-grantor-binding
namespace: user-1-namespace
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: role-grantor
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: user-1
```
When bootstrapping the first roles and role bindings, it is necessary for the initial user to grant permissions they do not yet have.
To bootstrap initial roles and role bindings:
* Use a credential with the `system:masters` group, which is bound to the `cluster-admin` super-user role by the default bindings.
* If your API server runs with the insecure port enabled (`--insecure-port`), you can also make API calls via that port, which does not enforce authentication or authorization.
## Command-line Utilities
Two `kubectl` commands exist to grant roles within a namespace or across the entire cluster.
### `kubectl create rolebinding`
Grants a `Role` or `ClusterRole` within a specific namespace. Examples:
* Grant the `admin` `ClusterRole` to a user named "bob" in the namespace "acme":
`kubectl create rolebinding bob-admin-binding --clusterrole=admin --user=bob --namespace=acme`
* Grant the `view` `ClusterRole` to a service account named "myapp" in the namespace "acme":
`kubectl create rolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp --namespace=acme`
### `kubectl create clusterrolebinding`
Grants a `ClusterRole` across the entire cluster, including all namespaces. Examples:
* Grant the `cluster-admin` `ClusterRole` to a user named "root" across the entire cluster:
`kubectl create clusterrolebinding root-cluster-admin-binding --clusterrole=cluster-admin --user=root`
* Grant the `system:node` `ClusterRole` to a user named "kubelet" across the entire cluster:
`kubectl create clusterrolebinding kubelet-node-binding --clusterrole=system:node --user=kubelet`
* Grant the `view` `ClusterRole` to a service account named "myapp" in the namespace "acme" across the entire cluster:
`kubectl create clusterrolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp`
See the CLI help for detailed usage
## Service Account Permissions
Default RBAC policies grant scoped permissions to control-plane components, nodes,
and controllers, but grant *no permissions* to service accounts outside the "kube-system" namespace
(beyond discovery permissions given to all authenticated users).
This allows you to grant particular roles to particular service accounts as needed.
Fine-grained role bindings provide greater security, but require more effort to administrate.
Broader grants can give unnecessary (and potentially escalating) API access to service accounts, but are easier to administrate.
In order from most secure to least secure, the approaches are:
1. Grant a role to an application-specific service account (best practice)
This requires the application to specify a `serviceAccountName` in its pod spec,
and for the service account to be created (via the API, application manifest, `kubectl create serviceaccount`, etc.).
For example, grant read-only permission within "my-namespace" to the "my-sa" service account:
```shell
kubectl create rolebinding my-sa-view \
--clusterrole=view \
--serviceaccount=my-namespace:my-sa \
--namespace=my-namespace
```
2. Grant a role to the "default" service account in a namespace
If an application does not specify a `serviceAccountName`, it uses the "default" service account.
NOTE: Permissions given to the "default" service account are available to any pod in the namespace that does not specify a `serviceAccountName`.
For example, grant read-only permission within "my-namespace" to the "default" service account:
```shell
kubectl create rolebinding default-view \
--clusterrole=view \
--serviceaccount=my-namespace:default \
--namespace=my-namespace
```
Many [add-ons](/docs/concepts/cluster-administration/addons/) currently run as the "default" service account in the "kube-system" namespace.
To allow those add-ons to run with super-user access, grant cluster-admin permissions to the "default" service account in the "kube-system" namespace.
NOTE: Enabling this means the "kube-system" namespace contains secrets that grant super-user access to the API.
```shell
kubectl create clusterrolebinding add-on-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:default
```
3. Grant a role to all service accounts in a namespace
If you want all applications in a namespace to have a role, no matter what service account they use,
you can grant a role to the service account group for that namespace.
For example, grant read-only permission within "my-namespace" to to all service accounts in that namespace:
```shell
kubectl create rolebinding serviceaccounts-view \
--clusterrole=view \
--group=system:serviceaccounts:my-namespace \
--namespace=my-namespace
```
4. Grant a limited role to all service accounts cluster-wide (discouraged)
If you don't want to manage permissions per-namespace, you can grant a cluster-wide role to all service accounts.
For example, grant read-only permission across all namespaces to all service accounts in the cluster:
```shell
kubectl create clusterrolebinding serviceaccounts-view \
--clusterrole=view \
--group=system:serviceaccounts
```
5. Grant super-user access to all service accounts cluster-wide (strongly discouraged)
If you don't care about partitioning permissions at all, you can grant super-user access to all service accounts.
WARNING: This allows any user with read access to secrets or the ability to create a pod to access super-user credentials.
```shell
kubectl create clusterrolebinding serviceaccounts-cluster-admin \
--clusterrole=cluster-admin \
--group=system:serviceaccounts
```
## Upgrading from 1.5
Prior to Kubernetes 1.6, many deployments used very permissive ABAC policies,
including granting full API access to all service accounts.
Default RBAC policies grant scoped permissions to control-plane components, nodes,
and controllers, but grant *no permissions* to service accounts outside the "kube-system" namespace
(beyond discovery permissions given to all authenticated users).
While far more secure, this can be disruptive to existing workloads expecting to automatically receive API permissions.
Here are two approaches for managing this transition:
### Parallel Authorizers
Run both the RBAC and ABAC authorizers, and include the legacy ABAC policy:
```
--authorization-mode=RBAC,ABAC --authorization-policy-file=mypolicy.jsonl
```
The RBAC authorizer will attempt to authorize requests first. If it denies an API request,
the ABAC authorizer is then run. This means that any request allowed by *either* the RBAC
or ABAC policies is allowed.
When run with a log level of 2 or higher (`--v=2`), you can see RBAC denials in the apiserver log (prefixed with `RBAC DENY:`).
You can use that information to determine which roles need to be granted to which users, groups, or service accounts.
Once you have [granted roles to service accounts](#service-account-permissions) and workloads are running with no RBAC denial messages
in the server logs, you can remove the ABAC authorizer.
### Permissive RBAC Permissions
You can replicate a permissive policy using RBAC role bindings.
**WARNING: The following policy allows ALL service accounts to act as cluster administrators.
Any application running in a container receives service account credentials automatically,
and could perform any action against the API, including viewing secrets and modifying permissions.
This is not a recommended policy.**
```
kubectl create clusterrolebinding permissive-binding \
--clusterrole=cluster-admin \
--user=admin \
--user=kubelet \
--group=system:serviceaccounts
```
+148
View File
@@ -0,0 +1,148 @@
---
assignees:
- erictune
- lavalamp
- deads2k
- liggitt
title: Webhook Mode
---
{% capture overview %}
A WebHook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST. A web application implementing WebHooks will POST a message to a URL when certain things happen.
{% endcapture %}
{% capture body %}
When specified, mode `Webhook` causes Kubernetes to query an outside REST
service when determining user privileges.
## Configuration File Format
Mode `Webhook` requires a file for HTTP configuration, specify by the
`--authorization-webhook-config-file=SOME_FILENAME` flag.
The configuration file uses the [kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/)
file format. Within the file "users" refers to the API Server webhook and
"clusters" refers to the remote service.
A configuration example which uses HTTPS client auth:
```yaml
# clusters refers to the remote service.
clusters:
- name: name-of-remote-authz-service
cluster:
certificate-authority: /path/to/ca.pem # CA for verifying the remote service.
server: https://authz.example.com/authorize # URL of remote service to query. Must use 'https'.
# users refers to the API Server's webhook configuration.
users:
- name: name-of-api-server
user:
client-certificate: /path/to/cert.pem # cert for the webhook plugin to use
client-key: /path/to/key.pem # key matching the cert
# kubeconfig files require a context. Provide one for the API Server.
current-context: webhook
contexts:
- context:
cluster: name-of-remote-authz-service
user: name-of-api-server
name: webhook
```
## Request Payloads
When faced with an authorization decision, the API Server POSTs a JSON
serialized api.authorization.v1beta1.SubjectAccessReview object describing the
action. This object contains fields describing the user attempting to make the
request, and either details about the resource being accessed or requests
attributes.
Note that webhook API objects are subject to the same [versioning compatibility rules](/docs/api/)
as other Kubernetes API objects. Implementers should be aware of looser
compatibility promises for beta objects and check the "apiVersion" field of the
request to ensure correct deserialization. Additionally, the API Server must
enable the `authorization.k8s.io/v1beta1` API extensions group (`--runtime-config=authorization.k8s.io/v1beta1=true`).
An example request body:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"spec": {
"resourceAttributes": {
"namespace": "kittensandponies",
"verb": "get",
"group": "unicorn.example.org",
"resource": "pods"
},
"user": "jane",
"group": [
"group1",
"group2"
]
}
}
```
The remote service is expected to fill the SubjectAccessReviewStatus 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:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"status": {
"allowed": true
}
}
```
To disallow access, the remote service would return:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"status": {
"allowed": false,
"reason": "user does not have read access to the namespace"
}
}
```
Access to non-resource paths are sent as:
```json
{
"apiVersion": "authorization.k8s.io/v1beta1",
"kind": "SubjectAccessReview",
"spec": {
"nonResourceAttributes": {
"path": "/debug",
"verb": "get"
},
"user": "jane",
"group": [
"group1",
"group2"
]
}
}
```
Non-resource paths include: `/api`, `/apis`, `/metrics`, `/resetMetrics`,
`/logs`, `/debug`, `/healthz`, `/swagger-ui/`, `/swaggerapi/`, `/ui`, and
`/version.` Clients require access to `/api`, `/api/*`, `/apis`, `/apis/*`,
and `/version` to discover what resources and versions are present on the server.
Access to other non-resource paths can be disallowed without restricting access
to the REST api.
For further documentation refer to the authorization.v1beta1 API objects and
[webhook.go](https://git.k8s.io/kubernetes/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go).
{% endcapture %}
{% include templates/concept.md %}
+171
View File
@@ -0,0 +1,171 @@
---
assignees:
- jbeda
title: Authenticating with Bootstrap Tokens
---
* TOC
{:toc}
## Overview
Bootstrap tokens are a simple bearer token that is meant to be used when
creating new clusters or joining new nodes to an existing cluster. It was built
to support [`kubeadm`](/docs/admin/kubeadm/), but can be used in other contexts
for users that wish to start clusters without `kubeadm`. It is also built to
work, via RBAC policy, with the [Kubelet TLS
Bootstrapping](/docs/admin/kubelet-tls-bootstrapping/) system.
Bootstrap Tokens are defined with a specific type
(`bootstrap.kubernetes.io/token`) of secrets that lives in the `kube-system`
namespace. These Secrets are then read by the Bootstrap Authenticator in the
API Server. Expired tokens are removed with the TokenCleaner controller in the
Controller Manager. The tokens are also used to create a signature for a
specific ConfigMap used in a "discovery" process through a BootstrapSigner
controller.
Currently, Bootstrap Tokens are **alpha** but there are no large breaking
changes expected.
## Token Format
Bootstrap Tokens take the form of `abcdef.0123456789abcdef`. More formally,
they must match the regular expression `[a-z0-9]{6}\.[a-z0-9]{16}`.
The first part of the token is the "Token ID" and is considered public
information. It is used when referring to a token without leaking the secret
part used for authentication. The second part is the "Token Secret" and should
only be shared with trusted parties.
## Enabling Bootstrap Tokens
All features for Bootstrap Tokens are disabled by default in Kubernetes v1.6.
You can enable the Bootstrap Token authenticator with the
`--experimental-bootstrap-token-auth` flag on the API server. You can enable
the Bootstrap controllers by specifying them withthe `--controllers` flag on the
controller manager with something like
`--controllers=*,tokencleaner,bootstrapsigner`. This is done automatically when
using `kubeadm`.
Tokens are used in an HTTPS call as follows:
```http
Authorization: Bearer 07401b.f395accd246ae52d
```
## Bootstrap Token Secret Format
Each valid token is backed by a secret in the `kube-system` namespace. You can
find the full design doc
[here](https://git.k8s.io/community/contributors/design-proposals/bootstrap-discovery.md).
Here is what the secret looks like. Note that `base64(string)` indicates the
value should be base64 encoded. The undecoded version is provided here for
readability.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: bootstrap-token-07401b
namespace: kube-system
type: bootstrap.kubernetes.io/token
data:
description: base64(The default bootstrap token generated by 'kubeadm init'.)
token-id: base64(07401b)
token-secret: base64(f395accd246ae52d)
expiration: base64(2017-03-10T03:22:11Z)
usage-bootstrap-authentication: base64(true)
usage-bootstrap-signing: base64(true)
```
The type of the secret must be `bootstrap.kubernetes.io/token` and the name must
be `bootstrap-token-<token id>`. It must also exist in the `kube-system`
namespace. `description` is a human readable discription that should not be
used for machine readable information. The Token ID and Secret are included in
the data dictionary.
The `usage-bootstrap-*` members indicate what this secret is intended to be used
for. A value must be set to `true` to be enabled.
`usage-bootstrap-authentication` indicates that the token can be used to
authenticate to the API server. The authenticator authenticates as
`system:bootstrap:<Token ID>`. It is included in the `system:bootstrappers`
group. The naming and groups are intentionally limited to discourage users from
using these tokens past bootstrapping.
`usage-bootstrap-signing` indicates that the token should be used to sign the
`cluster-info` ConfigMap as described below.
The `expiration` data member lists a time after which the token is no longer
valid. This is encoded as an absolute UTC time using RFC3339. The TokenCleaner
controller will delete expired tokens.
## Token Management with `kubeadm`
You can use the `kubeadm` tool to manage tokens on a running cluster. It will
automatically grab the default admin credentials on a master from a `kubeadm`
created cluster (`/etc/kubernetes/admin.conf`). You can specify an alternate
kubeconfig file for credentials with the `--kubeconfig` to the following
commands.
* `kubeadm token list` Lists the tokens along with when they expire and what the
approved usages are.
* `kubeadm token create` Creates a new token.
* `--description` Set the description on the new token.
* `--ttl duration` Set expiration time of the token as a delta from "now".
Default is 0 for no expiration.
* `--usages` Set the ways that the token can be used. The default is
`signing,authentication`. These are the usages as described above.
* `kubeadm token delete <token id>|<token id>.<token secret>` Delete a token.
The token can either be identified with just an ID or with the entire token
value. Only the ID is used; the token is still deleted if the secret does not
match.
## ConfigMap Signing
In addition to authentication, the tokens can be used to sign a ConfigMap. This
is used early in a cluster bootstrap process before the client trusts the API
server. The signed ConfigMap can be authenicated by the shared token.
The ConfigMap that is signed is `cluster-info` in the `kube-public` namespace.
The typical flow is that a client reads this ConfigMap while unauthenticated and
ignoring TLS errors. It then validates the payload of the ConfigMap by looking
at a signature embedded in the ConfigMap.
The ConfigMap may look like this:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-info
namespace: kube-public
data:
jws-kubeconfig-07401b: eyJhbGciOiJIUzI1NiIsImtpZCI6IjA3NDAxYiJ9..tYEfbo6zDNo40MQE07aZcQX2m3EB2rO3NuXtxVMYm9U
kubeconfig: |
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: <really long certificate data>
server: https://10.138.0.2:6443
name: ""
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
```
The `kubeconfig` member of the ConfigMap is a config file with just the cluster
information filled out. The key thing being communicated here is the
`certificate-authority-data`. This may be expanded in the future.
The signature is a JWS signature using the "detached" mode. To validate the
signature, the user should encode the `kubeconfig` payload according to JWS
rules (base64 encoded while discarding any trailing `=`). That encoded payload
is then used to form a whole JWS by inserting it between the 2 dots. You can
verify the JWS using the `HS256` scheme (HMAC-SHA256) with the full token (e.g.
`07401b.f395accd246ae52d`) as the shared secret. Users _must_ verify that HS256
is used.
-136
View File
@@ -1,136 +0,0 @@
---
assignees:
- lavalamp
title: Kubernetes Components
---
This document outlines the various binary components that need to run to
deliver a functioning Kubernetes cluster.
## Master Components
Master components are those that provide the cluster's control plane. For
example, master components are responsible for making global decisions about the
cluster (e.g., scheduling), and detecting and responding to cluster events
(e.g., starting up a new pod when a replication controller's 'replicas' field is
unsatisfied).
Master components could in theory be run on any node in the cluster. However,
for simplicity, current set up scripts typically start all master components on
the same VM, and does not run user containers on this VM. See
[high-availability.md](/docs/admin/high-availability) for an example multi-master-VM setup.
Even in the future, when Kubernetes is fully self-hosting, it will probably be
wise to only allow master components to schedule on a subset of nodes, to limit
co-running with user-run pods, reducing the possible scope of a
node-compromising security exploit.
### kube-apiserver
[kube-apiserver](/docs/admin/kube-apiserver) exposes the Kubernetes API; it is the front-end for the
Kubernetes control plane. It is designed to scale horizontally (i.e., one scales
it by running more of them-- [high-availability.md](/docs/admin/high-availability)).
### etcd
[etcd](/docs/admin/etcd) is used as Kubernetes' backing store. All cluster data is stored here.
Proper administration of a Kubernetes cluster includes a backup plan for etcd's
data.
### kube-controller-manager
[kube-controller-manager](/docs/admin/kube-controller-manager) is a binary that runs controllers, which are the
background threads that handle routine tasks in the cluster. Logically, each
controller is a separate process, but to reduce the number of moving pieces in
the system, they are all compiled into a single binary and run in a single
process.
These controllers include:
* Node Controller: Responsible for noticing & responding when nodes go down.
* Replication Controller: Responsible for maintaining the correct number of pods for every replication
controller object in the system.
* Endpoints Controller: Populates the Endpoints object (i.e., join Services & Pods).
* Service Account & Token Controllers: Create default accounts and API access tokens for new namespaces.
* ... and others.
### kube-scheduler
[kube-scheduler](/docs/admin/kube-scheduler) watches newly created pods that have no node assigned, and
selects a node for them to run on.
### addons
Addons are pods and services that implement cluster features. The pods may be managed
by Deployments, ReplicationContollers, etc. Namespaced addon objects are created in
the "kube-system" namespace.
Addon manager takes the responsibility for creating and maintaining addon resources.
See [here](http://releases.k8s.io/HEAD/cluster/addons) for more details.
#### DNS
While the other addons are not strictly required, all Kubernetes
clusters should have [cluster DNS](/docs/admin/dns/), as many examples rely on it.
Cluster DNS is a DNS server, in addition to the other DNS server(s) in your
environment, which serves DNS records for Kubernetes services.
Containers started by Kubernetes automatically include this DNS server
in their DNS searches.
#### User interface
The kube-ui provides a read-only overview of the cluster state. Access
[the UI using kubectl proxy](/docs/user-guide/connecting-to-applications-proxy/#connecting-to-the-kube-ui-service-from-your-local-workstation)
#### Container Resource Monitoring
[Container Resource Monitoring](/docs/user-guide/monitoring) records generic time-series metrics
about containers in a central database, and provides a UI for browsing that data.
#### Cluster-level Logging
A [Cluster-level logging](/docs/user-guide/logging/overview) mechanism is responsible for
saving container logs to a central log store with search/browsing interface.
## Node components
Node components run on every node, maintaining running pods and providing them
the Kubernetes runtime environment.
### kubelet
[kubelet](/docs/admin/kubelet) is the primary node agent. It:
* Watches for pods that have been assigned to its node (either by apiserver
or via local configuration file) and:
* Mounts the pod's required volumes
* Downloads the pod's secrets
* Runs the pod's containers via docker (or, experimentally, rkt).
* Periodically executes any requested container liveness probes.
* Reports the status of the pod back to the rest of the system, by creating a
"mirror pod" if necessary.
* Reports the status of the node back to the rest of the system.
### kube-proxy
[kube-proxy](/docs/admin/kube-proxy) enables the Kubernetes service abstraction by maintaining
network rules on the host and performing connection forwarding.
### docker
`docker` is of course used for actually running containers.
### rkt
`rkt` is supported experimentally as an alternative to docker.
### supervisord
`supervisord` is a lightweight process babysitting system for keeping kubelet and docker
running.
### fluentd
`fluentd` is a daemon which helps provide [cluster-level logging](#cluster-level-logging).
+1 -1
View File
@@ -111,7 +111,7 @@ Heapster's resource limits are set dynamically based on the initial size of your
and [#22940](http://issue.k8s.io/22940)). If you find that Heapster is running
out of resources, you should adjust the formulas that compute heapster memory request (see those PRs for details).
For directions on how to detect if addon containers are hitting resource limits, see the [Troubleshooting section of Compute Resources](/docs/user-guide/compute-resources/#troubleshooting).
For directions on how to detect if addon containers are hitting resource limits, see the [Troubleshooting section of Compute Resources](/docs/concepts/configuration/manage-compute-resources-container/#troubleshooting).
In the [future](http://issue.k8s.io/13048), we anticipate to set all cluster addon resource limits based on cluster size, and to dynamically adjust them if you grow or shrink your cluster.
We welcome PRs that implement those features.
-115
View File
@@ -1,115 +0,0 @@
---
assignees:
- davidopp
title: Troubleshooting Clusters
---
This doc is about cluster troubleshooting; we assume you have already ruled out your application as the root cause of the
problem you are experiencing. See
the [application troubleshooting guide](/docs/user-guide/application-troubleshooting) for tips on application debugging.
You may also visit [troubleshooting document](/docs/troubleshooting/) for more information.
## Listing your cluster
The first thing to debug in your cluster is if your nodes are all registered correctly.
Run
```shell
kubectl get nodes
```
And verify that all of the nodes you expect to see are present and that they are all in the `Ready` state.
## Looking at logs
For now, digging deeper into the cluster requires logging into the relevant machines. Here are the locations
of the relevant log files. (note that on systemd-based systems, you may need to use `journalctl` instead)
### Master
* /var/log/kube-apiserver.log - API Server, responsible for serving the API
* /var/log/kube-scheduler.log - Scheduler, responsible for making scheduling decisions
* /var/log/kube-controller-manager.log - Controller that manages replication controllers
### Worker Nodes
* /var/log/kubelet.log - Kubelet, responsible for running containers on the node
* /var/log/kube-proxy.log - Kube Proxy, responsible for service load balancing
## A general overview of cluster failure modes
This is an incomplete list of things that could go wrong, and how to adjust your cluster setup to mitigate the problems.
Root causes:
- VM(s) shutdown
- Network partition within cluster, or between cluster and users
- Crashes in Kubernetes software
- Data loss or unavailability of persistent storage (e.g. GCE PD or AWS EBS volume)
- Operator error, e.g. misconfigured Kubernetes software or application software
Specific scenarios:
- Apiserver VM shutdown or apiserver crashing
- Results
- unable to stop, update, or start new pods, services, replication controller
- existing pods and services should continue to work normally, unless they depend on the Kubernetes API
- Apiserver backing storage lost
- Results
- apiserver should fail to come up
- kubelets will not be able to reach it but will continue to run the same pods and provide the same service proxying
- manual recovery or recreation of apiserver state necessary before apiserver is restarted
- Supporting services (node controller, replication controller manager, scheduler, etc) VM shutdown or crashes
- currently those are colocated with the apiserver, and their unavailability has similar consequences as apiserver
- in future, these will be replicated as well and may not be co-located
- they do not have their own persistent state
- Individual node (VM or physical machine) shuts down
- Results
- pods on that Node stop running
- Network partition
- Results
- partition A thinks the nodes in partition B are down; partition B thinks the apiserver is down. (Assuming the master VM ends up in partition A.)
- Kubelet software fault
- Results
- crashing kubelet cannot start new pods on the node
- kubelet might delete the pods or not
- node marked unhealthy
- replication controllers start new pods elsewhere
- Cluster operator error
- Results
- loss of pods, services, etc
- lost of apiserver backing store
- users unable to read API
- etc.
Mitigations:
- Action: Use IaaS provider's automatic VM restarting feature for IaaS VMs
- Mitigates: Apiserver VM shutdown or apiserver crashing
- Mitigates: Supporting services VM shutdown or crashes
- Action: Use IaaS providers reliable storage (e.g. GCE PD or AWS EBS volume) for VMs with apiserver+etcd
- Mitigates: Apiserver backing storage lost
- Action: Use (experimental) [high-availability](/docs/admin/high-availability) configuration
- Mitigates: Master VM shutdown or master components (scheduler, API server, controller-managing) crashing
- Will tolerate one or more simultaneous node or component failures
- Mitigates: Apiserver backing storage (i.e., etcd's data directory) lost
- Assuming you used clustered etcd.
- Action: Snapshot apiserver PDs/EBS-volumes periodically
- Mitigates: Apiserver backing storage lost
- Mitigates: Some cases of operator error
- Mitigates: Some cases of Kubernetes software fault
- Action: use replication controller and services in front of pods
- Mitigates: Node shutdown
- Mitigates: Kubelet software fault
- Action: applications (containers) designed to tolerate unexpected restarts
- Mitigates: Node shutdown
- Mitigates: Kubelet software fault
- Action: [Multiple independent clusters](/docs/admin/multi-cluster) (and avoid making risky changes to all clusters at once)
- Mitigates: Everything listed above.
-168
View File
@@ -1,168 +0,0 @@
---
assignees:
- erictune
title: Daemon Sets
---
* TOC
{:toc}
## What is a DaemonSet?
A _DaemonSet_ ensures that all (or some) nodes run a copy of a pod. As nodes are added to the
cluster, pods are added to them. As nodes are removed from the cluster, those pods are garbage
collected. Deleting a DaemonSet will clean up the pods it created.
Some typical uses of a DaemonSet are:
- running a cluster storage daemon, such as `glusterd`, `ceph`, on each node.
- running a logs collection daemon on every node, such as `fluentd` or `logstash`.
- running a node monitoring daemon on every node, such as [Prometheus Node Exporter](
https://github.com/prometheus/node_exporter), `collectd`, New Relic agent, or Ganglia `gmond`.
In a simple case, one DaemonSet, covering all nodes, would be used for each type of daemon.
A more complex setup might use multiple DaemonSets would be used for a single type of daemon,
but with different flags and/or different memory and cpu requests for different hardware types.
## Writing a DaemonSet Spec
### Required Fields
As with all other Kubernetes config, a DaemonSet needs `apiVersion`, `kind`, and `metadata` fields. For
general information about working with config files, see [deploying applications](/docs/user-guide/deploying-applications/),
[configuring containers](/docs/user-guide/configuring-containers/), and [working with resources](/docs/user-guide/working-with-resources/) documents.
A DaemonSet also needs a [`.spec`](https://github.com/kubernetes/kubernetes/tree/{{page.githubbranch}}/docs/devel/api-conventions.md#spec-and-status) section.
### Pod Template
The `.spec.template` is the only required field of the `.spec`.
The `.spec.template` is a [pod template](/docs/user-guide/replication-controller/#pod-template).
It has exactly the same schema as a [pod](/docs/user-guide/pods), except
it is nested and does not have an `apiVersion` or `kind`.
In addition to required fields for a pod, a pod template in a DaemonSet has to specify appropriate
labels (see [pod selector](#pod-selector)).
A pod template in a DaemonSet must have a [`RestartPolicy`](/docs/user-guide/pod-states)
equal to `Always`, or be unspecified, which defaults to `Always`.
### Pod Selector
The `.spec.selector` field is a pod selector. It works the same as the `.spec.selector` of
a [Job](/docs/user-guide/jobs/) or other new resources.
The `spec.selector` is an object consisting of two fields:
* `matchLabels` - works the same as the `.spec.selector` of a [ReplicationController](/docs/user-guide/replication-controller/)
* `matchExpressions` - allows to build more sophisticated selectors by specifying key,
list of values and an operator that relates the key and values.
When the two are specified the result is ANDed.
If the `.spec.selector` is specified, it must match the `.spec.template.metadata.labels`. If not
specified, they are defaulted to be equal. Config with these not matching will be rejected by the API.
Also you should not normally create any pods whose labels match this selector, either directly, via
another DaemonSet, or via other controller such as ReplicationController. Otherwise, the DaemonSet
controller will think that those pods were created by it. Kubernetes will not stop you from doing
this. One case where you might want to do this is manually create a pod with a different value on
a node for testing.
### Running Pods on Only Some Nodes
If you specify a `.spec.template.spec.nodeSelector`, then the DaemonSet controller will
create pods on nodes which match that [node
selector](/docs/user-guide/node-selection/).
If you specify a `scheduler.alpha.kubernetes.io/affinity` annotation in `.spec.template.metadata.annotations`,
then DaemonSet controller will create pods on nodes which match that [node affinity](../../user-guide/node-selection/#alpha-feature-in-kubernetes-v12-node-affinity).
If you do not specify a `.spec.template.spec.nodeSelector` nor `node affinity`, then the DaemonSet controller will
create pods on all nodes.
## How Daemon Pods are Scheduled
Normally, the machine that a pod runs on is selected by the Kubernetes scheduler. However, pods
created by the Daemon controller have the machine already selected (`.spec.nodeName` is specified
when the pod is created, so it is ignored by the scheduler). Therefore:
- the [`unschedulable`](/docs/admin/node/#manual-node-administration) field of a node is not respected
by the DaemonSet controller.
- DaemonSet controller can make pods even when the scheduler has not been started, which can help cluster
bootstrap.
## Communicating with DaemonSet Pods
Some possible patterns for communicating with pods in a DaemonSet are:
- **Push**: Pods in the DaemonSet are configured to send updates to another service, such
as a stats database. They do not have clients.
- **NodeIP and Known Port**: Pods in the DaemonSet use a `hostPort`, so that the pods are reachable via the node IPs. Clients know the list of nodes ips somehow, and know the port by convention.
- **DNS**: Create a [headless service](/docs/user-guide/services/#headless-services) with the same pod selector,
and then discover DaemonSets using the `endpoints` resource or retrieve multiple A records from
DNS.
- **Service**: Create a service with the same pod selector, and use the service to reach a
daemon on a random node. (No way to reach specific node.)
## Updating a DaemonSet
If node labels are changed, the DaemonSet will promptly add pods to newly matching nodes and delete
pods from newly not-matching nodes.
You can modify the pods that a DaemonSet creates. However, pods do not allow all
fields to be updated. Also, the DaemonSet controller will use the original template the next
time a node (even with the same name) is created.
You can delete a DaemonSet. If you specify `--cascade=false` with `kubectl`, then the pods
will be left on the nodes. You can then create a new DaemonSet with a different template.
the new DaemonSet with the different template will recognize all the existing pods as having
matching labels. It will not modify or delete them despite a mismatch in the pod template.
You will need to force new pod creation by deleting the pod or deleting the node.
You cannot update a DaemonSet.
Support for updating DaemonSets and controlled updating of nodes is planned.
## Alternatives to DaemonSet
### Init Scripts
It is certainly possible to run daemon processes by directly starting them on a node (e.g. using
`init`, `upstartd`, or `systemd`). This is perfectly fine. However, there are several advantages to
running such processes via a DaemonSet:
- Ability to monitor and manage logs for daemons in the same way as applications.
- Same config language and tools (e.g. pod templates, `kubectl`) for daemons and applications.
- Future versions of Kubernetes will likely support integration between DaemonSet-created
pods and node upgrade workflows.
- Running daemons in containers with resource limits increases isolation between daemons from app
containers. However, this can also be accomplished by running the daemons in a container but not in a pod
(e.g. start directly via Docker).
### Bare Pods
It is possible to create pods directly which specify a particular node to run on. However,
a DaemonSet replaces pods that are deleted or terminated for any reason, such as in the case of
node failure or disruptive node maintenance, such as a kernel upgrade. For this reason, you should
use a DaemonSet rather than creating individual pods.
### Static Pods
It is possible to create pods by writing a file to a certain directory watched by Kubelet. These
are called [static pods](/docs/admin/static-pods/).
Unlike DaemonSet, static pods cannot be managed with kubectl
or other Kubernetes API clients. Static pods do not depend on the apiserver, making them useful
in cluster bootstrapping cases. Also, static pods may be deprecated in the future.
### Replication Controller
DaemonSet are similar to [Replication Controllers](/docs/user-guide/replication-controller) in that
they both create pods, and those pods have processes which are not expected to terminate (e.g. web servers,
storage servers).
Use a replication controller for stateless services, like frontends, where scaling up and down the
number of replicas and rolling out updates are more important than controlling exactly which host
the pod runs on. Use a Daemon Controller when it is important that a copy of a pod always run on
all or certain hosts, and when it needs to start before other pods.
-95
View File
@@ -1,95 +0,0 @@
---
assignees:
- davidopp
title: Pod Disruption Budget
---
This guide is for anyone wishing to specify safety constraints on pods or anyone
wishing to write software (typically automation software) that respects those
constraints.
* TOC
{:toc}
## Rationale
Various cluster management operations may voluntarily evict pods. "Voluntary"
means an eviction can be safely delayed for a reasonable period of time. The
principal examples today are draining a node for maintenance or upgrade
(`kubectl drain`), and cluster autoscaling down. In the future the
[rescheduler](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/rescheduling.md)
may also perform voluntary evictions. By contrast, something like evicting pods
because a node has become unreachable or reports `NotReady`, is not "voluntary."
For voluntary evictions, it can be useful for applications to be able to limit
the number of pods that are down simultaneously. For example, a quorum-based application would
like to ensure that the number of replicas running is never brought below the
number needed for a quorum, even temporarily. Or a web front end might want to
ensure that the number of replicas serving load never falls below a certain
percentage of the total, even briefly. `PodDisruptionBudget` is an API object
that specifies the minimum number or percentage of replicas of a collection that
must be up at a time. Components that wish to evict a pod subject to disruption
budget use the `/eviction` subresource; unlike a regular pod deletion, this
operation may be rejected by the API server if the eviction would cause a
disruption budget to be violated.
## Specifying a PodDisruptionBudget
A `PodDisruptionBudget` has two components: a label selector `selector` to specify the set of
pods to which it applies, and `minAvailable` which is a description of the number of pods from that
set that must still be available after the eviction, i.e. even in the absence
of the evicted pod. `minAvailable` can be either an absolute number or a percentage.
So for example, 100% means no voluntary evictions from the set are permitted. In
typical usage, a single budget would be used for a collection of pods managed by
a controller—for example, the pods in a single ReplicaSet.
Note that a disruption budget does not truly guarantee that the specified
number/percentage of pods will always be up. For example, a node that hosts a
pod from the collection may fail when the collection is at the minimum size
specified in the budget, thus bringing the number of available pods from the
collection below the specified size. The budget can only protect against
voluntary evictions, not all causes of unavailability.
## Requesting an eviction
If you are writing infrastructure software that wants to produce these voluntary
evictions, you will need to use the eviction API. The eviction subresource of a
pod can be thought of as a kind of policy-controlled DELETE operation on the pod
itself. To attempt an eviction (perhaps more REST-precisely, to attempt to
*create* an eviction), you POST an attempted operation. Here's an example:
```json
{
"apiVersion": "policy/v1beta1",
"kind": "Eviction",
"metadata": {
"name": "quux",
"namespace": "default"
}
}
```
You can attempt an eviction using `curl`:
```bash
$ curl -v -H 'Content-type: application/json' http://127.0.0.1:8080/api/v1/namespaces/default/pods/quux/eviction -d @eviction.json
```
The API can respond in one of three ways.
1. If the eviction is granted, then the pod is deleted just as if you had sent
a `DELETE` request to the pod's URL and you get back `200 OK`.
2. If the current state of affairs wouldn't allow an eviction by the rules set
forth in the budget, you get back `429 Too Many Requests`. This is
typically used for generic rate limiting of *any* requests, but here we mean
that this request isn't allowed *right now* but it may be allowed later.
Currently, callers do not get any `Retry-After` advice, but they may in
future versions.
3. If there is some kind of misconfiguration, like multiple budgets pointing at
the same pod, you will get `500 Internal Server Error`.
For a given eviction request, there are two cases.
1. There is no budget that matches this pod. In this case, the server always
returns `200 OK`.
2. There is at least one budget. In this case, any of the three above responses may
apply.
-389
View File
@@ -1,389 +0,0 @@
---
assignees:
- davidopp
- thockin
title: Using DNS Pods and Services
---
## Introduction
As of Kubernetes 1.3, DNS is a built-in service launched automatically using the addon manager [cluster add-on](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/README.md).
Kubernetes DNS schedules a DNS Pod and Service on the cluster, and configures
the kubelets to tell individual containers to use the DNS Service's IP to
resolve DNS names.
## What things get DNS names?
Every Service defined in the cluster (including the DNS server itself) is
assigned a DNS name. By default, a client Pod's DNS search list will
include the Pod's own namespace and the cluster's default domain. This is best
illustrated by example:
Assume a Service named `foo` in the Kubernetes namespace `bar`. A Pod running
in namespace `bar` can look up this service by simply doing a DNS query for
`foo`. A Pod running in namespace `quux` can look up this service by doing a
DNS query for `foo.bar`.
## Supported DNS schema
The following sections detail the supported record types and layout that is
supported. Any other layout or names or queries that happen to work are
considered implementation details and are subject to change without warning.
### Services
#### A records
"Normal" (not headless) Services are assigned a DNS A record for a name of the
form `my-svc.my-namespace.svc.cluster.local`. This resolves to the cluster IP
of the Service.
"Headless" (without a cluster IP) Services are also assigned a DNS A record for
a name of the form `my-svc.my-namespace.svc.cluster.local`. Unlike normal
Services, this resolves to the set of IPs of the pods selected by the Service.
Clients are expected to consume the set or else use standard round-robin
selection from the set.
### SRV records
SRV Records are created for named ports that are part of normal or [Headless
Services](http://releases.k8s.io/docs/user-guide/services/#headless-services).
For each named port, the SRV record would have the form
`_my-port-name._my-port-protocol.my-svc.my-namespace.svc.cluster.local`.
For a regular service, this resolves to the port number and the CNAME:
`my-svc.my-namespace.svc.cluster.local`.
For a headless service, this resolves to multiple answers, one for each pod
that is backing the service, and contains the port number and a CNAME of the pod
of the form `auto-generated-name.my-svc.my-namespace.svc.cluster.local`.
### Backwards compatibility
Previous versions of kube-dns made names of the form
`my-svc.my-namespace.cluster.local` (the 'svc' level was added later). This
is no longer supported.
### Pods
#### A Records
When enabled, pods are assigned a DNS A record in the form of `pod-ip-address.my-namespace.pod.cluster.local`.
For example, a pod with IP `1.2.3.4` in the namespace `default` with a DNS name of `cluster.local` would have an entry: `1-2-3-4.default.pod.cluster.local`.
#### A Records and hostname based on Pod's hostname and subdomain fields
Currently when a pod is created, its hostname is the Pod's `metadata.name` value.
With v1.2, users can specify a Pod annotation, `pod.beta.kubernetes.io/hostname`, to specify what the Pod's hostname should be.
The Pod annotation, if specified, takes precedence over the Pod's name, to be the hostname of the pod.
For example, given a Pod with annotation `pod.beta.kubernetes.io/hostname: my-pod-name`, the Pod will have its hostname set to "my-pod-name".
With v1.3, the PodSpec has a `hostname` field, which can be used to specify the Pod's hostname. This field value takes precedence over the
`pod.beta.kubernetes.io/hostname` annotation value.
v1.2 introduces a beta feature where the user can specify a Pod annotation, `pod.beta.kubernetes.io/subdomain`, to specify the Pod's subdomain.
The final domain will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
For example, a Pod with the hostname annotation set to "foo", and the subdomain annotation set to "bar", in namespace "my-namespace", will have the FQDN "foo.bar.my-namespace.svc.cluster.local"
With v1.3, the PodSpec has a `subdomain` field, which can be used to specify the Pod's subdomain. This field value takes precedence over the
`pod.beta.kubernetes.io/subdomain` annotation value.
Example:
```yaml
apiVersion: v1
kind: Service
metadata:
name: default-subdomain
spec:
selector:
name: busybox
clusterIP: None
ports:
- name: foo # Actually, no port is needed.
port: 1234
targetPort: 1234
---
apiVersion: v1
kind: Pod
metadata:
name: busybox1
labels:
name: busybox
spec:
hostname: busybox-1
subdomain: default-subdomain
containers:
- image: busybox
command:
- sleep
- "3600"
name: busybox
---
apiVersion: v1
kind: Pod
metadata:
name: busybox2
labels:
name: busybox
spec:
hostname: busybox-2
subdomain: default-subdomain
containers:
- image: busybox
command:
- sleep
- "3600"
name: busybox
```
If there exists a headless service in the same namespace as the pod and with the same name as the subdomain, the cluster's KubeDNS Server also returns an A record for the Pod's fully qualified hostname.
Given a Pod with the hostname set to "busybox-1" and the subdomain set to "default-subdomain", and a headless Service named "default-subdomain" in the same namespace, the pod will see it's own FQDN as "busybox-1.default-subdomain.my-namespace.svc.cluster.local". DNS serves an A record at that name, pointing to the Pod's IP. Both pods "busybox1" and "busybox2" can have their distinct A records.
As of Kubernetes v1.2, the Endpoints object also has the annotation `endpoints.beta.kubernetes.io/hostnames-map`. Its value is the json representation of map[string(IP)][endpoints.HostRecord], for example: '{"10.245.1.6":{HostName: "my-webserver"}}'.
If the Endpoints are for a headless service, an A record is created with the format <hostname>.<service name>.<pod namespace>.svc.<cluster domain>
For the example json, if endpoints are for a headless service named "bar", and one of the endpoints has IP "10.245.1.6", an A record is created with the name "my-webserver.bar.my-namespace.svc.cluster.local" and the A record lookup would return "10.245.1.6".
This endpoints annotation generally does not need to be specified by end-users, but can used by the internal service controller to deliver the aforementioned feature.
With v1.3, The Endpoints object can specify the `hostname` for any endpoint, along with its IP. The hostname field takes precedence over the hostname value
that might have been specified via the `endpoints.beta.kubernetes.io/hostnames-map` annotation.
With v1.3, the following annotations are deprecated: `pod.beta.kubernetes.io/hostname`, `pod.beta.kubernetes.io/subdomain`, `endpoints.beta.kubernetes.io/hostnames-map`
## How do I test if it is working?
### Create a simple Pod to use as a test environment
Create a file named busybox.yaml with the
following contents:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
```
Then create a pod using this file:
```
kubectl create -f busybox.yaml
```
### Wait for this pod to go into the running state
You can get its status with:
```
kubectl get pods busybox
```
You should see:
```
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 <some-time>
```
### Validate that DNS is working
Once that pod is running, you can exec nslookup in that environment:
```
kubectl exec -ti busybox -- nslookup kubernetes.default
```
You should see something like:
```
Server: 10.0.0.10
Address 1: 10.0.0.10
Name: kubernetes.default
Address 1: 10.0.0.1
```
If you see that, DNS is working correctly.
### Troubleshooting Tips
If the nslookup command fails, check the following:
#### Check the local DNS configuration first
Take a look inside the resolv.conf file. (See "Inheriting DNS from the node" and "Known issues" below for more information)
```
kubectl exec busybox cat /etc/resolv.conf
```
Verify that the search path and name server are set up like the following (note that search path may vary for different cloud providers):
```
search default.svc.cluster.local svc.cluster.local cluster.local google.internal c.gce_project_id.internal
nameserver 10.0.0.10
options ndots:5
```
#### Quick diagnosis
Errors such as the following indicate a problem with the kube-dns add-on or associated Services:
```
$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server: 10.0.0.10
Address 1: 10.0.0.10
nslookup: can't resolve 'kubernetes.default'
```
or
```
$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server: 10.0.0.10
Address 1: 10.0.0.10 kube-dns.kube-system.svc.cluster.local
nslookup: can't resolve 'kubernetes.default'
```
#### Check if the DNS pod is running
Use the kubectl get pods command to verify that the DNS pod is running.
```
kubectl get pods --namespace=kube-system -l k8s-app=kube-dns
```
You should see something like:
```
NAME READY STATUS RESTARTS AGE
...
kube-dns-v19-ezo1y 3/3 Running 0 1h
...
```
If you see that no pod is running or that the pod has failed/completed, the DNS add-on may not be deployed by default in your current environment and you will have to deploy it manually.
#### Check for Errors in the DNS pod
Use `kubectl logs` command to see logs for the DNS daemons.
```
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kubedns
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c dnsmasq
kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c healthz
```
See if there is any suspicious log. W, E, F letter at the beginning represent Warning, Error and Failure. Please search for entries that have these as the logging level and use [kubernetes issues](https://github.com/kubernetes/kubernetes/issues) to report unexpected errors.
#### Is DNS service up?
Verify that the DNS service is up by using the `kubectl get service` command.
```
kubectl get svc --namespace=kube-system
```
You should see:
```
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
...
kube-dns 10.0.0.10 <none> 53/UDP,53/TCP 1h
...
```
If you have created the service or in the case it should be created by default but it does not appear, see this [debugging services page](http://kubernetes.io/docs/user-guide/debugging-services/) for more information.
#### Are DNS endpoints exposed?
You can verify that DNS endpoints are exposed by using the `kubectl get endpoints` command.
```
kubectl get ep kube-dns --namespace=kube-system
```
You should see something like:
```
NAME ENDPOINTS AGE
kube-dns 10.180.3.17:53,10.180.3.17:53 1h
```
If you do not see the endpoints, see endpoints section in the [debugging services documentation](http://kubernetes.io/docs/user-guide/debugging-services/).
For additional Kubernetes DNS examples, see the [cluster-dns examples](https://github.com/kubernetes/kubernetes/tree/master/examples/cluster-dns) in the Kubernetes GitHub repository.
## Kubernetes Federation (Multiple Zone support)
Release 1.3 introduced Cluster Federation support for multi-site
Kubernetes installations. This required some minor
(backward-compatible) changes to the way
the Kubernetes cluster DNS server processes DNS queries, to facilitate
the lookup of federated services (which span multiple Kubernetes clusters).
See the [Cluster Federation Administrators' Guide](/docs/admin/federation) for more
details on Cluster Federation and multi-site support.
## How it Works
The running Kubernetes DNS pod holds 3 containers - kubedns, dnsmasq and a health check called healthz.
The kubedns process watches the Kubernetes master for changes in Services and Endpoints, and maintains
in-memory lookup structures to service DNS requests. The dnsmasq container adds DNS caching to improve
performance. The healthz container provides a single health check endpoint while performing dual healthchecks
(for dnsmasq and kubedns).
The DNS pod is exposed as a Kubernetes Service with a static IP. Once assigned the
kubelet passes DNS configured using the `--cluster-dns=10.0.0.10` flag to each
container.
DNS names also need domains. The local domain is configurable, in the kubelet using
the flag `--cluster-domain=<default local domain>`
The Kubernetes cluster DNS server (based off the [SkyDNS](https://github.com/skynetservices/skydns) library)
supports forward lookups (A records), service lookups (SRV records) and reverse IP address lookups (PTR records).
## Inheriting DNS from the node
When running a pod, kubelet will prepend the cluster DNS server and search
paths to the node's own DNS settings. If the node is able to resolve DNS names
specific to the larger environment, pods should be able to, also. See "Known
issues" below for a caveat.
If you don't want this, or if you want a different DNS config for pods, you can
use the kubelet's `--resolv-conf` flag. Setting it to "" means that pods will
not inherit DNS. Setting it to a valid file path means that kubelet will use
this file instead of `/etc/resolv.conf` for DNS inheritance.
## Known issues
Kubernetes installs do not configure the nodes' resolv.conf files to use the
cluster DNS by default, because that process is inherently distro-specific.
This should probably be implemented eventually.
Linux's libc is impossibly stuck ([see this bug from
2005](https://bugzilla.redhat.com/show_bug.cgi?id=168253)) with limits of just
3 DNS `nameserver` records and 6 DNS `search` records. Kubernetes needs to
consume 1 `nameserver` record and 3 `search` records. This means that if a
local installation already uses 3 `nameserver`s or uses more than 3 `search`es,
some of those settings will be lost. As a partial workaround, the node can run
`dnsmasq` which will provide more `nameserver` entries, but not more `search`
entries. You can also use kubelet's `--resolv-conf` flag.
If you are using Alpine version 3.3 or earlier as your base image, DNS may not
work properly owing to a known issue with Alpine. Check [here](https://github.com/kubernetes/kubernetes/issues/30215)
for more information.
## References
- [Docs for the DNS cluster addon](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/dns/README.md)
## What's next
- [Autoscaling the DNS Service in a Cluster](/docs/tasks/administer-cluster/dns-horizontal-autoscaling/).
-49
View File
@@ -1,49 +0,0 @@
---
assignees:
- lavalamp
title: Configuring Kubernetes Use of etcd
---
[etcd](https://coreos.com/etcd/docs/latest/) is a highly-available key value
store which Kubernetes uses for persistent storage of all of its REST API
objects.
## Configuration: high-level goals
Access Control: give *only* kube-apiserver read/write access to etcd. You do not
want apiserver's etcd exposed to every node in your cluster (or worse, to the
internet at large), because access to etcd is equivalent to root in your
cluster.
Data Reliability: for reasonable safety, either etcd needs to be run as a
[cluster](/docs/admin/high-availability/#clustering-etcd) (multiple machines each running
etcd) or etcd's data directory should be located on durable storage (e.g., GCE's
persistent disk). In either case, if high availability is required--as it might
be in a production cluster--the data directory ought to be [backed up
periodically](https://coreos.com/etcd/docs/2.2.1/admin_guide.html#disaster-recovery),
to reduce downtime in case of corruption.
## Default configuration
The default setup scripts use kubelet's file-based static pods feature to run etcd in a
[pod](http://releases.k8s.io/{{page.githubbranch}}/cluster/saltbase/salt/etcd/etcd.manifest). This manifest should only
be run on master VMs. The default location that kubelet scans for manifests is
`/etc/kubernetes/manifests/`.
## Kubernetes's usage of etcd
By default, Kubernetes objects are stored under the `/registry` key in etcd.
This path can be prefixed by using the [kube-apiserver](/docs/admin/kube-apiserver) flag
`--etcd-prefix="/foo"`.
`etcd` is the only place that Kubernetes keeps state.
## Troubleshooting
To test whether `etcd` is running correctly, you can try writing a value to a
test key. On your master VM (or somewhere with firewalls configured such that
you can talk to your cluster's etcd), try:
```shell
curl -fs -X PUT "http://${host}:${port}/v2/keys/_test"
```
@@ -0,0 +1,284 @@
---
assignees:
- smarterclayton
- lavalamp
- whitlockjc
- caesrxuchao
title: Dynamic Admission Control
---
* TOC
{:toc}
## Overview
The [admission controllers documentation](/docs/admin/admission-controllers/)
introduces how to use standard, plugin-style admission controllers. However,
plugin admission controllers are not flexible enough for all use cases, due to
the following:
* They need to be compiled into kube-apiserver.
* They are only configurable when the apiserver starts up.
1.7 introduces two alpha features, *Initializers* and *External Admission
Webhooks*, that address these limitations. These features allow admission
controllers to be developed out-of-tree and configured at runtime.
This page describes how to use Initializers and External Admission Webhooks.
## Initializers
### What are initializers?
*Initializer* has two meanings:
* A list of pending pre-initialization tasks, stored in every object's metadata
(e.g., "AddMyCorporatePolicySidecar").
* A user customized controller, which actually perform those tasks. The name of the task
corresponds to the controller which performs the task. For clarity, we call
them *initializer controllers* in this page.
Once the controller has performed its assigned task, it removes its name from
the list. For example, it may send a PATCH that inserts a container in a pod and
also removes its name from `metadata.initializers`. Initializers may make
mutations to objects.
Objects which have a non-empty initializer list are considered uninitialized,
and are not visible in the API unless specifically requested by using the query parameter,
`?includeUninitialized=true`.
### When to use initializers?
Initializers are useful for admins to force policies (e.g., the
[AlwaysPullImages](/docs/admin/admission-controllers/#alwayspullimages)
admission controller), or to inject defaults (e.g., the
[DefaultStorageClass](/docs/admin/admission-controllers/#defaultstorageclass)
admission controller), etc.
**Note:** If your use case does not involve mutating objects, consider using
external admission webhooks, as they have better performance.
### How are initializers triggered?
When an object is POSTed, it is checked against all existing
`initializerConfiguration` objects (explained below). For all that it matches,
all `spec.initializers[].name`s are appended to the new object's
`metadata.initializers` field.
An initializer controller should list and watch for uninitialized objects, by
using the query parameter `?includeUninitialized=true`. If using client-go, just
set
[listOptions.includeUninitialized](https://github.com/kubernetes/kubernetes/blob/v1.7.0-rc.1/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go#L315)
to true.
For the observed uninitialized objects, an initializer controller should first
check if its name matches `metadata.initializers[0]`. If so, it should then
perform its assigned task and remove its name from the list.
### Enable initializers alpha feature
*Initializers* is an alpha feature, so it is disabled by default. To turn it on,
you need to:
* Include "Initializer" in the `--admission-control` flag when starting
`kube-apiserver`. If you have multiple `kube-apiserver` replicas, all should
have the same flag setting.
* Enable the dynamic admission controller registration API by adding
`admissionregistration.k8s.io/v1alpha1` to the `--runtime-config` flag passed
to `kube-apiserver`, e.g.
`--runtime-config=admissionregistration.k8s.io/v1alpha1`. Again, all replicas
should have the same flag setting.
### Deploy an initializer controller
You should deploy an initializer controller via the [deployment
API](/docs/api-reference/v1.6/#deployment-v1beta1-apps).
### Configure initializers on the fly
You can configure what initializers are enabled and what resources are subject
to the initializers by creating `initializerconfigurations`.
You should first deploy the initializer controller and make sure that it is
working properly before creating the `initializerconfigurations`. Otherwise, any
newly created resources will be stuck in an uninitialized state.
The following is an example `initiallizerConfiguration`.
```yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: InitializerConfiguration
metadata:
name: example-config
spec:
initializers:
# the name needs to be fully qualified, i.e., containing at least two "."
- name: podimage.example.com
rules:
# apiGroups, apiVersion, resources all support wildcard "*".
# "*" cannot be mixed with non-wildcard.
- apiGroups:
- ""
apiVersions:
- v1
resources:
- pods
```
Make sure that all expansions of the `<apiGroup, apiVersions, resources>` tuple
in a `rule` are valid. If they are not, separate them in different `rules`.
After you create the `initializerConfiguration`, the system will take a few
seconds to honor the new configuration.
## External Admission Webhooks
### What are external admission webhooks?
External admission webhooks are HTTP callbacks that are intended to receive
admission requests and do something with them. What an external admission
webhook does is up to you, but there is an
[interface](https://github.com/kubernetes/kubernetes/blob/v1.7.0-rc.1/pkg/apis/admission/v1alpha1/types.go)
that it must adhere to so that it responds with whether or not the
admission request should be allowed.
Unlike initializers or the plugin-style admission controllers, external
admission webhooks are not allowed to mutate the admission request in any way.
Because admission is a high security operation, the external admission webhooks
must support TLS.
### When to use admission webhooks?
A simple example use case for an external admission webhook is to do semantic validation
of Kubernetes resources. Suppose that your infrastructure requires that all `Pod`
resources have a common set of labels, and you do not want any `Pod` to be
persisted to Kubernetes if those needs are not met. You could write your
external admission webhook to do this validation and respond accordingly.
### How are external admission webhooks triggered?
Whenever a request comes in, the `GenericAdmissionWebhook` admission plugin will
get the list of interested external admission webhooks from
`externalAdmissionHookConfiguration` objects (explained below) and call them in
parallel. If **all** of the external admission webhooks approve the admission
request, the admission chain continues. If **any** of the external admission
webhooks deny the admission request, the admission request will be denied, and
the reason for doing so will be based on the _first_ external admission webhook
denial reason. _This means if there is more than one external admission webhook
that denied the admission request, only the first will be returned to the
user._ If there is an error encountered when calling an external admission
webhook, that request is ignored and will not be used to approve/deny the
admission request.
**Note:** The admission chain depends solely on the order of the
`--admission-control` option passed to `kube-apiserver`.
### Enable external admission webhooks
*External Admission Webhooks* is an alpha feature, so it is disabled by default.
To turn it on, you need to
* Include "GenericAdmissionWebhook" in the `--admission-control` flag when
starting the apiserver. If you have multiple `kube-apiserver` replicas, all
should have the same flag setting.
* Enable the dynamic admission controller registration API by adding
`admissionregistration.k8s.io/v1alpha1` to the `--runtime-config` flag passed
to `kube-apiserver`, e.g.
`--runtime-config=admissionregistration.k8s.io/v1alpha1`. Again, all replicas
should have the same flag setting.
### Write a webhook admission controller
See [caesarxuchao/example-webhook-admission-controller](https://github.com/caesarxuchao/example-webhook-admission-controller)
for an example webhook admission controller.
The communication between the webhook admission controller and the apiserver, or
more precisely, the GenericAdmissionWebhook admission controller, needs to be
TLS secured. You need to generate a CA cert and use it to sign the server cert
used by your webhook admission controller. The pem formatted CA cert is supplied
to the apiserver via the dynamic registration API
`externaladmissionhookconfigurations.clientConfig.caBundle`.
For each request received by the apiserver, the GenericAdmissionWebhook
admission controller sends an
[admissionReview](https://github.com/kubernetes/kubernetes/blob/v1.7.0-rc.1/pkg/apis/admission/v1alpha1/types.go#L27)
to the relevant webhook admission controller. The webhook admission controller
gathers information like `object`, `oldobject`, and `userInfo`, from
`admissionReview.spec`, sends back a response with the body also being the
`admissionReview`, whose `status` field is filled with the admission decision.
### Deploy the webhook admission controller
See [caesarxuchao/example-webhook-admission-controller deployment](https://github.com/caesarxuchao/example-webhook-admission-controller/tree/master/deployment)
for an example deployment.
The webhook admission controller should be deployed via the
[deployment API](/docs/api-reference/v1.6/#deployment-v1beta1-apps).
You also need to create a
[service](/docs/api-reference/v1.6/#service-v1-core) as the
front-end of the deployment.
### Configure webhook admission controller on the fly
You can configure what webhook admission controllers are enabled and what
resources are subject to the admission controller via creating
externaladmissionhookconfigurations.
We suggest that you first deploy the webhook admission controller and make sure
it is working properly before creating the externaladmissionhookconfigurations.
Otherwise, depending whether the webhook is configured as fail open or fail
closed, operations will be unconditionally accepted or rejected.
The following is an example externaladmissionhookconfiguration.
```yaml
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: ExternalAdmissionHookConfiguration
metadata:
name: example-config
externalAdmissionHooks:
- name: pod-image.k8s.io
rules:
- apiGroups:
- ""
apiVersions:
- v1
operations:
- CREATE
resources:
- pods
failurePolicy: Ignore
clientConfig:
caBundle: <pem encoded ca cert that signs the server cert used by the webhook>
service:
name: <name of the front-end service>
namespace: <namespace of the front-end service>
```
For a request received by the apiserver, if the request matches any of the
`rules` of an `externalAdmissionHook`, the `GenericAdmissionWebhook` admission
controller will send an `admissionReview` request to the `externalAdmissionHook`
to ask for admission decision.
The `rule` is similar to the `rule` in `initializerConfiguration`, with two
differences:
* The addition of the `operations` field, specifying what operations the webhook
is interested in;
* The `resources` field accepts subresources in the form or resource/subresource.
Make sure that all expansions of the `<apiGroup, apiVersions,resources>` tuple
in a `rule` are valid. If they are not, separate them to different `rules`.
You can also specify the `failurePolicy`. In 1.7, the system supports `Ignore`
and `Fail` policies, meaning that upon a communication error with the webhook
admission controller, the `GenericAdmissionWebhook` can admit or reject the
operation based on the configured policy.
After you create the `initializerConfiguration`, the system will take a few
seconds to honor the new configuration.
+22 -22
View File
@@ -2,7 +2,6 @@
title: federation-apiserver
notitle: true
---
## federation-apiserver
@@ -26,14 +25,14 @@ federation-apiserver
--admission-control-config-file string File with admission control configuration.
--advertise-address ip The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used.
--anonymous-auth Enables anonymous requests to the secure port of the API server. Requests that are not rejected by another authentication method are treated as anonymous requests. Anonymous requests have a username of system:anonymous, and a group name of system:unauthenticated. (default true)
--apiserver-count int The number of apiservers running in the cluster. Must be a positive number. (default 1)
--audit-log-maxage int The maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
--audit-log-maxbackup int The maximum number of old audit log files to retain.
--audit-log-maxsize int The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB.
--audit-log-path string If set, all requests coming to the apiserver will be logged to this file.
--authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s)
--authentication-token-webhook-config-file string File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens.
--authorization-mode string Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC. (default "AlwaysAllow")
--authorization-policy-file string File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port.
--authorization-rbac-super-user string If specified, a username which avoids RBAC authorization checks and role binding privilege escalation checks, to be used with --authorization-mode=RBAC.
--authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. (default 5m0s)
--authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. (default 30s)
--authorization-webhook-config-file string File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port.
@@ -43,7 +42,7 @@ federation-apiserver
--client-ca-file string If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate.
--cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file.
--cloud-provider string The provider for cloud services. Empty string for no provider.
--contention-profiling Enable contention profiling. Requires --profiling to be set to work.
--contention-profiling Enable lock contention profiling, if profiling is enabled
--cors-allowed-origins stringSlice List of allowed origins for CORS, comma separated. An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled.
--delete-collection-workers int Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. (default 1)
--deserialization-cache-size int Number of deserialized json objects to cache in memory.
@@ -52,29 +51,33 @@ federation-apiserver
--etcd-cafile string SSL Certificate Authority file used to secure etcd communication.
--etcd-certfile string SSL certification file used to secure etcd communication.
--etcd-keyfile string SSL key file used to secure etcd communication.
--etcd-prefix string The prefix for all resource paths in etcd. (default "/registry")
--etcd-prefix string The prefix to prepend to all resource paths in etcd. (default "/registry")
--etcd-quorum-read If true, enable quorum read.
--etcd-servers stringSlice List of etcd servers to connect with (scheme://ip:port), comma separated.
--etcd-servers-overrides stringSlice Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated.
--event-ttl duration Amount of time to retain events. Default is 1h. (default 1h0m0s)
--experimental-bootstrap-token-auth Enable to allow secrets of type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication.
--experimental-keystone-ca-file string If set, the Keystone server's certificate will be verified by one of the authorities in the experimental-keystone-ca-file, otherwise the host's root CA set will be used.
--experimental-keystone-url string If passed, activates the keystone authentication plugin.
--external-hostname string The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs).
--feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
Accelerators=true|false (ALPHA - default=false)
AffinityInAnnotations=true|false (ALPHA - default=false)
AllAlpha=true|false (ALPHA - default=false)
AllowExtTrafficLocalEndpoints=true|false (BETA - default=true)
AppArmor=true|false (BETA - default=true)
DynamicKubeletConfig=true|false (ALPHA - default=false)
DynamicVolumeProvisioning=true|false (ALPHA - default=true)
ExperimentalHostUserNamespaceDefaulting=true|false (ALPHA - default=false)
StreamingProxyRedirects=true|false (ALPHA - default=false)
ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)
StreamingProxyRedirects=true|false (BETA - default=true)
TaintBasedEvictions=true|false (ALPHA - default=false)
--insecure-allow-any-token username/group1,group2 If set, your server will be INSECURE. Any token will be allowed and user information will be parsed from the token as username/group1,group2
--insecure-bind-address ip The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. (default 127.0.0.1)
--insecure-port int The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080)
--kubernetes-service-node-port int If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP.
--long-running-request-regexp string A regular expression matching long running requests which should be excluded from maximum inflight request handling. (default "(/|^)((watch|proxy)(/|$)|(logs?|portforward|exec|attach)/?$)")
--master-service-namespace string DEPRECATED: the namespace from which the kubernetes master services should be injected into pods. (default "default")
--max-requests-inflight int The maximum number of requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 400)
--max-mutating-requests-inflight int The maximum number of mutating requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 200)
--max-requests-inflight int The maximum number of non-mutating requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 400)
--min-request-timeout int An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. (default 1800)
--oidc-ca-file string If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used.
--oidc-client-id string The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set.
@@ -84,16 +87,18 @@ StreamingProxyRedirects=true|false (ALPHA - default=false)
--profiling Enable profiling via web interface host:port/debug/pprof/ (default true)
--requestheader-allowed-names stringSlice List of client certificate common names to allow to provide usernames in headers specified by --requestheader-username-headers. If empty, any client certificate validated by the authorities in --requestheader-client-ca-file is allowed.
--requestheader-client-ca-file string Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers
--requestheader-extra-headers-prefix stringSlice List of request header prefixes to inspect. X-Remote-Extra- is suggested.
--requestheader-group-headers stringSlice List of request headers to inspect for groups. X-Remote-Group is suggested.
--requestheader-username-headers stringSlice List of request headers to inspect for usernames. X-Remote-User is common.
--runtime-config mapStringString A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively.
--secure-port int The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 6443)
--service-cluster-ip-range ipNet A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods.
--service-node-port-range portRange A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range. (default 30000-32767)
--storage-backend string The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'.
--storage-media-type string The media type to use to store objects in storage. Defaults to application/json. Some resources may only support a specific media type and will ignore this setting. (default "application/json")
--storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1beta1,authentication.k8s.io/v1beta1,authorization.k8s.io/v1beta1,autoscaling/v1,batch/v1,certificates.k8s.io/v1alpha1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1beta1,rbac.authorization.k8s.io/v1alpha1,storage.k8s.io/v1beta1,v1")
--service-account-key-file stringArray File containing PEM-encoded x509 RSA or ECDSA private or public keys, used to verify ServiceAccount tokens. If unspecified, --tls-private-key-file is used. The specified file can contain multiple keys, and the flag can be specified multiple times with different files.
--service-account-lookup If true, validate ServiceAccount tokens exist in etcd as part of authentication.
--storage-backend string The storage backend for persistence. Options: 'etcd3' (default), 'etcd2'.
--storage-media-type string The media type to use to store objects in storage. Some resources or storage backends may only support a specific media type and will ignore this setting. (default "application/vnd.kubernetes.protobuf")
--storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1beta1,authentication.k8s.io/v1,authorization.k8s.io/v1,autoscaling/v1,batch/v1,certificates.k8s.io/v1beta1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1beta1,rbac.authorization.k8s.io/v1beta1,settings.k8s.io/v1alpha1,storage.k8s.io/v1beta1,v1")
--target-ram-mb int Memory limit for apiserver in MB (used to configure sizes of caches, etc.)
--tls-ca-file string If set, this certificate authority will used for secure access from Admission Controllers. This must be a valid PEM-encoded CA bundle.
--tls-ca-file string If set, this certificate authority will used for secure access from Admission Controllers. This must be a valid PEM-encoded CA bundle. Altneratively, the certificate authority can be appended to the certificate provided by --tls-cert-file.
--tls-cert-file string File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes.
--tls-private-key-file string File containing the default x509 private key matching --tls-cert-file.
--tls-sni-cert-key namedCertKey A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.key,example.crt" or "*.foo.com,foo.com:foo.key,foo.crt". (default [])
@@ -102,9 +107,4 @@ StreamingProxyRedirects=true|false (ALPHA - default=false)
--watch-cache-sizes stringSlice List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled.
```
###### Auto generated by spf13/cobra on 13-Dec-2016
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/federation-apiserver.md?pixel)]()
<!-- END MUNGE: GENERATED_ANALYTICS -->
###### Auto generated by spf13/cobra on 21-Mar-2017
+5 -9
View File
@@ -1,8 +1,7 @@
---
title: federation-controller-mananger
title: federation-controller-manager
notitle: true
---
## federation-controller-manager
@@ -29,7 +28,9 @@ federation-controller-manager
--cluster-monitor-period duration The period for syncing ClusterStatus in ClusterController. (default 40s)
--concurrent-replicaset-syncs int The number of ReplicaSets syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 10)
--concurrent-service-syncs int The number of service syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 10)
--dns-provider string DNS provider. Valid values are: ["google-clouddns" "aws-route53"]
--contention-profiling Enable lock contention profiling, if profiling is enabled
--controllers mapStringString A set of key=value pairs that describe controller configuration to enable/disable specific controllers. Key should be the resource name (like services) and value should be true or false. For example: services=false,ingresses=false
--dns-provider string DNS provider. Valid values are: ["aws-route53" "coredns" "google-clouddns"]
--dns-provider-config string Path to config file for configuring DNS provider.
--federated-api-burst int Burst to use while talking with federation apiserver (default 30)
--federated-api-qps float32 QPS to use while talking with federation apiserver (default 20)
@@ -48,9 +49,4 @@ federation-controller-manager
--zone-name string Zone name, like example.com.
```
###### Auto generated by spf13/cobra on 13-Dec-2016
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/federation-controller-manager.md?pixel)]()
<!-- END MUNGE: GENERATED_ANALYTICS -->
###### Auto generated by spf13/cobra on 21-Mar-2017
+6 -4
View File
@@ -3,9 +3,11 @@ assignees:
- madhusudancs
- mml
- nikhiljindal
title: Using `federation-up` and `deploy.sh`
title: (Deprecated) Using `federation-up` and `deploy.sh`
---
## The mechanisms explained in this doc to setup federation are deprecated. [`kubefed`](/docs/tutorials/federation/set-up-cluster-federation-kubefed/) is now the recommended way to deploy federation.
This guide explains how to set up cluster federation that lets us control multiple Kubernetes clusters.
@@ -127,7 +129,7 @@ $ federation/deploy/deploy.sh deploy_federation
```
This spins up the federation control components as pods managed by
[`Deployments`](http://kubernetes.io/docs/user-guide/deployments/) on your
[`Deployments`](/docs/concepts/workloads/controllers/deployment/) on your
existing Kubernetes cluster. It also starts a
[`type: LoadBalancer`](http://kubernetes.io/docs/user-guide/services/#type-loadbalancer)
[`Service`](http://kubernetes.io/docs/user-guide/services/) for the
@@ -245,7 +247,7 @@ federation, and
in your federation DNS.
You can find more details about config maps in general at
http://kubernetes.io/docs/user-guide/configmap/.
[config map](http://kubernetes.io/docs/user-guide/configmap/).
### Kubernetes 1.4 and earlier: Setting federations flag on kube-dns-rc
@@ -383,4 +385,4 @@ if required.
## For more information
* [Federation proposal](https://github.com/kubernetes/kubernetes/blob/{{page.githubbranch}}/docs/proposals/federation.md) details use cases that motivated this work.
* [Federation proposal](https://git.k8s.io/community/contributors/design-proposals/federation.md) details use cases that motivated this work.
-208
View File
@@ -1,208 +0,0 @@
---
assignees:
- madhusudancs
title: Setting up Cluster Federation with Kubefed
---
* TOC
{:toc}
Kubernetes version 1.5 includes a new command line tool called
`kubefed` to help you administrate your federated clusters.
`kubefed` helps you to deploy a new Kubernetes cluster federation
control plane, and to add clusters to or remove clusters from an
existing federation control plane.
This guide explains how to administer a Kubernetes Cluster Federation
using `kubefed`.
> Note: `kubefed` is an alpha feature in Kubernetes 1.5.
## Prerequisites
This guide assumes that you have a running Kubernetes cluster. Please
see one of the [getting started](/docs/getting-started-guides/) guides
for installation instructions for your platform.
## Getting `kubefed`
Download the client tarball corresponding to Kubernetes version 1.5
or later
[from the release page](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md),
extract the binaries in the tarball to one of the directories
in your `$PATH` and set the executable permission on those binaries.
Note: The URL in the curl command below downloads the binaries for
Linux amd64. If you are on a different platform, please use the URL
for the binaries appropriate for your platform. You can find the list
of available binaries on the [release page](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#client-binaries-3)
```shell
curl -O https://storage.googleapis.com/kubernetes-release/release/v1.5.0/kubernetes-client-linux-amd64.tar.gz
tar -xzvf kubernetes-client-linux-amd64.tar.gz
sudo cp kubernetes/client/bin/kubefed /usr/local/bin
sudo chmod +x /usr/local/bin/kubefed
sudo cp kubernetes/client/bin/kubectl /usr/local/bin
sudo chmod +x /usr/local/bin/kubectl
```
## Choosing a host cluster.
You'll need to choose one of your Kubernetes clusters to be the
*host cluster*. The host cluster hosts the components that make up
your federation control plane. Ensure that you have a `kubeconfig`
entry in your local `kubeconfig` that corresponds to the host cluster.
You can verify that you have the required `kubeconfig` entry by
running:
```shell
kubectl config get-contexts
```
The output should contain an entry corresponding to your host cluster,
similar to the following:
```
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1 gke_myproject_asia-east1-b_gce-asia-east1
```
You'll need to provide the `kubeconfig` context (called name in the
entry above) for your host cluster when you deploy your federation
control plane.
## Deploying a federation control plane.
"To deploy a federation control plane on your host cluster, run
`kubefed init` command. When you use `kubefed init`, you must provide
the following:
* Federation name
* `--host-cluster-context`, the `kubeconfig` context for the host cluster
* `--dns-zone-name`, a domain name suffix for your federated services
The following example command deploys a federation control plane with
the name `fellowship`, a host cluster context `rivendell`, and the
domain suffix `example.com`:
```shell
kubefed init fellowship --host-cluster-context=rivendell --dns-zone-name="example.com"
```
The domain suffix you specify in `--dns-zone-name` must be an existing
domain that you control, and that is programmable by your DNS provider.
`kubefed init` sets up the federation control plane in the host
cluster and also adds an entry for the federation API server in your
local kubeconfig. Note that in the alpha release in Kubernetes 1.5,
`kubefed init` does not automatically set the current context to the
newly deployed federation. You can set the current context manually by
running:
```shell
kubectl config use-context fellowship
```
where `fellowship` is the name of your federation.
## Adding a cluster to a federation
Once you've deployed a federation control plane, you'll need to make
that control plane aware of the clusters it should manage. You can add
a cluster to your federation by using the `kubefed join` command.
To use `kubefed join`, you'll need to provide the name of the cluster
you want to add to the federation, and the `--host-cluster-context`
for the federation control plane's host cluster.
The following example command adds the cluster `gondor` to the
federation with host cluster `rivendell`:
```
kubefed join gondor --host-cluster-context=rivendell
```
> Note: Kubernetes requires that you manually join clusters to a
federation because the federation control plane manages only those
clusters that it is responsible for managing. Adding a cluster tells
the federation control plane that it is responsible for managing that
cluster.
### Naming rules and customization
The cluster name you supply to `kubefed join` must be a valid RFC 1035
label.
Furthermore, federation control plane requires credentials of the
joined clusters to operate on them. These credentials are obtained
from the local kubeconfig. `kubefed join` uses the cluster name
specified as the argument to look for the cluster's context in the
local kubeconfig. If it fails to find a matching context, it exits
with an error.
This might cause issues in cases where context names for each cluster
in the federation don't follow
[RFC 1035](https://www.ietf.org/rfc/rfc1035.txt) label naming rules.
In such cases, you can specify a cluster name that conforms to the
[RFC 1035](https://www.ietf.org/rfc/rfc1035.txt) label naming rules
and specify the cluster context using the `--cluster-context` flag.
For example, if context of the cluster your are joining is
`gondor_needs-no_king`, then you can join the cluster by running:
```shell
kubefed join gondor --host-cluster-context=rivendell --cluster-context=gondor_needs-no_king
```
#### Secret name
Cluster credentials required by the federation control plane as
described above are stored as a secret in the host cluster. The name
of the secret is also derived from the cluster name.
However, the name of a secret object in Kubernetes should conform
to the DNS subdomain name specification described in
[RFC 1123](https://tools.ietf.org/html/rfc1123). If this isn't the
case, you can pass the secret name to `kubefed join` using the
`--secret-name` flag. For example, if the cluster name is `noldor` and
the secret name is `11kingdom`, you can join the cluster by
running:
```shell
kubefed join noldor --host-cluster-context=rivendell --secret-name=11kingdom
```
Note: If your cluster name does not conform to the DNS subdomain name
specification, all you need to do is supply the secret name via the
`--secret-name` flag. `kubefed join` automatically creates the secret
for you.
## Removing a cluster from a federation
To remove a cluster from a federation, run the `kubefed unjoin`
command with the cluster name and the federation's
`--host-cluster-context`:
```
kubefed unjoin gondor --host-cluster-context=rivendell
```
## Turning down the federation control plane:
Proper cleanup of federation control plane is not fully implemented in
this alpha release of `kubefed`. However, for the time being, deleting
the federation system namespace should remove all the resources except
the persistent storage volume dynamically provisioned for the
federation control plane's etcd. You can delete the federation
namespace by running the following command:
```
$ kubectl delete ns federation-system
```
-56
View File
@@ -1,56 +0,0 @@
---
assignees:
- mikedanese
title: Configuring kubelet Garbage Collection
---
* TOC
{:toc}
Garbage collection is a helpful function of kubelet that will clean up unused images and unused containers. Kubelet will perform garbage collection for containers every minute and garbage collection for images every five minutes.
External garbage collection tools are not recommended as these tools can potentially break the behavior of kubelet by removing containers expected to exist.
### Image Collection
Kubernetes manages lifecycle of all images through imageManager, with the cooperation
of cadvisor.
The policy for garbage collecting images takes two factors into consideration:
`HighThresholdPercent` and `LowThresholdPercent`. Disk usage above the high threshold
will trigger garbage collection. The garbage collection will delete least recently used images until the low
threshold has been met.
### Container Collection
The policy for garbage collecting containers considers three user-defined variables. `MinAge` is the minimum age at which a container can be garbage collected. `MaxPerPodContainer` is the maximum number of dead containers any single
pod (UID, container name) pair is allowed to have. `MaxContainers` is the maximum number of total dead containers. These variables can be individually disabled by setting 'MinAge' to zero and setting 'MaxPerPodContainer' and 'MaxContainers' respectively to less than zero.
Kubelet will act on containers that are unidentified, deleted, or outside of the boundaries set by the previously mentioned flags. The oldest containers will generally be removed first. 'MaxPerPodContainer' and 'MaxContainer' may potentially conflict with each other in situations where retaining the maximum number of containers per pod ('MaxPerPodContainer') would go outside the allowable range of global dead containers ('MaxContainers'). 'MaxPerPodContainer' would be adjusted in this situation: A worst case scenario would be to downgrade 'MaxPerPodContainer' to 1 and evict the oldest containers. Additionally, containers owned by pods that have been deleted are removed once they are older than `MinAge`.
Containers that are not managed by kubelet are not subject to container garbage collection.
### User Configuration
Users can adjust the following thresholds to tune image garbage collection with the following kubelet flags :
1. `image-gc-high-threshold`, the percent of disk usage which triggers image garbage collection.
Default is 90%.
2. `image-gc-low-threshold`, the percent of disk usage to which image garbage collection attempts
to free. Default is 80%.
We also allow users to customize garbage collection policy through the following kubelet flags:
1. `minimum-container-ttl-duration`, minimum age for a finished container before it is
garbage collected. Default is 1 minute.
2. `maximum-dead-containers-per-container`, maximum number of old instances to retain
per container. Default is 2.
3. `maximum-dead-containers`, maximum number of old instances of containers to retain globally.
Default is 100.
Containers can potentially be garbage collected before their usefulness has expired. These containers
can contain logs and other data that can be useful for troubleshooting. A sufficiently large value for
`maximum-dead-containers-per-container` is highly recommended to allow at least 2 dead containers to be
retained per expected container. A higher value for `maximum-dead-containers` is also recommended for a
similar reason.
See [this issue](https://github.com/kubernetes/kubernetes/issues/13287) for more details.
-158
View File
@@ -1,158 +0,0 @@
---
assignees:
- jszczepkowski
title: Setting up High-Availability Kubernetes Masters
---
* TOC
{:toc}
Kubernetes version 1.5 adds alpha support for replicating Kubernetes masters in `kube-up` or `kube-down` scripts for Google Compute Engine.
This document describes how to use kube-up/down scripts to manage highly available (HA) masters and how HA masters are implemented for use with GCE.
## Starting an HA-compatible cluster
To create a new HA-compatible cluster, you must set the following flags in your `kube-up` script:
* `MULTIZONE=true` - to prevent removal of master replicas kubelets from zones different than server's default zone.
Required if you want to run master replicas in different zones, which is recommended.
* `ENABLE_ETCD_QUORUM_READS=true` - to ensure that reads from all API servers will return most up-to-date data.
If true, reads will be directed to leader etcd replica.
Setting this value to true is optional: reads will be more reliable but will also be slower.
Optionally, you can specify a GCE zone where the first master replica is to be created.
Set the following flag:
* `KUBE_GCE_ZONE=zone` - zone where the first master replica will run.
The following sample command sets up a HA-compatible cluster in the GCE zone europe-west1-b:
```shell
$ MULTIZONE=true KUBE_GCE_ZONE=europe-west1-b ENABLE_ETCD_QUORUM_READS=true ./cluster/kube-up.sh
```
Note that the commands above create a cluster with one master;
however, you can add new master replicas to the cluster with subsequent commands.
## Adding a new master replica
After you have created an HA-compatible cluster, you can add master replicas to it.
You add master replicas by using a `kube-up` script with the following flags:
* `KUBE_REPLICATE_EXISTING_MASTER=true` - to create a replica of an existing
master.
* `KUBE_GCE_ZONE=zone` - zone where the master replica will run.
Must be in the same region as other replicas' zones.
You don't need to set the `MULTIZONE` or `ENABLE_ETCD_QUORUM_READS` flags,
as those are inherited from when you started your HA-compatible cluster.
The following sample command replicates the master on an existing HA-compatible cluster:
```shell
$ KUBE_GCE_ZONE=europe-west1-c KUBE_REPLICATE_EXISTING_MASTER=true ./cluster/kube-up.sh
```
## Removing a master replica
You can remove a master replica from an HA cluster by using a `kube-down` script with the following flags:
* `KUBE_DELETE_NODES=false` - to restrain deletion of kubelets.
* `KUBE_GCE_ZONE=zone` - the zone from where master replica will be removed.
* `KUBE_REPLICA_NAME=replica_name` - (optional) the name of master replica to remove.
If empty: any replica from the given zone will be removed.
The following sample command removes a master replica from an existing HA cluster:
```shell
$ KUBE_DELETE_NODES=false KUBE_GCE_ZONE=europe-west1-c ./cluster/kube-down.sh
```
## Handling master replica failures
If one of the master replicas in your HA cluster fails,
the best practice is to remove the replica from your cluster and add a new replica in the same zone.
The following sample commands demonstrate this process:
1. Remove the broken replica:
```shell
$ KUBE_DELETE_NODES=false KUBE_GCE_ZONE=replica_zone KUBE_REPLICA_NAME=replica_name ./cluster/kube-down.sh
```
<ol start="2"><li>Add a new replica in place of the old one:</li></ol>
```shell
$ KUBE_GCE_ZONE=replica-zone KUBE_REPLICATE_EXISTING_MASTER=true ./cluster/kube-up.sh
```
## Best practices for replicating masters for HA clusters
* Try to place masters replicas in different zones. During a zone failure, all master placed inside the zone will fail.
To survive zone failure, also place nodes in multiple zones
(see [multiple-zones](http://kubernetes.io/docs/admin/multiple-zones/) for details).
* Do not use a cluster with two master replicas. Consensus on a two replica cluster requires both replicas running when changing persistent state.
As a result, both replicas are needed and a failure of any replica turns cluster into majority failure state.
A two-replica cluster is thus inferior, in terms of HA, to a single replica cluster.
* When you add a master replica, cluster state (etcd) is copied to a new instance.
If the cluster is large, it may take a long time to duplicate its state.
This operation may be sped up by migrating etcd data directory, as described [here](https://coreos.com/etcd/docs/latest/admin_guide.html#member-migration)
(we are considering adding support for etcd data dir migration in future).
## Implementation notes
![](ha-master-gce.png)
### Overview
Each of master replicas will run the following components in the following mode:
* etcd instance: all instances will be clustered together using consensus;
* API server: each server will talk to local etcd - all API servers in the cluster will be available;
* controllers, scheduler, and cluster auto-scaler: will use lease mechanism - only one instance of each of them will be active in the cluster;
* add-on manager: each manager will work independently trying to keep add-ons in sync.
In addition, there will be a load balancer in front of API servers that will route external and internal traffic to them.
### Load balancing
When starting the second master replica, a load balancer containing the two replicas will be created
and the IP address of the first replica will be promoted to IP address of load balancer.
Similarly, after removal of the penultimate master replica, the load balancer will be removed and its IP address will be assigned to the last remaining replica.
Please note that creation and removal of load balancer are complex operations and it may take some time (~20 minutes) for them to propagate.
### Master service & kubelets
Instead of trying to keep an up-to-date list of Kubernetes apiserver in the Kubernetes service,
the system directs all traffic to the external IP:
* in one master cluster the IP points to the single master,
* in multi-master cluster the IP points to the load balancer in-front of the masters.
Similarly, the external IP will be used by kubelets to communicate with master.
### Master certificates
Kubernetes generates Master TLS certificates for the external public IP and local IP for each replica.
There are no certificates for the ephemeral public IP for replicas;
to access a replica via its ephemeral public IP, you must skip TLS verification.
### Clustering etcd
To allow etcd clustering, ports needed to communicate between etcd instances will be opened (for inside cluster communication).
To make such deployment secure, communication between etcd instances is authorized using SSL.
## Additional reading
[Automated HA master deployment - design doc](https://github.com/kubernetes/kubernetes/blob/master/docs/design/ha_master.md)
+1 -1
View File
@@ -4,5 +4,5 @@ MASTER_IP=<insert-ip-here>
DNS_IP=<insert-dns-ip-here>
DAEMON_ARGS="$DAEMON_ARGS --api-servers=https://${MASTER_IP} --enable-debugging-handlers=true --cloud-provider=
gce --config=/etc/kubernetes/manifests --allow-privileged=False --v=2 --cluster-dns=${DNS_IP} --cluster-domain=c
gce --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=False --v=2 --cluster-dns=${DNS_IP} --cluster-domain=c
luster.local --configure-cbr0=true --cgroup-root=/ --system-container=/system "

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