* Update docs for fields allowed at root of CRD schema (#9973)
* add plugin docs and examples (#10053)
* docs update to promote TaintNodesByCondition to beta (#9626)
* HPA Specificity Improvements (#8757)
Updated the HPA docs to reference the `autoscaling/v2beta2` API version,
and added documentation about the new fields.
* adjust docs for pod ready++ (#10049)
* Remove --cadvisor-port - has been deprecated since v1.10 (#10023)
Change-Id: Id2a685473a243aef492a98ff450759f39e362557
* Add Documentation for Snapshot Feature (#9948)
* Add documentation for snapshot feature
* Update volume-snapshots.md
* Add dry-run to api-concepts (#10033)
* kubeadm-init: Update the offline support section (#10062)
The update includes the following things (in mind with Kubernetes 1.12):
- Remove the 1.8 image versions
- Add the 1.10 image versions that were missing until now
- Include a comment for the missing arch suffixes in 1.12
Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
* Say bye to `DynamicProvisioningScheduling` (#10157)
The mentioned feature gate is now collapsed into `VolumeScheduling`.
xref: kubernetes/kubernetes#67432
* Update ResourceQuota per PriorityClass state for 1.12 (#10229)
* TokenRequest and TokenRequestProjection now beta (#10161)
xref: kubernetes/kubernetes#67349
* Change feature state for kms provider to beta. (#10230)
KMS Provider will be graduating to beta in v1.12, reflecting this change on the website.
* coredns default (#10200)
* Promote ShareProcessNamespace to beta in docs (#9996)
* Add CoreDNS details to DNS Debug docs (#10201)
* add coredns details
* address nits, add query logging section
* Update docs with topology aware dynamic provisioning (#9939)
* Document topology aware volume binding feature
* update for readability
* Update storage-classes.md
* comma splice
* don't abbreviate
* HPA Algorithm Information Improvements (#9780)
* Update HPA docs with more algorithm details
The HPA docs pointed to an out-of-date document for information on the
algorithm details, which users were finding confusing. This sticks a
section on the algorithm in the HPA docs instead, documenting both
general behavior and corner cases.
* Add glossary info, HPA docs on quantities
People often ask about the quantity notation when working with the
metrics APIs, so this adds a glossary entry on quantities (since they're
used elsewhere in the system), and a short explantation in the HPA walkthough.
* Information about HPA readiness and stabilization
This adds information about the new changes to HPA readiness and
stabilization from kubernetes/features#591, and other minor changes that
landed in Kubernetes 1.12.
* Update horizontal-pod-autoscale.md
* Audit 1.12 doc (#9953)
* audit 1.12 document
* remove legacy audit feature
https://github.com/kubernetes/kubernetes/pull/65862
* update feature gate doc
* MountPropagation is now GA (#10090)
* RuntimeClass documentation (#10102)
* RuntimeClass documentation
* Update runtime-class.md
* Add documentation for Scheduler performance tuning (#10048)
* Add documentation for Scheduler performance tuning
* Update scheduler-perf-tuning.md
* TTL controller for cleaning up finished resources (#10064)
* TTL controller for cleaning up finished resources
* Address comments
* Update ttlafterfinished.md
* Bump quota configuration api version (#10217)
* Incremental update from master (#10278)
* fix invalid href of cloud controller manager (#10240)
* fix invalid yaml format (#10238)
* update storage-limits doc with Azure disk part (#10224)
update storage-limits doc with Azure disk part
fix comments
* Update kubelet-config-file.md (#10222)
Update link to KubeletConfiguration struct.
* fix a trivial misspelling (#10244)
* Fix cassandra-statefulset.yaml indent level (#10243)
* Mention minimum etcd versions (#10208)
Source: https://groups.google.com/d/msg/kubernetes-dev/jMPA4JzKiY4/HIx2ugvLBAAJ
* fix 404 error (#10250)
* Small verb tweak (#10190)
Present participle, ftw.
* Add AnchorJS logic for header links (#10155)
* Add AnchorJS JavaScript
* Remove existing inpage_heading logic
* Remove underline from anchor tags
* Use single icon and add touch visibility
* Use paragraph link icon for AnchorJS
* Update Sass to use code formatting in docsContent headers
* Update header size coverage to H3-H6
* fix broken link in kubefed.md (#10254)
* Update the version numbers for the X-Remote-Extra- and Impersonate-Extra- key fixes (#9827)
The fix was cherry picked into 1.11.3, 1.10.7, and 1.9.11:
https://github.com/kubernetes/kubernetes/pull/67162https://github.com/kubernetes/kubernetes/pull/67163https://github.com/kubernetes/kubernetes/pull/67164
* fix typo (#10168)
* fix typo
* addressing comments.
* Update setup-ha-etcd-with-kubeadm.md
* fix typos (#10252)
* fix description of contribute guide (#10253)
* describe truncate feature about advanced audit (#10236)
* describe truncate feature about advanced audit
* Update audit.md
* docs update to promote ScheduleDaemonSetPods to beta (#9923)
* Dynamic volume limit updates for 1.12 (#10211)
* add a placeholder commit
* Update docs for csi volume limits
* Update storage-limits.md
* Add "MayRunAs" value among other GroupStrategies (#9888)
* Add CoreDNS details to the customize DNS doc (#10228)
* Add CoreDNS details to the customize DNS doc
Rewrite the document to include more details about CoreDNS, since it's now the default from v1.12
* Address comments
* Improve doc wording
* Fix link
* Update dns-custom-nameservers.md
* Update dns-custom-nameservers.md
* Fix secrets docs in 1.12 branch (#10056)
* Fix secrets docs
* Update secret.md
* Revert CoreDNS Docs (#10319)
* Revert "Add CoreDNS details to DNS Debug docs (#10201)"
This reverts commit 462817a674.
* Revert "Add CoreDNS details to the customize DNS doc (#10228)"
This reverts commit e7319eeb8c.
* Revert "coredns default (#10200)"
This reverts commit 698e93b441.
* Add CRI installation instructions page
Added cri-installation page with CRI installation instructions
Referenced it from kubeadm-init and install-kubeadm pages.
* kubeadm: update API types documentation for 1.12 (#10283)
v1alpha2 -> v1alpha3
MasterConfiguration -> [new-api-types]
* TokenRequest feature documentation (#10295)
* AdvancedAuditing is now GA (#10156)
xref: kubernetes/kubernetes#65862
`AdvancedAuditing` feature is GA in 1.12. This PR adjusts the related
docs.
* update runtime-class.md (#10332)
* update runtime-class.md
* Update runtime-class.md
* Document cross-authorizer permissions for creating RBAC roles (#10015)
* Document cross-authorizer permissions for creating RBAC roles
* Update rbac.md
* kubeadm: update authored content for 1.12 (reference docs and cluster creation) (#10348)
* kubeadm: update authored content in reference docs for 1.12
* kubeadm: add time frame in create-cluster-kubeadm for 1.12
* add AllowedProcMountTypes and ProcMountType to docs (#9911)
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
* kubeadm: add new command line reference (#10306)
Add:
- placeholder files
- include place holder files
- include "renew" sub command
- add missing tabs for "alpha phase kubelet"
* Documenting SCTP support in Kubernetes (#10279)
* Documenting SCTP support in Kubernetes Service, Endpoint, NetworkPolicy and Pod
* Updates based on comments on the PR
* kubectl expose update with SCTP support
* Updated according to comments in the PR
* Revert "kubectl expose update with SCTP support"
This reverts commit 0d5a1e6720a012390cf100c83e16b4a8c0782356.
* TLS Bootstrap and Server Cert Rotation feature documentation (#10232)
* TokenRequest feature documentation
* line wrapping to make review not insane
* update content for GA without major refactor
* Update kubelet-tls-bootstrapping.md
* Add clarifications for volume snapshots (#10296)
* Update kubadm ha installation for 1.12 (#10264)
* Update kubadm ha installation for 1.12
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* update stable version
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* Update stacked control plane for v1.12 (#2)
* use v1alpha3
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* more v1alpha3 (#4)
* updates
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* Document how to run in-tree cloud providers with kubeadm (#10357)
Change-Id: Iab6b996a830503d74a6eb0c507c5f8ca7a39235b
* kubeadm reference doc for release 1.12 (#10359)
* Revert "Revert "Add CoreDNS details to DNS Debug docs (#10201)""
This reverts commit bb30f4d1fcd6fba2fe6190778ead99f8010033b7.
* Revert "Revert "Add CoreDNS details to the customize DNS doc (#10228)""
This reverts commit bc23d45c09d7b83cac130fe22a0bd91e72435862.
* Revert "Revert "coredns default (#10200)""
This reverts commit 7f4350d6ab7fc554ee53126d3875e845d2e43d1f.
* add missing instruction for ha guide (#10374)
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* kubeadm - Ha upgrade updates (#10340)
* Update HA upgrade docs
* Adds external etcd HA upgrade guide
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* copyedit
* more edits
* add runasgroup in psp (#10076)
* update KubeletPluginsWatcher feature gate (#10205)
* generated 1.12 docs
* Building Multi-arch images with Manifests (#10379)
In 1.12, a variety of images used in a typical kubernetes installation
have started to using manifests to better support environments with arm
or ppc64le architectures. For example all images used with kubeadm by
default have manifests, another would be all the tests in the
conformance test suite. Here we capture the best practices for everyone
to start using manifests in their own workflows.
Change-Id: I5ba4c5fe55ffc9486a8251760f3352be4f2e1494
* Upgrade docs for v1.12 (#10344)
* generated assets and docs
* remove 1.7
* update 1.12
* update plugin documentation under docs>tasks>extend-kubectl (#10259)
* update plugin documentation under docs>tasks>extend-kubectl
* Update kubectl-plugins.md
* Added content to Setup index
* Alphabetized providers
* Update _index.md
* Make Turnkey Cloud Solutions a H2 for toc
* Updated from Andrew's Comments
* fixing headings
* add new turnkey cloud solution to setup: ICP on
multiple clouds
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* Updated ICP Multiple Cloud URL and IBM Cloud table entry
* small tweak to kick off redeploy
when i hit the command
`kubectl patch serviceaccount default -p '{\"imagePullSecrets\": [{\"name\": \"myregistrykey\"}]}'`
then i got this error
`Error from server (BadRequest): invalid character '\\' looking for beginning of object key string`
But i stripped all back slashes, and it worked.
If this issue is caused only in my specific environment,
close this pull-request.
My environment is ...
- Docker for Mac: Version 18.06.0-ce-mac70 (26399), Kubernetes: v1.10.3
* The fix clicks the error hyperlink that 'here' appears
The fix clicks the error hyperlink that 'here' appears
The fix clicks the error hyperlink that 'here' appears
* Update link path to k/examples
* WIP - rework update imported docs
* Rework tool/doc for updating reference docs
This PR reimplement the reference docs generator in Python and fixes
some outdated docs and data:
- Do docs import using Python because the GoLang version of tool has
some following drawbacks:
* its not convenient for handling YAML config files
* it has to be compiled to binaries to run on different platforms
* for every tiny changes you need to compile a new version and check in
- The reference docs we use in website are actually not coming directly
from `kubernetes/kubernetes`. Most of them come from the `reference-docs`
project. The configuration files are thus changed to avoid confusion.
- We have changed the location of generated docs so the default configuration
files and the docs are updated.
* Fix Markdown on documentation for install-kubectl
Section modified: "Install with Powershell from PSGallery"
* Update install-kubectl.md
* Feedback from PR review with gramamtically incorect sentence and markdown rendering in install-kubectl.md
Update install-kubectl.md
Update install-kubectl.md
Update install-kubectl.md
Update install-kubectl.md
* Clean up inline markup and links
- Clean up inline markup in html headers
- Fix links on page and related page
- Clean up some wording and add links to tutorial and concepts
* Update scale-stateful-set.md
Kubelet doesn't prepend the cluster DNS server to the nodes's DNS
settings, neither for Pods with "ClusterFirst" dnsPolicy nor Pods with
"default" dnsPolicy.
Only pods with "default" dnsPolicy inherit DNS from nodes, without the
cluster DNS server prepended.
* Make navigation and UI strings i18n friendly
This commit
* Extracts most UI strings into i18n bundles so they can be translated
* Makes a proper Hugo menu out of the hardcoded menu that is shown on smaller screens
* Changes the language selector logic to navigate to the current page in the other language if possible (e.g. the translation). If not possible, it takes you to the home page for that language.
For testing, this commit also adds Norwegian as a new language. This is turned off.
* Make the home page into reusable and translatable blocks
This commit adds a set of block type shortcodes that is then used to build the home page.
* These shortcodes gets common image resources from a new headless bundle. These resources can be inherited or overridden by translations.
* The hardcoded case studies section on the home page is replaced with a query and a loop.
* The hardcoded feature list on the home page is replaed qith a query and a loop.
* Add AnchorJS JavaScript
* Remove existing inpage_heading logic
* Remove underline from anchor tags
* Use single icon and add touch visibility
* Use paragraph link icon for AnchorJS
* Update Sass to use code formatting in docsContent headers
* Update header size coverage to H3-H6
* Change product name
From IBM Cloud Container Service to IBM Cloud Kubernetes Service
* Adding IKS to the table of solutions
Not sure about where in the table it should be placed. The note said,
“The above table is ordered by version test/used in nodes, followed by
support level.”
* Adding IKS to Cloud Providers page
* Adding IBM Cloud Container Registry to private registry topic
* Updating language on cloud provider page
* Revising text for the registry entry
* Specifying that it's calico network policies
The Product Security Team got a report about these unauthenticated
discovery roles. The reporter was surprised about getting 200 requests
when unauthenticated. And given the light documentation on the intention
of these roles it is justifiable.
Increase documentation on these roles.
The URL was not updated to point to release-1.11 branch when 1.11 was released.
This PR updates it to use the docsbranch param, so we don't have to
update it for every release.
* Update Quote
The Previous quote was not actually in our case study, makes me thing it was just a miss.
I'm proposing we change to a quote from within the case study, doesn't have to be this one.
* Update index.html
* add Ygrene case study
* Update ygrene.html
* Update ygrene.html
* add Adform case study
* update to have logo show
* Update and rename adform.html to index.html
The original doc contained "type: fast" which means the volume type
"fast" should exist on OpenStack/Cinder side.
However there is not any standard volume type name and most people
face the StorageClass issue when specifying this volume type.
In addition, the issue is hard to be debugged because the error
message which explains the nonexistent volume type is not output
on debugging information. Then external cloud-provider-openstack
doesn't contain the volume type "fast" today as [1].
This removes it for avoiding confusions for users who still use
the deprecated internal provisioner.
[1]: https://github.com/kubernetes/cloud-provider-openstack/blob/master/examples/persistent-volume-provisioning/cinder/cinder-storage-class.yaml
* Add instructions for staging site using Docker
Adds a condensed version of the instructions in the README to
the intermediate contribution page.
* Format code blocks
* Update high-availability.md
Fix for https://github.com/kubernetes/website/issues/9594#
Changed the value of `kubernetesVersion` to `v1.11.1` in the kubeadm-config.yaml so it pulls the correct server images for the latest v1.11 release.
I don't like the idea of having to change this value for every point release. Maybe someone can come up with a better solution that submitting a change to the documentation for every minor release?
* Update high-availability.md
* Changed Azure Container Service names and to Azure Kubernetes Service
* Changed docs link
* Service link redirects to aks link and remains unchanged.
* Copyedit and update with escape characters
- Use escape characters for {{< toc >}}.
- Copyedit the content.
* Remove the {{< toc >}} reference
The template does not need a {{< toc >}} as the TOC will be generated by default. Therefore, removed this info from the doc.
In Options section, "--feature-gates mapStringBool"
option was given as a "feature=true|false" format.
While in other cli-ref pages, like kube-apiserver,
it's like "feature=true|false (BETA - default=true)".
Make it consistent to be "feature=true|false (phase - default=true or false)"
like kube-apiserver, scheduler, etc.
* Propogating
not "Propogating", is "Propagating"
* `kubelet init` and `kubelet join`
`kubeadm init` and `kubeadm join`, not `kubelet init` and `kubelet join`
* Copyedit the page
A few minor updates were made.
* Update conjuction
Three options. The first (original) was OK, the second (change in this PR) was ambiguous, the third is a bit clearer.
* Format security note with proper callout
The information about security of ssh keys might benefit from standing out more. Thus included it in a caution shortcode. Formatting is now more aligned with the style guide.
* close caution tag
Page titles are in the verb's infinitive form throughout the d11n. Changed the title from the gerund form to infinitive to align it with the other page titles.
The relevant fix for kubernetes.io is the "Page last modified on" line (Git revision info), which in this version now works correctly across languages.
* Prevent hugo's wrong yaml rendering
* moved a couple of yaml descriptions to examples directory
* remove command prompt
* split each code snippet into command and output
* revert newline character
* add new test in examples_test.go
* change kind to ResourceQuota from List
* revert using examples/quota-objects-priority.yaml
* fix indent number
* unify file extension to yaml
This patch fix content "List existing nodes, pods, services and more,
in all namespaces, or in just one:" lost pod list.
Signed-off-by: Yuanbin.Chen <cybing4@gmail.com>
* Added shortcode callouts and removed future tense
* Added colons according to the style guide
* Add a few more copyedits
@cody-clark inspired me. More to do, but progress is being made!
* Fixes#9787. Be explicit with page name for Hugo to find section
* Revert "Fixes #9787. Be explicit with page name for Hugo to find section"
This reverts commit b3f4d5be107149777173ac345a2cadcaf8b0c5ff.
* Follow @bep suggestions to fix#9787
* Fix sentence style capitalization in title
Capitalization of topic title was inconsistent with other titles. Fixed to sentence style capitalization.
* Fix object name
Minor change to nice fix, thank you!
The ordered list of content under "Creating a Deployment" was not ordered as per the example. Since it was confusing to search for the meaning around, I reordered the content.
Replaced "we" with "you" as per the style guide.
This block of code was missing the correct formatting
Changed the formatting
Rechanged it
Sorry I got kind of mixed up with the highlighting, this is what you meant right?
three backticks formatting
Inserted newlines to fix code formatting
Re-added white space
Yet more whitespace adjustment
* create-cluster-kubeadm: update notes about flannel
Add note that a specific manifest can be used to support
different architectures until version 0.11.0 is released.
* Fix passive voice
Style guide compliance
* Fix link order in Setup section
* fix merge conflict
* Co-authored-by: Jennifer Rondeau <jennifer.rondeau@gmail>
* flip front matter order
* Remove Imported section and add Community section
* revert flip
* change section weights
* revert case study change
It was not clear what "Before you begin" meant and how it needs to be added only if the task or tutorial is version specific. Therefore, added this info in.
- /docs/contribute/foundational/ does not exist. Therefore, update all the redirects that go to /foundational to /start.
- Added a redirect to redirect all links that got to /foundational to /start.
* update kops version to latest (1.10.0)
added a more recent version of kops.
now also supports kubernetes 1.10.x
* more updates on the kops.md
- added links to markup files in the kops repo
- slack channel updated
* rebase certificates PR on Hugo master
Co-authored-by: liztio <liz@heptio.com>
* fix per comments, add note about front-proxy
* fix up key usage table and references
* Updates readme's site building instructions
* Alters dockerfile to use extended hugo build
This is necessary for the pipes used w/ TOCSS since node-sass was dropped
* WIP for bing search implementation
* Implements Bing search instead of google
* Makes bing the default result provider and uses google and it's available
* Adds pagination to bing and replaces the $.get call with a $.ajax call
* front adjust
* bing limit pagination
* Adds break if there are less than 10 pages worth of results on bing search
* Adds proper google script ref and proper config id
* Removes console.log call
* Improve social media share sheet metadata
* Improve social media share sheet metadata
* Improve social media share sheet metadata
* Improve social media share sheet metadata
As the sentence before the changes in this PR says, member/snap/db is a file
inside the datadir. It's not where datadir is located. Also, we are already
providing link to the data directory definition.
* Add info about requesting access
This includes how to get a sponsor, how to be a sponsor,
how to become a reviewer, approver, and website admin.
* Address feedback
* Generically refer to container runtimes.
Update nodes.md to refer to "container runtimes" instead of identifying Docker specifically.
* Update nodes.md link for Container Runtime to be relative to the domain.
* Update nodes.md
* Updates readme's site building instructions
* Alters dockerfile to use extended hugo build
This is necessary for the pipes used w/ TOCSS since node-sass was dropped
* Reorganize docs contrib guide
* Address first round of feedback from Brad, Jared
* Standardize on 'SIG Docs'
* Address more feedback
* Rewrites to participating.md
* Tweak navigation titles
* Document PR Wrangler
* Document SIG Docs chairperson
* Fix codeblock that shows how to use <codenew>
It was being interpreted as a Hugo shortcode.
* Document the wire format for Extra introduced in #65799
Bytes which aren't [legal in HTTP headers](https://tools.ietf.org/html/rfc7230#section-3.2.6) need to be percent-encoded over the wire.
* Update authentication.md
code review feedback
* Update authentication.md
more review feedback
* Update authentication.md
feedback
* Update authentication.md
feedback
* Add necessity of metrics-server for HPA
Current HPA doc1 mentions metrics-server like
For resource metrics, this is the metrics.k8s.io API,
generally provided by metrics-server. It can be launched
as a cluster addon.
The metrics.k8s.io API is mandatory for HPA, so the above means
metrics-server needs to be launched for HPA. However it is difficult
to understand that requirement because the above seems metrics-server
as just a addon, and that is described on small section.
In addition, many people are facing HPA issue that fetching metrics
doesn't work on the internet like
$ kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
nginx Deployment/nginx <unknown>/50% 1 3 0 7s
The above sample "<unknown>" shows HPA feature cannot get current
metrics due to metrics-server doesn't work fine.
This adds necessity of metrics-server for HPA directly to solve
the problem.
fixes: #9728
* Copyedit
The explanation to setup auto completion of zsh with Oh-My-Zsh is correct, however the example code is incorrectly mentioned as `source <(kubectl completion zsh)`. This pull request updates it to `plugins=(kubectl)`
* adding blog post
* adding blog post
* Revert "adding blog post"
This reverts commit eeb113259d74e7c725f1f30dbc2bfd0cb335e4ff.
* Update 2018-08-03-make-kubernetes-production-grade-anywhere.md
* Update to Hugo 0.46
This will only do the SASS building once for every languages (English and Chinese). For the Kubernetes site, this is mostly about speed.
* netlify: Simplify setup
Remove duplicate version defintions etc.
- mention `kubeadm config migrate`.
- don't inline control plane flag info, but rather link
to the new dedicated page.
- mention that kuberenetesVersion controls the version of the
images.
* kubeadm: Add a kubelet-kubeadm integration reference doc
* kubeadm: edits for the kubelet-kubeadm integration doc
* kubeadm: move the kubelet-kubeadm integration doc
* Apply edits to kubelet-integration.md
* Make kubelet-integration.md use a template
Also apply MD formatting fixes.
* Copyedit
* Address feedback on copyedit
* added a couple of typo fixes
Technically speaking SRV targets are address record names, not CNAMEs. In fact, the SRV RFC states that SRV targets must point to an address record name, and cannot be an alias (e.g. CNAME).
There are a few cases which were missed during previous effort on
consolidating all example YAML files. This PR fixes them all in the
English version.
Closes: #9674
* Begin re-working localization instructions
* Fix dangling sentence
* Re-arrange sections plus new content
* Fix TOC issue with misplaced capture directive
* Create new shortcodes for versions and language repos
* Add more translation instructions
* Remove translation docs added as an example
* Finish draft of localization doc
* Remove extraneous note
* Blog post about how KubeVirt extends Kubernetes using CRDs and other k8s extension features
* Update blog post to reflect k8s v1.11 crd versioning support
* Update and rename 2018-07-24-kubevirt-crds-for-virtualization.md to 2018-07-27-kubevirt-crds-for-virtualization.md
* Tidy up blog post to reflect reviewer feedback
* Add debugging information to Pod priority and preemption
* mdformat the page
* keep feature-state shortcodes together
* Add one more potential bug in preemption
* Addressed reviewer comments
* Change stage target to docker-serve in Makefile
docker-serve is documented in the readme (from #9128).
* Update underlying command for make docker-serve
The underlying command listed in the README wasn't exactly the
same as the command in the Makefile.
* Remove old Dockerfile for Jekyll site
PR #9128 added a new Dockerfile for the Hugo site. The old
staging container is no longer needed.
* Move all Sass into a common /assets directory
* Remove node-sass make command
* Change head partial to accommodate full Sass rules
* Bump Hugo version in Netlify config
* Use separate partial for CSS imports
* Bump Hugo version
* Remove PostCSS from the pipeline
* Un-bump version
* Update Hugo version to 0.44
* Update Hugo version in Makefile
* Update production Hugo version
* Fix misspelled variable name
* Add ./resources folder to Git
* Update Hugo version in Netlify config to 0.45.1
* Use un-cached css.html partial
* Re-work extra CSS logic for .Params.css
We have consolidated all YAML examples into `content/en/examples`
directory. This PR updates the contribution guide so that people know
where to put their sample YAML files when adding/changing topics.
* Make the command work with multiple pods too
if the user has 2 or more pods the original command line give the following error:
```error: only one of -c or an inline [CONTAINER] arg is allowed
See 'kubectl logs -h' for help and examples.```
* Remove dollar sign to respect style guidelines
* Updated dns-pod-service.md
Added a note on A records creation
* Updated dns-pod-service.md
Added Hugo {{ note }} shortcode
* Update dns-pod-service.md
Changed wording
* tighten up the wording
Merging these two paragraphs, which both describe the fields included in the PodConditions. The first one mentions 6 fields, but only defines 3 of them. The second one defines two of the remaining three. The missing 6th element ("reason") has been added. Now we have the full list in one single section. Easier to understand.
* Update cron-jobs.md
Removed bullet point indicating that a `CronJob` can run "Once at a specified point in time", since this use case is either not possible, or not documented at all.
* change wording
previous document suggests to put config to /root/.docker/config.json
which is not always the case, and only works when the HOME=/root is
set for kubelet. Besides, that's not always the most recommended way
considering the potential risk when someone overrides this config
with another `docker login` on the same node. this change explicitly
lists all the possible locations where the configuration can be put.
* Update references to Federation-v2 progress
Added resources to the whats next section as there has been significant progress over the past few months with the alpha release of Federation-v2 expected in the next few weeks.
* remove <federation> in link
* inline code block is not displayed
Using `kubectl get storageclass` instead of
```
kubectl get storageclass
```
correctly shows the code markup.
* Update change-default-storage-class.md
* reformat markdown for nested list
removal of
# Add your own!
KUBELET_ARGS=""
this line causes line with args in it to be over writen
removal of flag "--require-kubeconfig" as it prevents the service from starting with error "F0708 18:41:17.411350 11725 server.go:145] unknown flag: --require-kubeconfig"
this is with v1.10.1
* fix dead links and apply template
* fix conflicts
* re-fix dead links
* Revert "re-fix dead links"
This reverts commit 3eb8292f45c6453c577f6fc4a49600da291d8622.
* update admission-controller links
(cherry picked from commit 37043991a61e5e6f4ac1c463b14c65430b192553)
* updated links found using greedier regex
(cherry picked from commit 45c6d4cf7430245a3b4e81eae245000beea88841)
* correct link in cn/docs/admin/authorization/_index.md
* fix incorrect changes introduced in eac3619
* undo update of cn content
* fix link
* fix admission webhook link
On the content, user categories are defined as service account and
normal user. However regular user is written at one place instead
of normal user. This replaces the regular user with normal user
for the consistency.
The option --authentication-token-webhook-config-file is for specifying
the configuration file which uses the kubeconfig file format, so this
replaces kubeconfig with configuration for avoiding confusions.
The last change is updating the order of 'clusters' and 'users' for
fitting the following example to read easily.
This was very annoyingly very broken. *Very* broken.
Two primary issues:
1. Autofocus. Autofocus should only be used on a field when it is the
expected action on the page, because it steals keyboard events such
as the arrow keys and Space for navigation, and causes users of
screen readers confusion as they’re thrown into a strange place.
It’d be just barely OK to use it on search pages, but used on
*every* page in the documentation, it’s just *super* annoying.
2. Not being a form. I have *no* idea why anyone would ever have
written it the way it was—it’s just awful from end to end, a bad
reimplementation of a subset of native browser functionality.
It’s a form, let it *be* a form.
Possibly the most baffling part of it was the use of location.replace
which breaks the back button. I just… why!?
While I was at it, I gave the search box an aria-label for good
measure, but I didn’t change its type to "search" because that has
UI implications on some platforms that I’m too lazy to deal with.
This is still pretty bad, because that magnifying glass is done in CSS
rather than being a fair dinkum submit button, but I just wanted a
quick fix because the autofocus issue is annoying me *so much*.
* Fixes to example for connecting with curl
Example for getting cluster token
- does not work with multiple entries in kubeconfig
- does not work with Istio installed
Fix both
* also need to change the tr from tabs to spaces
* Add note for fluentd plugin installation
Fluentd plugin installation is different from fluentd installation,
so we need to tell user how to solve it.
Signed-off-by: pengdake <19921207pq@gmail.com>
* add space in note
* add period
I think the writer means "reuse" here instead of "replace". Since the idea behind choosing your own IP is to avoid having to make any changes to the DNS.
This PR contains API reference docs generated from the reworked
generator (see:
https://github.com/kubernetes-incubator/reference-docs/pull/53).
The main purpose is to rework the way how examples are shown.
When we are happy with the revised version, we can move the CSS and
fonts file to the static directory. We only need to change the HTML
and the `navData.js` file in the future.
Related Issues: #9271, #4015
Added a couple of separate aliases:
- sig-cluster-lifecycle-kubeadm-approvers
- sig-cluster-lifecycle-kubeadm-reviewers
At the same time update the list SIG participants.
* Update cluster-administration-overview.md
remove the sentence "If you are using a guide involving Salt, see [Configuring Kubernetes with Salt](/docs/admin/salt/)."
because the website can be find ,it will return 404
* update the cluster-administration-overview.md
change the sentence "-If you are using a guide involving Salt, see [Configuring Kubernetes with Salt](/docs/admin/salt/)."
to "-If you are using a guide involving Salt, see [Configuring Kubernetes with Salt](/docs/setup/salt/)."
* Update cluster-administration-overview.md
This PR moves the examples test to where it belongs and also include the
following improvements:
- Removed test cases defined for non-existent files;
- Add guard against ineffective tests against missing files;
- Remove the special case for scheduler-policy-config which is no longer
an example, the dependency on the related go module is thus
eliminated;
- Updated the .tavis.yml file to use the new test case: the instruction
sequence is adjusted to ensure the correct version of kubernetes is
fully prepared before we do `go get -v -t`.
- The examples_test.go is formatted using `gofmt`;
- Verbose output during test has been added.
- A separate test case is added for CN translation.
Related: #9285
This is the last PR for moving the YAML/JSON sample files. There still
need some follow up PRs to:
- rename the `codenew` shortcode to `code`.
- move the examples_test.go to where it really belongs.
This PR deals with YAML files referenced by the following two topics:
- concepts:object management
- concepts:service networking
When scanning references to the YAML files to be moved, some trivial
editings were applied to the markdown files. None of this editing should
break the build or ruin the doc otherwise.
This change is to list JuniperContrail/TungstenFabric as a provider
of Pod networking for a Kubernetes cluster.
Juniper's CNI solution has been available as a open source product
for couple of years now. It is a mature solution that has been
deployed in live clusters.
Move the code of conduct page under /community
Add redirect
Use text from CNCF COC and note the revision we imported it at
Add note to top of imported file not to edit it directly
* Adding documentation on recommended labels and annotations
This content was developed as part of the App Def WG
* Updates per feedback from editing and to remove annotations per WG
* Adding app instance to the recommended labels
This PR deals with the getting started guides (windows) and tutorials
sections. Since the YAML files in the windows directory currently are not
referenced at all, this PR refactored the markdown file to correct this
problem. When appropriate, we use the YAML content from the markdown in
the extracted version.
* Consolidate YAML files [part-12]
Relocate YAML files referenced by the accessing application topic
and the rest of cluster administration.
* Adjust json shortcodes.
* adding discuss kubernetes link to community page
addressing https://github.com/kubernetes/website/issues/8578
* moving to bullet list and changing caps
* removing caps
* resetting back to original PR and removing caps
* Update link to the NetworkPlugin interface
Link was broken during some refactoring (commit 42398825ed7fac58fc6c4027c8be730398b6d2be).
Change the link to reflect the new location.
This fixes Issue #9297
* Remove extra line
Somehow the fixed link was pasted at the end of the modified paragraph.
Remove it.
* Add back linebreak
I'll get this right... I swear.
Adds a missing instruction on how to configure the kubelet. Reported in slack in the #kubeadm channel.
Fixes#9222
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* Document name restrictions for multi-port services
Add note in documentation about port name restrictions.
* fix whitespace
undo unrelated whitespace deletion
* Consolidate YAML files [part-8]
This PR exacts the YAML files referenced from the following subdirs:
- docs/concepts/workloads
- docs/concepts/configuration
- docs/concepts/policy
The following problems are fixed:
- docs/concepts/workloads/controllers/ doesnt have a 'cronjob.yaml for
test
- the exactly same `pod.yaml` was used in both the task/config-pod-container
topic and the concepts/configuration topics.
* Update examples_test.go
* Add missing yaml file.
* Consolidate YAML files [part-5]
This PR relocates the yaml files used in stateless application
guestbook. This PR also fixes the list numbering and code block
problems in the page.
Note that neither code blocks nor note callouts live happily inside a
numbered list, so this PR moves them out of such lists.
* Update examples_test.go
There were things changed upstream which have blocked the examples test
from running correctly:
- PodSecurityPolicy has been MOVED from extensions API group into
policy. All samples that are using this resource type needs a change.
- The 'GetCodecForObject()' function in testapi/testapi package was
removed in 1.11 for unknown reasons. This change has broken our job as
well as the test code in the kubernetes/examples project.
- Kubernetes is now using 1.10.2+ verion of Go for compilation so we
have to change the .travis.yml accordingly.
This PR fixes the above problems.
Note also, the `TestReadme` function is **removed** for two reasons:
- It is only testing the snippets in the `volumes.md` file which is now
broken because of the introduction of service account token injection.
- It is regarded as too aggressive/restrictive a test. We cannot
guarantee that YAML snippets in the markdown files are complete and
can be used as is. Instead I believe we should encourage people to use
template snippets that contain the **key** information for a topic.
When we see a need for a full template that can be used directly, we
may want to extract the YAML contents into the `examples`
subdirectory.
* Seperate priority and preemption (#8144)
* Doc about PID pressure condition. (#8211)
* Doc about PID pressure condition.
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
* "so" -> "too"
* Update version selector for 1.11
* StorageObjectInUseProtection is GA (#8291)
* Feature gate: StorageObjectInUseProtection is GA
Update feature gate reference for 1.11
* Trivial commit to re-trigger Netlify
* CRIContainerLogRotation is Beta in 1.11 (#8665)
* Seperate priority and preemption (#8144)
* CRIContainerLogRotation is Beta in 1.11
xref: kubernetes/kubernetes#64046
* Bring StorageObjectInUseProtection feature to GA (#8159)
* StorageObjectInUseProtection is GA (#8291)
* Feature gate: StorageObjectInUseProtection is GA
Update feature gate reference for 1.11
* Trivial commit to re-trigger Netlify
* Bring StorageObjectInUseProtection feature to GA
StorageObjectInUseProtection is Beta in K8s 1.10.
It's brought to GA in K8s 1.11.
* Fixed typo and added feature state tags.
* Remove KUBE_API_VERSIONS doc (#8292)
The support to the KUBER_API_VERSIONS environment variable is completely
dropped (no deprecation). This PR removes the related doc in
release-1.11.
xref: kubernetes/kubernetes#63165
* Remove InitialResources from admission controllers (#8293)
The feature (was experimental) is dropped in 1.11.
xref: kubernetes/kubernetes#58784
* Remove docs related to in-tree support to GPU (#8294)
* Remove docs related to in-tree support to GPU
The in-tree support to GPU is completely removed in release 1.11.
This PR removes the related docs in release-1.11 branch.
xref: kubernetes/kubernetes#61498
* Update content updated by PR to Hugo syntax
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Update the doc about extra volume in kubeadm config (#8453)
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
* Update CRD Subresources for 1.11 (#8519)
* coredns: update notes in administer-cluster/coredns.md (#8697)
CoreDNS is installed by default in 1.11.
Add notes on how to install kube-dns instead.
Update notes about CoreDNS->CoreDNS upgrades as in 1.11
the Corefile is retained.
Add example on upgrading from kube-dns to CoreDNS.
* kubeadm-alpha: CoreDNS related changes (#8727)
Update note about CoreDNS feature gate.
This change also updates a tab as a kubeadm sub-command
will change.
It looks for a new generated file:
generated/kubeadm_alpha_phase_addon_coredns.md
instead of:
generated/kubeadm_alpha_phase_addon_kube-dns.md
* Update cloud controller manager docs to beta 1.11 (#8756)
* Update cloud controller manager docs to beta 1.11
* Use Hugo shortcode for feature state
* kubeadm-upgrade: include new command `kubeadm upgrade diff` (#8617)
Also:
- Include note that this was added in 1.11.
- Modify the note about upgrade guidance.
* independent: update CoreDNS mentions for kubeadm (#8753)
Give CoreDNS instead of kube-dns examples in:
- docs/setup/independent/create-cluster-kubeadm.md
- docs/setup/independent/troubleshooting-kubeadm.md
* update 1.11 --server-print info (#8870)
* update 1.11 --server-print info
* Copyedit
* Mark ExpandPersistentVolumes feature to beta (#8778)
* Update version selector for 1.11
* Mark ExpandPersistentVolumes Beta
xref: kubernetes/kubernetes#64288
* fix shortcode, add placeholder files to fix deploy failures (#8874)
* declare ipvs ga (#8850)
* kubeadm: update info about CoreDNS in kubeadm-init.md (#8728)
Add info to install kube-dns instead of CoreDNS, as CoreDNS
is the default DNS server in 1.11.
Add notes that kubeadm config images can be used to list and pull
the required images in 1.11.
* kubeadm: update implementation-details.md about CoreDNS (#8829)
- Replace examples from kube-dns to CoreDNS
- Add notes about the CoreDNS feature gate status in 1.11
- Add note that the service name for CoreDNS is also
called `kube-dns`
* Update block device support for 1.11 (#8895)
* Update block device support for 1.11
* Copyedits
* Fix typo 'fiber channel' (#8957)
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* kubeadm-upgrade: add the 'node [config]' sub-command (#8960)
- Add includes for the generated pages
- Include placeholder generated pages
* kubeadm-init: update the example for the MasterConfiguration (#8958)
- include godocs link for MasterConfiguration
- include example MasterConfiguration
- add note that `kubeadm config print-default` can be used
* kubeadm-config: include new commands (#8862)
Add notes and includes for these new commands in 1.11:
- kubeadm config print-default
- kubeadm config migrate
- kubeadm config images list
- kubeadm config images pull
Include placeholder generated files for the above.
* administer-cluster/coredns: include more changes (#8985)
It was requested that for this page a couple of methods
should be outlined:
- manual installation for CoreDNS explained at the Kubernetes
section of the GitHub project for CoreDNS
- installation and upgrade via kubeadm
Make the above changes and also add a section "About CoreDNS".
This commit also lowercases a section title.
* Update CRD subresources doc for 1.11 (#8918)
* Add docs for volume expansion and online resizing (#8896)
* Add docs for volume expansion going beta
* Copyedit
* Address feedback
* Update exec plugin docs with TLS credentials (#8826)
* Update exec plugin docs with TLS credentials
kubernetes/kubernetes#61803 implements TLS client credential support for
1.11.
* Copyedit
* More copyedits for clarification
* Additional copyedit
* Change token->credential
* NodeRestriction admission prevents kubelet taint removal (#8911)
* dns-custom-namerserver: break down the page into mutliple sections (#8900)
* dns-custom-namerserver: break down the page into mutliple sections
This page is currently about kube-dns and is a bit outdated.
Introduce the heading `# Customizing kube-dns`.
Introduce a separate section about CoreDNS.
* Copyedits, fix headings for customizing DNS
Hey Lubomir,
I coypedited pretty heavily because this workflow is so much easier for docs and because I'm trying to help improve everything touching kubeadm as much as possible.
But there's one outstanding issue wrt headings and intro content: you can't add a heading 1 to a topic to do what you wanted to do. The page title in the front matter is rendered as a heading 1 and everything else has to start at heading 2. (We still need to doc this better in the docs contributing content, I know.)
Instead, I think we need to rewrite the top-of-page intro content to explain better the relationship between kube-dns and CoreDNS. I'm happy to write something, but I thought I'd push this commit first so you can see what I'm doing.
Hope it's all clear -- ping here or on Slack with any questions ~ Jennifer
* Interim fix for talking about CoreDNS
* Fix CoreDNS details
* PSP readOnly hostPath (#8898)
* Add documentation for crictl (#8880)
* Add documentation for crictl
* Copyedit
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Final copyedit
* VolumeSubpathEnvExpansion alpha feature (#8835)
* Note that Heapster is deprecated (#8827)
* Note that Heapster is deprecated
This notes that Heapster is deprecated, and migrates the relevant
docs to talk about metrics-server or other solutions by default.
* Copyedits and improvements
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Address feedback
* fix shortcode to troubleshoot deploy (#9057)
* update dynamic kubelet config docs for v1.11 (#8766)
* update dynamic kubelet config docs for v1.11
* Substantial copyedit
* Address feedback
* Reference doc for kubeadm (release-1.11) (#9044)
* Reference doc for kubeadm (release-1.11)
* fix shortcode to troubleshoot deploy (#9057)
* Reference doc for kube-components (release-1.11) (#9045)
* Reference doc for kube-components (release-1.11)
* Update cloud-controller-manager.md
* fix shortcode to troubleshoot deploy (#9057)
* Documentation on lowercasing kubeadm init apiserver SANs (#9059)
* Documentation on lowercasing kubeadm init apiserver SANs
* fix shortcode to troubleshoot deploy (#9057)
* Clarification in dynamic Kubelet config doc (#9061)
* Promote sysctls to Beta (#8804)
* Promote sysctls to Beta
* Copyedits
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Review comments
* Address feedback
* More feedback
* kubectl reference docs for 1.11 (#9080)
* Update Kubernetes API 1.11 ref docs (#8977)
* Update v1alpha1 to v1beta1.
* Adjust left nav for 1.11 ref docs.
* Trim list of old ref docs.
* Update Federation API ref docs for 1.11. (#9064)
* Update Federation API ref docs for 1.11.
* Add titles.
* Update definitions.html
* CRD versioning Public Documentation (#8834)
* CRD versioning Public Documentation
* Copyedit
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Address feedback
* More rewrites
* Address feedback
* Update main CRD page in light of versioning
* Reorg CRD docs
* Further reorg
* Tweak title
* CSI documentation update for raw block volume support (#8927)
* CSI documetation update for raw block volume support
* minor edits for "CSI raw block volume support"
Some small grammar and style nits.
* minor CSIBlockVolume edits
* Update kubectl component ref page for 1.11. (#9094)
* Update kubectl component ref page for 1.11.
* Add title. Replace stevepe with username.
* crd versioning doc: fix nits (#9142)
* Update `DynamicKubeletConfig` feature to beta (#9110)
xref: kubernetes/kubernetes#64275
* Documentation for dynamic volume limits based on node type (#8871)
* add cos for storage limits
* Update docs specific for aws and gce
* fix some minor things
* Update storage-limits.md
* Add k8s version to feature-state shortcode
* The Doc update for ScheduleDaemonSetPods (#8842)
Signed-off-by: Da K. Ma <klaus1982.cn@gmail.com>
* Update docs related to PersistentVolumeLabel admission control (#9109)
The said admission controller is disabled by default in 1.11
(kubernetes/kubernetes#64326) and scheduled to be removed in future
release.
* client exec auth: updates for 1.11 (#9154)
* Updates HA kubeadm docs (#9066)
* Updates HA kubeadm docs
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* kubeadm HA - Add stacked control plane steps
* ssh instructions and some typos in the bash scripts
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* Fix typos and copypasta errors
* Fix rebase issues
* Integrate more changes
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* copyedits, layout and formatting fixes
* final copyedits
* Adds a sanity check for load balancer connection
Signed-off-by: Chuck Ha <ha.chuck@gmail.com>
* formatting fixes, copyedits
* fix typos, formatting
* Document the Pod Ready++ feature (#9180)
Closes: #9107
Xref: kubernetes/kubernetes#64057
* Mention 'KubeletPluginsWatcher' feature (#9177)
* Mention 'KubeletPluginsWatcher' feature
This feature is more developers oriented than users oriented, so simply
mention it in the feature gate should be fine.
In future, when the design doc is migrated from Google doc to the
kubernetes/community repo, we can add links to it for users who want to
dig deeper.
Closes: #9108
Xref: kubernetes/kubernetes#63328, kubernetes/kubernetes#64605
* Copyedit
* Amend dynamic volume list docs (#9181)
The dynamic volume list feature has been documented but the feature gate
related was not there yet.
Closes: #9105
* Document for service account projection (#9182)
This adds docs for the service account projection feature.
Xref: kubernetes/kubernetes#63819, kubernetes/community#1973Closes: #9102
* Update pod priority and preemption user docs (#9172)
* Update pod priority and preemption user docs
* Copyedit
* Documentation on setting node name with Kubeadm (#8925)
* Documentation on setting node name with Kubeadm
* copyedit
* Add kubeadm upgrade docs for 1.11 (#9089)
* Add kubeadm upgrade docs for 1.11
* Initial docs review feedback
* Add 1-11 to outline
* Fix formatting on tab blocks
* Move file to correct location
* Add `kubeadm upgrade node config` step
* Overzealous ediffing
* copyedit, fix lists and headings
* clarify --force flag for fixing bad state
* Get TOML ready for 1.11 release
* Blog post for 1.11 release (#9254)
* Blog post for 1.11 release
* Update 2018-06-26-kubernetes-1.11-release-announcement.md
* Update 2018-06-26-kubernetes-1.11-release-announcement.md
* Update 2018-06-26-kubernetes-1.11-release-announcement.md
Changes that will help upcoming consolidation work:
- Add variable `githubWebsiteRaw` to config.toml to facilitate building
links to raw YAML files
- Revise `codenew` shortcode to generate links to raw YAML files instead
of github.com file view;
- Rename `artifacts` directory to `examples` to better reflect its usage;
Accompanied changes as show cases:
- Moved `deployment.yaml`, `deployment-update.yaml` and
`deployment-scale.yaml` to the new `examples/application` subdirectory;
- Removed duplicate instances of the above YAML files in other
directories;
- Update example_test.go to test the relocated YAML files and removed
testing for files that no longer needed.
* Update Windows documentation for OVN/OVS CNI plugin
This patch adds reference to the Ansible playbooks which help
to deploy a kubernetes cluster in a fully automated way.
Signed-off-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
* Minor tweaks
* Trivial commit/undo to trigger Netlify
Added an extra whitespace line at EOF
This page adds instructions on how to use the kubeadm config
to pass flags to control plane components.
The provided examples are pretty basic. Later this can be expanded with
actual user stories.
This is an attempt to consolidate YAML files so that:
- They can remain untouched when we moving the documents around;
- Contributors do not have to change the test cases each time a
documentation is moved;
- We can encourage referencing the existing YAMLs from different
concept or task pages when possible.
After deploying the PV and PVC via the YAML file, run `kubectl describe pvc mysql-pv-claim` should show `mysql-pv-volume` as the `Volume`, instead of `mysql-pv`.
This heading is missing in the 1.10 documentations which makes it hard to find the needed information because the anchor `setting up a master load balancer` points to nowhere. This was working in the 1.19 documentation and it was really useful.
I noticed that the three last headers were missing from the index, so I inspected the markdown and realized that they had only one hashtag (#) as compared to two (##) as all the other headers had.
I simply made those three topics follow the same pattern I observed the other did.
# Issue
The command of jobs does not run correctly if its job already finished.
Some readers may confuse that they can't succeed to run a command to follow this tutorial.
So, we should add `--show-all` option to show pods that may be completed.
# The log to show that we need to add an --show-all option
```
$ kubectl get jobs
NAME DESIRED SUCCESSFUL AGE
busybox 1 0 27d
hello-1529501040 1 1 2m
hello-1529501100 1 1 1m
hello-1529501160 1 1 43s
$ kubectl get pods --selector=job-name=hello-1529501160
No resources found, use --show-all to see completed objects.
$ kubectl get pods --show-all --selector=job-name=hello-1529501160
NAME READY STATUS RESTARTS AGE
hello-1529501160-dckjv 0/1 Completed 0 1m
```
Those links are dead, pointing at what I assume in the previous place for the Kubelet TLS bootstrapping documentation.
Update them with the new location!
* Update etcd config description of kubeadm HA doc
- Fix url from http to https
- Add etcd-listen-ip description
* Edit for clarity and list markup
* More minor edits
* Add Dockerfile and make commands
* add background run option
* Expand on OSS attribution in new Dockerfile
* Begin adding README instructions for Docker
* Add new stage command
implementation-details.md is outdated for k8s 1.11.
Add feature state that this page applies to k8s 1.10.
The page should be updated for k8s 1.11 in a later stage
in the release cycle.
commenting out the div that holds the current calendar until we can fix some issues we are having with zoom project wide per steering committee email to k-dev mailing list.
`base64` generates 76-character chunks of text, delimited by a space character. the `=+/` characters are removed, so on the (uniformly random) offchance that 44 characters are removed, the last `dd` will read a whitespace, and the token will include a whitespace, which "usually" isn't defined as an "alphanumeric character." Removing the space character as well, would mean that 142 of the characters would have to be a `=+/[:space:]`, before the token becomes shorter.
* [docs] Fix syntax formatting in HA-setup doc.
Attempts to fix an unformatted code block; whatever markdown parser is being used seems to have gotten tripped up, and as a result the inline `yaml` in the script is interpreted as bullet points... it looks [pretty yucky](http://jstu.art/sAjc). I'm wondering if this is something specific to the Hugo toolchain? Because GH itself recognizes the block as valid, even with the `none` syntax type.
If this doesn't trigger a CI build preview, I can test locally to verify.
* [css] Don't display ul/li bullets on UI 'tabs-nav' components.
* [docs] Revert HA docs changes.
This reverts commit f5cf5c7e4f0468d077e48347bf678a95c791982e.
Cannot copy any apiserver* keys and certs, as they are generated on startup. If not, it results in an error from kubeadm
```
certificate apiserver is not signed by corresponding CA
```
Also, if the kubernetes.list does not exist you will not be able to edit it, so adding touch and then add the line will prevent errors with installing via apt-get.
It is confusing to capitalize "container" because it isn't really a primitive or API object. Furthermore, this guideline doesn't appear to be closely followed.
* Overall cleanup for kubeadm setup guide.
* Add sonobuoy verification next step
* Partial copyedits
Hit a place where we also have formatting issues, plus a TODO (removed bc these changes go live as soon as merged). More work to do, but this should help the bottleneck for now.
* Address comments from reviewers
* Copy edits, fiddly bits, and clearer warnings
Incorporated feedback from @mistyhacks, fixed many nits, reorganized some **Note:** content more sensibly.
* Revised title per feedback
* replace pearson case study with new one
*this is already on the index page from awhile ago so I didn't add it to the top before NYT as a result
* add images
* Add a note regarding escaping characters
Updated docs with a note regarding escaping characters, it's important because it won't work well otherwise.
* Update secret.md
* No escape required for --from-file
Feedback from @mengqiy
Added information to install cfssl and cfssljson on all etc nodes as they are required to generate clients certificates
Change <podname> to <name> in static pod yaml description for etcd deployment
Additionaly the first bash script in "Run kubeadm init on master0" section doesn't render correctly on kubernetes.io site (https://kubernetes.io/docs/setup/independent/high-availability/) but I don't see any pb with markdown.
* Issue #8493 - Missing instructions in "Creating HA clusters with kubeadm":
- change to kubeadm-init.yaml: configure `advertiseAddress` to the VIP
- added section with instructions for configuring `kubelet`, `kube-controller-manager` and `kube-scheduler` to use the VIP
* Issue #8493 - Missing instructions in "Creating HA clusters with kubeadm": Change use the 'controlPlaneEndpoint' setting in kubeadm-init.yaml, hence no configuration file patching afterwards is necessary anymore.
* Issue #8493 - added private IP to apiServerCertSANs as proposed by @detiber
These pages did not use any template and the displayed toc started
with two bullet points.
Fixes:
* Use the concept template everywhere and add capture markers.
* Rework content-organization.md to move the references to a "whatsnext"
section.
* Fix in localization.md a misparsed list.
* fixing date format
* Update 2018-06-01-dynamic-ingress-kubernetes.md
* Rename 2018-06-01-dynamic-ingress-kubernetes.md to 2018-06-07-dynamic-ingress-kubernetes.md
* Add kbarnard10 as sole reviewer for auto assignment
* Add acontini as sole reviewer for case studies auto assignment
Un-comment out the reviewer declaration
Un-comment out the reviewer declaration
* Getting started gce deadlink
1.
modify for kubernetes/website link
2.
remove unnecessary .md link
* modify link from github.com to kubernetes.io
* revert blogs modification
* revert blog post for meta char
Fix some hugo transition issues:
* Use `file` as code syntax following our style guide and fixing
bug #8868
* Reformat Note so that it's not displayed as text.
Closes: #8868
In _index doc the Kubectl CLI about overview link
was add in "[Overview of kubectl]", So remove not
need "[kubectl]" link.
Signed-off-by: Yuanbin.Chen <cybing4@gmail.com>
* Fix errors in configure-multiple-schedulers.md
- Failed to push docker image
- Errors found in my-scheduler logs
```
...
E0515 06:36:28.180428 1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.ReplicaSet: replicasets.extensions is forbidden: User "system:serviceaccount:kube-system:default" cannot list replicasets.extensions at the cluster scope
```
* Replace double quote with backticks for code strings
* Use `system:kube-scheduler` instead of `cluster-admin`
* Create dedicated service account for `my-scheduler`
* Update high-availability.md
[fix]command should leading
* Repair code inside list items, remove "like so"
* Modify one code block, change 1-step procedures to not be procedures
This commit adds details on how to create Windows services from
kubelet and kube-proxy.
Signed-off-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
* Add link: add changelog-1.10 and changelog-1.11
* Delete download page's catalog: hugo's markdown render engine can generate catalog through the TOC
* Format the release list
* Delete the release note
In recent versions of Kubernetes, selector field in DeploymentSpec is required and it'll not be filled with values from pod template. simple_deployment.yaml was already corrected and selector was added, here in this commit the content of the docs corrected to match this change.
I do not have a desire of titles but I am trying this to make the hours
I spent on the project worth them. I feel very bad when I have full
confidence about a PR and I have reviewed it but I cannot approve it.
* Clarify that beta annotations can not be removed
Removing annotations caused a major outage with nodes that lagged the
master. We used annotations as would-be fields, though we don't any
more. Now we just add fields. That makes them part of the API version.
These annotations are effectively part of the API version, too.
It stinks because I love to delete code, but I think it's just part of
the debt-accrual process and yet another reason we need to be judicious
in adding fields.
* Change 6 month deprecations to 9 months
This covers maximum version skew. For example a master might be at
1.10, while nodes are at 1.8. We must not break compat within that
window.
* Update service-access-application-cluster.md
Fix code snippet formatting and indentation in ordered list (#8698)
* Fixes code formatting using code fences
Here's a pass with code fences. It seems to work well, and I indented the code fences in the source for readability, even though it wasn't needed for proper indentation in the rendered output.
I wasn't able to use code fences and get the text "The response to a successful request is a hello message:" on its own line. I can achieve that using indentation, but for consistency's sake I used the code fences and placed the text with the paragraph above it.
* Adds `shell` to the code fences
* Fix etcd installation command in kubeadm tutorial
Shells interpolate variables before running commands, so setting the
ETCD_VERSION variable must be separated from the command that
interpolates it. Otherwise an empty string will be interpolated.
The rm command isn't necessary - the output from curl is piped directly
to tar.
* Update stated default etcd version for K8s 1.10
1.10 is the most recent version of K8s and the default etcd server
version for it is 3.1.12
* Fix non-US English typo
Style guide states US English should be used
* Add configure link description
I added a configure link description. Just having a link
on a page with no introductory context seemed awkward.
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* removing unnecessary header
* updated text to be active voice
A tab shortcode was using angle brackets even though the
contents were markdown. This caused a formatting issue.
This switches the tab to use the `%`-delimiter to properly
render the markdown.
* Restore gate jobs
Most gate jobs have been disabled recently so we are risking introduce
many defects when migrating to Hugo. This PR fixes the gate job to get
it running again.
* add comment for fix
* comment out, delete later
* comment out completely
* include package
This commit adds a missing closing capture and puts "## Install kubectl" inside the relevant capture.
Note that the missing close was also missing before Hugo-migration, so the section ordering is still not the same as the Jekyll version of the site. But I think it is more corret.
Note that content outside the capture template blocks, is included as defined is this template:
https://github.com/kubernetes/website/blob/master/layouts/partials/templates/task.html#L8
See #8277
* Fix url to etcd binary
etcd should be 3.12 for kubernetes 1.10, also fix the URL (probably was broken after migration to Hugo)
* Make Curl command safer
You really only need that variable to be set for the specific command, so no need to export it.
Also, when using Bash variables in a string, you should enclose them in curly braces to delineate them from the rest of the string. This helps prevent problems where Bash can't tell where the name of the variable ends and the next part of the string begins.
The page was wrongly formatted:
* Two lists were shown as paragraphs, add empty lines so that they are
parsed as lists.
* The list of members, reviewers was not intended properly, so that the
single items are intended but not their description. Indent
everything.
* Fix URL to owners.md file, the old one gives a 404.
* Fix code blocks in set-up-cluster-federation-kubefed
Two of the code blocks don't render correctly in the [docs page](https://kubernetes.io/docs/tasks/federation/set-up-cluster-federation-kubefed/) (see *Adding a cluster to a federation* section) even though they render correctly in the GitHub preview. Hopefully this PR will fix it.
Plus fixed a few instances where the code blocks in set-up-cluster-federation-kubefed.md don't indicate the code block's language.
* Fix spacing
- Use environment variables when redirecting to "/etc/etcd.env".
- Add more placeholder values for flags in "etcd.service" -> "ExecStart"
Fixeskubernetes/kubeadm#797
* Update kubeadm-init.md
Fix broken kubeadm token link
* Fix more broken links in kubeadm-init.md
Broken links are fixed including kubeadm-join, kubeadm-upgrade, and kubeadm-reset
Currently, the link just points to a description of
what Kubernetes objects are and does not
explicitly state what a declarative API is. It is
not immediately clear to the reader what the term
means.
This commit tries to explain it explicitly so that
the link adds to the meaning and it is clearer to
the reader.
ThirdPartyResources (TPRs) were removed in v1.8. It is misleading
to still show the docs for TPRs for > v1.8. If one needs to read
docs for TPRs, they can switch to the v1.8 version of the docs
website.
However, the docs of migration of TPRs to CRDs are still not
removed because one can also migrate from v1.7 (when CRDs were
introduced) to v1.7+.
First, fix https:// address.
Secondly, previous formatting would display on the page as one line
altogether, which couldn't be pasted into a terminal correctly.
The TOC looked like:
3. Deployments
1.1 Deployment Management
4. Services
1.1 Service Management
The problem is that the headings went from "##" to "####", use "###" for
second level heading to cleanup TOC.
fix some hugo issues:
* Add missing empty line for list.
* Indent items correctly to avoid overlong line shown as code.
* Fix broken table
Closes: #8457
Before running `kubeadm init` users should be informed that the command might change depending on the network plugins they choose. It is better to provide it before presenting with `kubeadm init` so that they don't have to tear the cluster apart once they figure out they needed some extra parameters while running the command
* Container Linux doc fixes
portions of the URLs were missing their bash substitutions and the variable exports don't apply to the following commands without using 'export'
* Adjustments from PR
export is not needed, used proper bash expansion
* typos
* Typo fix: formated->formatted and proper noun in capital
formated->formatted
Pod and Container are proper noun, in this doc, someplace are in capital, some are in lowercase. It's better to keep consistency.
* Update volumes.md
1) Remove missing links about kube-apiserver, kube-controller-manager
and kube-scheduler. Link to the high-availability page, which
isn't exactly a full replacement.
2) Add section about kube-proxy parameters.
Hugo does not support the way the image's max-width was specified before.
This fix will constrain images to always be 50% rather than max out
at 50%, but it is the best we can easily do for now.
Signed-off-by: Misty Stanley-Jones <mistyhacks@google.com>
* Add links to the F5 BIG-IP Controller for Kubernetes to the Ingress controllers section of the ingress doc
* Address review comments from @zacharysarah
* Fix concepts/api-extension/custom-resources.md
All tables were wrongly formatted, add proper second line so that hugo
formats them nicely again.
Add missing empty line before lists so that they get displayed as lists.
Closes: #8392
* Fix one more table
Fix another wrong table heading in custom-resources.md as noticed
during review.
Reading over the .md file, I fixed the following problems:
* Replace links to old location with new location.
* Fix missing shell quotation marks and shell annotations
* Fix wrong indent so that lists are shown correctly.
* Fix broken table, the "|" needs to be quoted to be rendered.
The way we previously did it in Jekyll doesn't work
with Black Friday. There are a few workarounds, but
the easiest way to fix it is to just change those
links to HTML email.
* [Issue #8336] Added a # symbol to What's next
Looking to see if the Table of contents will render properly if all the headers are H4 (####)
* use h2 instead of h4
* More readable fix for issue #7957
Replaces HTML entity-escaped text with Markdown-escaped text where necessary.
* Fixing the markdown discrepancy
Rendering consistently is for chumps
* Supersedes #8288 with a post-Hugo location
* Adjusted time for earlier publishing
* Dropped blog post into http/
* Another time adjustment
* Update front matter
* Testing a location change
* Adding a top-level heading
* More tweaks
Ajusted the sequence of tab "node allow-post-csrs" and "node allow-auto-approve" to conform to the actual sequence of kubeadm alpha phase bootstrap-token.
The term "`MutatingAdmissionWebhooks`" has no special meaning in the
docs. It is misleading because readers may think of it as the name of a
resource or field, or the name of the corresponding admission
controller. However, the name of the admission controller is in
singular. This PR proposes a change to avoid such misunderstandings.
* Update service.md
Update from ReplicationController and rolling-update to ReplcaSet and Deployment rollout
* Update service.md
Remove reference to deployment
Since we now generate the kubectl doc for each release, it is no longer necessary to use the old redirects. Cleaning up the references throughout the documents.
* Added IPv6 info to kube-proxy arguments
* Added IPv6 related printouts for kubectl commands
* revert kube-proxy.md
* revert
* revert to ba7c300
* revert to 08af95d
* Update zookeeper.md
As part of a docs sprint in Melbourne I made a very initial pass at trying to tidy this up a little, I would like to have done much much more, but it's a start…
* Updates from feedback
* Format markdown
* FInal tidy
* Update style-guide.md
Added kubectl and Minikube to the Kubernetes.io word list. Please review.
* Update style-guide.md
Added Persistent Volumes and Salt to the Kubernetes.io word list. Please review.
* Update style-guide.md
removed PersistentVolumes and Salt from the list
So far we have been running tests against the master branch of
kubernetes/kubernetes. This is creating quite some problems because the
master branch is always moving. We are actually checking the YAML files
against a version between 1.10 and 1.11.
This PR is attempting to fix the problem by checking out the
'release-1.10' branch before running the tests. We are supposed to
change the branch to be used when release-1.11 is out. With this PR
(hopefully it works), we will only need to fix the gate every time a new
release is out.
The current title "CoreOS on AWS or GCE" is misleading because the page
actually contains information about many ways to run Kubernetes. When
the page is referenced from the navigation panel, the title becomes very
confusing.
Closes: #711
* Typo fix in implementation-details.md
does not exists->does not exist
does not contains->does not contain
* Update 2017-04-00-Rbac-Support-In-Kubernetes.md
an an->an
* Update 2017-04-00-Rbac-Support-In-Kubernetes.md
* Update a note indicating current state of federation V1
* change horizontal line to <br>
* edit note
* capitalize Kubernetes
* <br> unnecessary w/ note callout
* Clarify that node anti-affinity can be achieved using node taints
The current text may have pre-dated the node taints feature, so it says that no such concept exists, when it actually does now.
* add "to"
Replace double-quote with single-quote for terminal commands.
Although the strings in the examples work fine, users who with randomly generated passwords may have character strings that cause strange behaviors with double-quotes. Using single-quotes prevents this.
Example of a command that causes odd behaviors with double-quotes:
echo -n "RandPasswordr3!$#$3aR" | base64
This example has a series of special characters that some terminals try to interpret and replace with other text.
add this to --runimte-config will cause such error:
```
error: unknown api groups eventratelimit.admission.k8s.io
```
I have test that this feature works fine without any confiuration
to --runtime-config.
The 'user-guide' subdirectory is almost empty now after the contents
are migrated to either concepts or tasks. This PR removes the contents
left over in this path.
* Use Terminated instead of Failed
Containers that terminate successfully (exit code 0) can also be restarted and it's the default behaviour is restartPolicy is not specified.
* Use Exited instead of Failed
In the upstream code base, there are cases where the field description
string contain substrings like '*', 'pods/*', '*/scale' and '*/*'.
When generating reference docs out of these Go comments, the Node.js
module used was incorrectly passing the asterisks as '<em>', i.e. a
mark for emphasize. This behavior has rendered the output documentation
very misleading. For example, in the definition for RuleWithOperations,
users can specify '*' as a wildcard for matching all apiGroups, all
resources. However, the generated docs is showing that an empty string
'' is used to match all apiGroups or resources. This is a serious bug
fixed by this PR.
Doc generator patch is included in PR to
kubernetes-incubator/reference-docs.
* Initial Kubefed AWS Route53 on-prem documentation
* Add flag requirement for kubefed init
* conform to style guidelines
* fix controller-manager wording
* move cut-off section from CoreDNS support
Since the default annotation prefix has been changed to "nginx.ingress.kubernetes.io" in nginx ingress controller, the examples in ingress doc should be updated.
* Document new OpenAPI endpoint
Document new OpenAPI endpoint and deprecation announcement for old endpoints.
* Remove out-of-date swagger spec information
Deprecation announcement is in line 29
* Update default behavior for endpoint HTTP headers
First-time kubeadm user here: The v1.10.0 docs indicate that config file use is experimental, but judging from the comments on https://github.com/kubernetes/kubernetes/pull/59288 it looks like new features are beginning to be supported only in the config file. controlPlaneEndpoint is super useful for us and while I suspect the kubeadm init docs will ultimately be re-written to emphasize the config file options rather than flags (with appropriate examples and descriptions as the flags have now), it would've saved us some time today if we'd seen controlPlaneEndpoint in the config file example.
* Add draft for blog migration post
* Small revisions
* Most important commit ever
* Feedback from kbarnard10
- Turn URLs into hyperlinks
- Remove one line
* Feedback from sarahkconway
- Specify that blog reviews are more transparent/streamlined
* Feedback from kbarnard10, part 2
Added "how to submit a blog post"
Revised "confidentiality"
* Feedback from kbarnard10, part 3
* Renamed file for date accuracy
* Changed date back, added email link
In previous commit, we have enabled showing the full group names for API
resources. However, in doing that, we broken links inside the reference
doc and links pointing to the api reference. This PR fixes this problem
using the revised doc generator.
* Add contrib guidelines for blog posts
* Add form guidelines
* Add TOC entry
* Renamed file
* Feedback from @heckj and @bradtopol
* Revised submission guidelines to include form
podtolerationrestriction does not encompass all the use cases of
podnodeselector, in a case where not all nodes are tainted, then
podtolerationrestriction can not ensure pods are scheduled on the
specific set of nodes.
Based on the discussion on kubernetes/kubernetes#40870, we'd better
clearly document that the endpoint IPs used by a service without
selectors cannot be virtual ones.
* Updated for adherence to style guide and the links to: /docs/user-guide/kubectl
Can someone please confirm what the "Coming soon" path to extend the API with custom resources is?
* Incorporated the changes suggested @heckj @zacharysarah
Could one of you please confirm What "Coming soon: " in line 82 stands for? Is there a name or definition or reference?
* Update api-overview.md
* Update api-overview.md
* fixed a typo
* Update api-overview.md
* hosting fonts locally
resolves#7955
- issues with using hosted fonts: excessive page load times due to
periodic firewall impact
* move jquery from google CDN to jquery site
* getting the CSS too, just in case
* WIP
* fixing layouts and assets
updating Gemfile.lock with bundle install (rvm use ruby-2.2.9)
Updated links in header and footer
switch to paginate v2 gem
comment sidebar logic
fixing css regression
retry paginate
updated local ruby version
reverting to original pagination gem
remove text, make heading roboto, next/prev as buttons
* reintoduce dir tree changes
format checking new posts
shrink fab-icons down to 33px
* reintoduce dir tree changes
format checking new posts
shrink fab-icons down to 33px
* next/prev buttons on posts and index
* Change "latest" to v1.10
* rename .md to match old blog and added explict permalinks for urls
* replacing a link to old blog
* fix image regression with {: .big-img} tag
* adding blog post
* formatting updates
* more formatting updates
* fixing numbering
* more number fixes
* list updates again
* changes based on Michelle's comment
* formatting update
* updated bullet points
* formatting fixes
* indentation fixes
* WIP
* fixing layouts and assets
updating Gemfile.lock with bundle install (rvm use ruby-2.2.9)
Updated links in header and footer
switch to paginate v2 gem
comment sidebar logic
fixing css regression
retry paginate
updated local ruby version
reverting to original pagination gem
remove text, make heading roboto, next/prev as buttons
* reintoduce dir tree changes
format checking new posts
shrink fab-icons down to 33px
* reintoduce dir tree changes
format checking new posts
shrink fab-icons down to 33px
* next/prev buttons on posts and index
* Change "latest" to v1.10
* rename .md to match old blog and added explict permalinks for urls
* replacing a link to old blog
"short-definition" is not correct.
In the YAML files like data/glossary/minikube.yaml,_data/glossary/application-architect.yaml,data/glossary/cla.yaml ..., "short-description" are used, not "short-definition".
Tested in minikube by replacing the zookeeper image with the pause container and the scheduler was able to schedule all 3 pods on the minikube node. Changing it to zk, made the pods zk-1 and zk-2 pending with scheduling failure as expected.
* imaged.md kubernetes version changed
"This was tested with a private docker repository as of 26 June with Kubernetes version This was tested with a private docker repository as of 26 June with Kubernetes version v0.19.3. It should also work for a private registry such as quay.io, but that has not been tested.
v0.19.3 changed to v1.9.3
* Update images.md
* Update images.md
We have been using redirections in many pages when referencing the API
docs generated. Since the relocation of the generated files, this is
becoming difficult to maintain. This PR redirects all such links to the
generated artifacts so we can easily detect missing links if any.
closes: #7874
* Add link for IBM Cloud Private-CE on Linux Containers project
IBM Cloud Private-CE (Community Edition) on Linux Containers is a Terraform/Packer/BASH based IaC to create a seven node (1 Boot, 1 Master, 1 Management, 1 Proxy and 3 Workers) LXD cluster on Linux Host. Supported versions are: ICP 2.1.0.1 + Kubernetes 1.8.3 and ICP 2.1.0.2 + Kubernetes 1.9.1
Goal of this project was to create a Terraform based solution that can be easily configured to meet user needs for development purposes. This IaC script can be applied to Local or Cloud based Linux Host (Ubuntu). Additionally, environment specific TFVARS can allow simpler integration with DevOps pipeline.
Detailed information can be found at https://github.com/HSBawa/icp-ce-on-linux-containers.
* Update verbiage to expand IaC
* 1.10 update (#7151)
* Fix partition value expected behaviour explanation (#7123)
Fixes issue #7057
* Correct "On-Premise" to "On-Premises"
* Updates the Calico installation page (#7094)
* All files for Haufe Groups case study (#7051)
* Fix typo (#7127)
* fix typo of device-plugins.md (#7106)
* fix broken links (#7136)
* Updated configure-service-account (#7147)
Error from server resolved by escaping kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}' JSON string by '\'
* Remove docs related to 'require-kubeconfig' (#7138)
With kubernetes/kubernetes#58367 merged, v1.10 will not use the
"require-kubeconfig" flag. The flag has become a no-op solely to ensure
existing deployments won't break.
* Added Verification Scenario for a Pod that Uses a PVC in Terminating State (#7164)
The below PR:
https://github.com/kubernetes/kubernetes/pull/55873
modified scheduler in such a way that scheduling of a pod that uses a PVC in Terminating state fails.
That's why verification of such scenario was added to documentation.
* fix LimitPodHardAntiAffinityTopology name (#7221)
* Document the removal of the KubeletConfigFile feature gate (#7140)
With kubernetes/kubernetes#58978 merged, the said feature gate is
removed. This PR removes texts related to the gate and revises the
Feature Gates reference to reflect this change.
* deprecate three admission controller (#7363)
* Document the removal of Accelerators feature gate (#7389)
The `Accelerators` feature gate will be removed in 1.11. 1.10 will be
its last mile.
References: kubernetes/kubernetes#57384
* Update local storage docs for beta (#7473)
* Document that HugePages feature gate is Beta (#7387)
The `HugePages` feature gate has graduated to Beta in v1.10. This PR
documents this fact.
* Add HyperVContainer feature gates (#7502)
* Remove the beta reference from Taints and Tolerations doc (#7493)
* Kms provider doc (#7479)
* Kms provider doc
* issue# 7399, Create KMS-provider.md and update encrypt-data.md
* address review comments
* Document that Device Plugin feature is Beta (1.10) (#7512)
* Add docs for CRD features for 1.10 (#7439)
* Add docs for CRD features for 1.10
* Add CustomResourcesSubresources to list of feature gates
* Add latest changes to custom resources doc
* Add crds as abbreviated alias (#7437)
* Bring PVC Protection Feature to Beta (#7165)
* Bring PVC Protection Feature to Beta
The PR: https://github.com/kubernetes/kubernetes/pull/59052
brought PVC Protection feature to beta.
That's why the documentation is updated accordingly.
* The PVC Protection feature was renamed to Storage Protection. That's why the documentation is updated.
* promote PodNodeSelector to stable; document detailed behavior (#7134)
* promote PodNodeSelector to stable; document detailed behavior
* respond to feedback
* Update CPU manager feature enabling (#7390)
With `CPUManager` feature graduating to beta. No explicit enabling is
required starting v1.10.
References: kubernetes/kubernetes#55977
* Adding block volumeMode documentation for local volumes. (#7531)
Code review comments.
Changed property to field.
Address tech review comment.
* remove description kubectl --show-all (#7574)
--show-all has been deprecated and set to true by default.
https://github.com/kubernetes/kubernetes/pull/60210
* fix description about contribute style guide (#7592)
* fix description about KUBECONFIG (#7589)
s/envrionment/environment
* fix description about cni (#7588)
s/simultanously/simultaneously/
* fix description about MutatingAdmissionWebhook and ValidatingAdmissionWebhook (#7587)
* fix description about persistent volume binding (#7590)
s/slighty/slightly/
* Doc change for configurable pod resolv.conf Beta (#7611)
* fix description about out of resource handling (#7597)
s/threshhold/threshold
* fix description about zookeeper (#7598)
s/achive/achieve
* fix description about kubeadm (#7594)
s/compatability/compatibility/
* fix description about kubeadm (#7593)
* fix description about kubeadm implementation details (#7595)
* fix description about api concepts (#7596)
* Storage Protection was renamed to Storage Object in Use Protection (#7576)
* Storage Protection was renamed to Storage Object in Use Protection
The K8s PR: https://github.com/kubernetes/kubernetes/pull/59901
renamed Storage Protection to Storage Object in Use Protection.
That's why the same is also renamed in the documentation.
* Moved Storage Object in Use Protection admission plugin description down according to alphabetic order.
* Use PSP from policy API group. (#7562)
* update kubeletconfig docs for v1.10, beta (#7561)
* Update port-forwarding docs (#7575)
* add pv protection description (#7620)
* fix description about client library (#7634)
* Add docs on configuring NodePort IP (#7631)
* Document that LocalStorageCapacityIsolation is beta (#7635)
A follow-up to the kubernetes/kubernetes#60159 change which has promoted
the `LocalStorageCapacityIsolation` feature gate to Beta.
* Update CoreDNS docs for beta (#7638)
* Update CoreDNS docs for beta
* Review comments
* Fix typo (#7640)
* Update feature gates move to beta (#7662)
* Added the inability to use colon ':' character as environment variable names and described workaround (#7657)
* merge master to 1.10, with fixes (#7682)
* Flag names changed (s/admission-control/enable-admission-plugins); disable-admissions-plugin entry added; removed reference to admission controller/plugins requiring set order (for v1.10), redundant example enabling specific plugin, and redundant version-specific info (#7449)
* Documentation for MountPropagation beta (#7655)
* Remove job's scale-related operations (#7684)
* authentication: document client-go exec plugins (#7648)
* authentication: document client-go exec plugins
* Update authentication.md
* Update local ephemeral storage feature to beta (#7685)
Update local ephemeral storage feature to beta
* Update docs for windows container resources (#7653)
* add server-side print docs (#7671)
* Create a task describing Pod process namespace sharing (#7489)
* Add external metrics to HPA docs (#7664)
* Add external metrics to HPA docs
* Update horizontal-pod-autoscale-walkthrough.md
* Apply review comments to HPA walkthrough
* remove description about "scale jobs" (#7712)
* CSI Docs for K8s v1.10 (#7698)
* Add a warning about increased memory consumption for audit logging feature. (#7725)
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Update Audit Logging documentation for 1.10 (#7679)
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Fix stage names in audit logging documentation (#7746)
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Feature gate update for release 1.10 (#7742)
* State in the docs that the value of default Node labels are not reliable. (#7794)
* Kill the reference to --admission-control option (#7755)
The `--admission-control` option has been replaced by two new options in
v1.10. This PR kills the last appearance of the old option in the doc.
* Pvcprotection toc (#7807)
* Refreshing installation instructions (#7495)
* Refreshing installation instructions
Added conjure-up. Updated displays and juju versions to current versions.
* Updated anchors
* Fixed image value version typo (#7768)
Was inconsistent with other values
* Update flocker reference to the github repo (#7784)
* Fix typo in federation document (#7779)
* an user -> a user (#7778)
* Events are namespaced (#7767)
* fix 'monitoring' link lose efficacy problem' (#7764)
* docs/concepts/policy/pod-security-policy.md: minor fix. (#7659)
* Update downward-api-volume-expose-pod-information.md (#7771)
* Update downward-api-volume-expose-pod-information.md
The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact.
* Update downward-api-volume-expose-pod-information.md
One more spot needed fixing.
* Update downward-api-volume-expose-pod-information.md
Yet another fix, in the container example.
* Add Amadeus Case Study (#7783)
* Add Amadeus Case Study
* add Amadeus logo
* Fixed Cyrillic с in 'kube-proxy-cm' (#7787)
There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c.
* install-kubectl: choose one installation method (#7705)
The previous text layout suggested that all installations had to be done, one after another.
* Update install-kubeadm.md (#7781)
Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc.
* repair failure link (#7788)
* repair failure link
* repair failure link
* do change as required
* Update k8s201.md (#7777)
* Update k8s201.md
Change instructions to download yams files directly from the website (as used in other pages.)
Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step.
* Update k8s201.md
Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...)
* Gramatical fix to kompose introduction (#7792)
The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link.
* update amadeus.html (#7800)
* Fix a missing word in endpoint reconciler section (#7804)
* add toc entry for pvcprotection downgrade issue doc
* Pvcprotection toc (#7809)
* Refreshing installation instructions (#7495)
* Refreshing installation instructions
Added conjure-up. Updated displays and juju versions to current versions.
* Updated anchors
* Fixed image value version typo (#7768)
Was inconsistent with other values
* Update flocker reference to the github repo (#7784)
* Fix typo in federation document (#7779)
* an user -> a user (#7778)
* Events are namespaced (#7767)
* fix 'monitoring' link lose efficacy problem' (#7764)
* docs/concepts/policy/pod-security-policy.md: minor fix. (#7659)
* Update downward-api-volume-expose-pod-information.md (#7771)
* Update downward-api-volume-expose-pod-information.md
The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact.
* Update downward-api-volume-expose-pod-information.md
One more spot needed fixing.
* Update downward-api-volume-expose-pod-information.md
Yet another fix, in the container example.
* Add Amadeus Case Study (#7783)
* Add Amadeus Case Study
* add Amadeus logo
* Fixed Cyrillic с in 'kube-proxy-cm' (#7787)
There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c.
* install-kubectl: choose one installation method (#7705)
The previous text layout suggested that all installations had to be done, one after another.
* Update install-kubeadm.md (#7781)
Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc.
* repair failure link (#7788)
* repair failure link
* repair failure link
* do change as required
* Update k8s201.md (#7777)
* Update k8s201.md
Change instructions to download yams files directly from the website (as used in other pages.)
Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step.
* Update k8s201.md
Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...)
* Gramatical fix to kompose introduction (#7792)
The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link.
* update amadeus.html (#7800)
* Fix a missing word in endpoint reconciler section (#7804)
* add toc entry for pvcprotection downgrade issue doc
* revert TOC change
* Release 1.10 (#7818)
* Refreshing installation instructions (#7495)
* Refreshing installation instructions
Added conjure-up. Updated displays and juju versions to current versions.
* Updated anchors
* Fixed image value version typo (#7768)
Was inconsistent with other values
* Update flocker reference to the github repo (#7784)
* Fix typo in federation document (#7779)
* an user -> a user (#7778)
* Events are namespaced (#7767)
* fix 'monitoring' link lose efficacy problem' (#7764)
* docs/concepts/policy/pod-security-policy.md: minor fix. (#7659)
* Update downward-api-volume-expose-pod-information.md (#7771)
* Update downward-api-volume-expose-pod-information.md
The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact.
* Update downward-api-volume-expose-pod-information.md
One more spot needed fixing.
* Update downward-api-volume-expose-pod-information.md
Yet another fix, in the container example.
* Add Amadeus Case Study (#7783)
* Add Amadeus Case Study
* add Amadeus logo
* Fixed Cyrillic с in 'kube-proxy-cm' (#7787)
There was a typo (wrong character) in kube-proxy-cm.yaml - Cyrillic с (UTF-8 0x0441) was used instead of Latin c.
* install-kubectl: choose one installation method (#7705)
The previous text layout suggested that all installations had to be done, one after another.
* Update install-kubeadm.md (#7781)
Add note to kubeadm install instruction to help install in other arch i.e. aarch64, ppc64le etc.
* repair failure link (#7788)
* repair failure link
* repair failure link
* do change as required
* Update k8s201.md (#7777)
* Update k8s201.md
Change instructions to download yams files directly from the website (as used in other pages.)
Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step.
* Update k8s201.md
Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...)
* Gramatical fix to kompose introduction (#7792)
The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link.
* update amadeus.html (#7800)
* Fix a missing word in endpoint reconciler section (#7804)
* Partners page updates (#7802)
* Partners page updates
* Update to ZTE link
* Make using sysctls a task instead of a concept (#6808)
Closes: #4505
* add a note when mount a configmap to pod (#7745)
* adjust a note format (#7812)
* Update docker-cli-to-kubectl.md (#7748)
* Update docker-cli-to-kubectl.md
Edited the document for adherence to the style guide and word usage.
* Update docker-cli-to-kubectl.md
* Incorporated the changes suggested.
* Mount propagation update to include docker config (#7854)
* update overridden config for 1.10 (#7847)
* update overridden config for 1.10
* fix config file per comments
* Update Extended Resource doc wrt cluster-level resources (#7759)
* Update service.md
`securityGroupName` is the required value when creating LoadBalancer type service in Azure.
I got the following error without `securityGroupName` value.
> Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
* Update service.md
- Original example (with <myservicename> replaced with my-svc) will result in the following error:
error: at least one tcp port specifier must be provided
- Use the same example in this section seems ideal
If you created the resource (on your local minikube) as instructed using:
kubectl create -f https://k8s.io/docs/concepts/cluster-administration/nginx-app.yaml
then, you probably want to delete it from your minikube, in that case, the correct command is the one proposed in this PR.
* Update docker-cli-to-kubectl.md
Edited the document for adherence to the style guide and word usage.
* Update docker-cli-to-kubectl.md
* Incorporated the changes suggested.
The original wording didn't through very well. As much of the original sentence has been preserved as possible, primarily to ensure the kompose web address is see both in text and as a href link.
* Update k8s201.md
Change instructions to download yams files directly from the website (as used in other pages.)
Added instructions to delete labeled pod to avoid warnings in the subsequent deployment step.
* Update k8s201.md
Added example of using the exposed host from the a node running Kubernetes. (This works on AWS with Weave; not able to test it on other variations...)
* Update downward-api-volume-expose-pod-information.md
The pod spec puts the downward api files into /etc/podinfo, not directly in /etc. Updated docs to reflect this fact.
* Update downward-api-volume-expose-pod-information.md
One more spot needed fixing.
* Update downward-api-volume-expose-pod-information.md
Yet another fix, in the container example.
* Correct spelling mistake
The whole file only appeared once
* Correct spell
Correct the word "resource" spell.
* Is "kube/.config" should be ".kube/config"
It seems that the file is ".kube/config"
* Correct spelling mistake
The whole file only appeared once
* Correct spell
Correct the word "resource" spell.
* Is "kube/.config" should be ".kube/config"
It seems that the file is ".kube/config"
* behaviour to behavior
* Guide for upgrading kubeadm HA clusters.
* kubeadm HA upgrade guide: text changes from code review.
* Guide for upgrading kubeadm HA clusters: proposed changes after second round of code review.
Pod is the object to be scheduled, So "pod to schedule onto a node " and "pod to schedule on" are not suitable in the doc. "pod to be scheduled onto a node" is better.
Made updates for files, related to IPv6. Note: The release notes
cover 1.9. When 1.10 release notes are added, the comment about
the /66 restriction for IPv6 can be removed.
* fixed the interacting with cluster section for the ubuntu installation
* made changes as per request from zacharysarah
* added rancher stub
* added rancher documentation
* fixed missing capture tag
* added ingress example, fixed languages as per changes in the PR
* fixed page index as per pr
* fixed rancher readme
* Add a note on availability of tcp_syncookies syctl
Sysctl `net.ipv4.tcp_syncookies` is not availalbe on 4.4 kernel
as it's not namespaced yet.
* updating to use {: .note} notation
per https://kubernetes.io/docs/home/contribute/style-guide/#note
This list on the sidebar isn't very useful:
- it's not an exhaustive list
- it's not an up-to-date list either
- design docs are not documentation (they're already stale)
- we already link to the full list from https://kubernetes.io/docs/reference/
home page
Also removing the 'docs/admin/ovs-networking.md' document as per
the pull request comments, it's no longer necessary.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
A common source of beffudlement when using local hypervisors or cloud
providers with peculiar interface setups, IP adressing, or network
policies for which kubelet cannot guess the right IP to use.
`awk` is being used so that the example works in CoreOS Container Linux
too.
Requested in kubernetes/kubeadm#203.
* Please explain N/A's meaning
Because N/A's meaning probably is Not Available/ Not applicable or Name and Address
* all "N/A" change to "Not Available"
all "N/A" change to "Not Available"
* "Available" change to "Applicable"
all "Available" change to "Applicable"
- Moved details of recent releases (1.8 and onward) to the top
- added missing "with" in "compatible with the Kubernetes Container Runtime Interface (CRI)"
* Updating troubleshooting
Changed debug method over to CDK Field Agent and replaced old logging suggestion with the logging page.
* Rewording to hopefully clarify
Please let me know if this still isn't clear. It's a deceptively dense word soup and I wonder if I need to just expand on it some to remove assumptions.
* Updating privileged container information
We now use privileged containers by default on GPU-enabled nodes.
* Changes for consistency
Replaced worker with node.
* Pull out build instructions
* General clarifications and remove reference to merged kube-proxy PR
* Updates to sample yaml files, and clarification on host OS version (2016/latest vs 1709 tags)
* Reordering for clarity
* Add tag for Server 1709
* Addressing feedback
* Address feedback
* Fixed cross-node preemption example
The constraint between P and Q should be pod affinity rather than anti-affinity in order to the example to be correct.
Fixes#7149
* Fixed example to emphasize Zone namespace in pod anti-affinity
The default sort in liquid is ASCIIbetical, but there is a built in
sort_natural that allows you to sort things in human sensible
ways. This updates the glossary list to use sort_natural instead.
Fixes issue #7491
Because API data volumes like downwardAPI are expected to be fully
managed by Kubernetes and are now mounted read-only, this causes
problems with other files in /etc like /etc/resolv.conf that Docker
tries to add to the volume. Our examples should show such volumes
being mounted to a dedicated subdirectory for the volume.
The term_id for Label is singular, but the file is plural. All the
rest of the terms in the glossary prefer singular for the glossary
reference. Harmonizing the label entry is helpful for consistency.
Update all in tree tooltip references at the same time.
* Update Service Catalog docs to meet style guidelines
* Address stevepe's comments
* Remove full-links to cluster operator and application developer in glossary
- In the provided configuration file for `kubeadm init` the value for
`apiserver-count` needs to be put in quotes.
- In addition to /etc/kubernetes/pki/ca.* also /etc/kubernetes/pki/sa.*
need to be copied to the additional masters. See [this
comment](https://github.com/kubernetes/kubeadm/issues/546#issuecomment-350241024) by
@petergardfjall for details.
If we are getting releases from the stable channel, I think the plan output would say stable instead of experimental. At least, that is what I see in this video, around 40:15 mins in: https://www.youtube.com/watch?v=x9doB5eJWgQ&feature=youtu.be
* Update Create an External Load Balancer Doc
The `Create an External Load Balancer` readme has a `Finding your IP address` section which describes steps that do not work when running the service in Minikube. @jimmidyson describes how to find your ip address while running in Minikube here: https://github.com/kubernetes/minikube/issues/384#issuecomment-234409957. This change adds this helpful bit to the docs.
* Update create-external-load-balancer.md
* Update create-external-load-balancer.md
Add note callout formatting
* Update and revise 'Configuration Best Practices'
* Tidy up, clarify, and reword some confusing sections
* Update names of Kubernetes objects per Style Guide
* Update references to ReplicationControllers to ReplicaSets/Deployments
* Update and add some new cross-references
* Remove some out-of-date text
* Explain why you should create a Service before its backend or client workloads
* Reword advice about labels
* Capitalize k8s object names
* Clarify reference titles
* Explain but deprecate the :latest tag on images
* Mention both kubectl apply and kubectl create
* Address @abiogenesis-now comments
* strawman structure
* updates from PR review/feedback
* consolidate usage of SIG Docs and how to volunteer into a single location
* adding into ToC
* updates for Zach
* re-organizing and adding back approver lgtm comment
* Add files via upload
Custom Resource Definition, that replaces Third Party Resources.
* Update customresourcedefinition.yaml
Minor formating error
* Update customresourcedefinition.yaml
missing id key
* Update customresourcedefinition.yaml
deleted aka key
* Update customresourcedefinition.yaml
Made a minor edit to "name" and "id" and added "aka" section, but should require a "related" section. The related section may have the Custom Resource term, but there is currently no glossary term for Custom Resource.
* Replace old zkOk.sh livenessProbe by zookeeper-ready
Fixes one part of the issue #7287
* Update probe script content with the zookeeper-ready
Fixes the part with shows/explains the probe script at issue #7287
* Fix the path to delete liveness probe
Issue #7287
* Replace zkOk.sh readinessProbe by zookeeper-ready
Fixes "Testing for Readiness" section in issue #7287
* Add instructions to remove docker images; fixes#6874
On cleanup of Minikube, adds instructions to optionally remove Docker images created in tutorial setup
* update wording of instructions to include flag
Updates the wording to explicitly match the shell command and flags used.
If we are getting releases from the stable channel, I think the plan output would say stable instead of experimental. At least, that is what I see in this video, around 40:15 mins in: https://www.youtube.com/watch?v=x9doB5eJWgQ&feature=youtu.be
* Update on install-kubectl.md
Added more info on the reason people may get "the connection to the server was refused error". It will help newbies understand the kubectl is a client that connects to a cluster. Hence, a Kubernetes cluster such as a minikube tool will be needed to verify that kubectl is functioning correctly.
* updating wording to remove redundancy
* Updates to Component Overview
* Changed VMs to machines -- it can be both VM or physical machine.
* Separated Addons from Master section, since it depends on an addon if it's components are executed on Master or Node.
* Fix ID of Kubelet glossary
* Removed fluentd and supervisord
These are not necessary to mention here in the overview.
* fluentd is one of Cluster-level Logging solutions briefly described in Addons Section
* supervisord is not required to be run on the Node
* Requested change - remove Addons manager reference
* After review updates
* Updated the Addons page reference
* Update security-context.md
The old link to `PodSecurityContext` was 404. Found another one by starting from a `Pod` in the API Reference. Hope it is the appropriate one.
* Fix broken link to SecurityContext
resolves#7289
specifically, if the individuals listed in these leaf-node OWNERS
files issue an `/lgtm` comment on documents, it will no longer be taken
as an approver lgtm override that will merge the documents. This
preserves them in being chosen for reviews to the documents, and still
supports them using `/lgtm` to indicate technical accuracy.
* Use EOF instead of EOL in HA guide
This is for consistency with the rest of the docs.
* Change indentation from 4 to 3 spaces
The number of spaces in indentation is expected to be divisible by 3.
By having 4 spaces, an extra space was added to the beginning of all
shell code sections, causing issues for heredoc interpretation on
copy/paste.
Fixes one part of the issue #7056 about patch command failing to update.
In this case it changes the image URL to another different than the used
previously to create the StatefulSet.
* Update the workloads API versions to 1.9 for rest of the docs
* Remove comments per CR feedback
* Add a comment to be clear about which versions will work with the example
* removed link to self
* removed reference to deprecated documentation
* revised confusing statement, added more recent link to Kelsey Hightower Kubecon2017 talk
This PR adds a link to the cluster autoscaler project documentation
which can help answer some questions related to the scaler internals.
Closes: #1408
* Add an API concepts document and describe terminology and API chunking
Create a new API reference page that covers some high level topics
- terminology, paths, verbs, watching resources, chunking, and content
type negotation.
* Update api-concepts.md
Adding review feedback
The sample yaml contains base64 encoded strings that were generated with
trailing returns. This is inconsistent to the result from the command in
which a user passes the key and value from command line. This PR removes
the trailing "Cg==" characters for consistency.
Closes: #7065
Indented code block after normal paragraph is not rendered well. So changed the paragraphs to ordered list in consistency with other parts of this document.
Updated with respect to Storage/Storage Classes _"A StorageClass provides a way for administrators to describe the “classes” of storage *they* offer."_
The "Configure a Pod to Use a PersistentVolume for Storage"-task specifies that the content should be located on "/mnt/data" and not "/tmp/data", however this is not reflected in the yaml.
Many people have refrained from reading the whole document and started using /tmp as a de-facto standard directory to store data. Needless to say, using /tmp for persistent data is a bad idea and for the sake of the people only reading the first page, it should be changed to /mnt
I'm updating this after having read https://github.com/spiffxp/community/blob/0b27ee08362b4bb3cb467145705aae9fa0450bea/contributors/devel/owners.md, and it seems that what we have listed as "reviewers" is more appropriate for "approvers" - and there's probably folks who should be on the set of reviewers that we don't have listed there...
PetSet is a *very* old term that dates back to v1.4. We should not
continue evangelize such a concept where there is no trace in code base
today.
Closes: #6484
* Updated 404 link to kubeadm ref
* Update ref link to Federation API
* Fix broken links
* Manual fixes to autogenerated links
* Revert "Manual fixes to autogenerated links"
This reverts commit 94dba97a08da323b97350f4bb74385352e3f8f13.
* Import docs from other repos
* imported test docs
* fix README copy
* Add ToC YAML and index page for imported docs.
* modify update-imported-docs.sh
* Add `imported` to global ToCs
* Add nav to imported section
* remove unnecessary scope for docs/imported
* update script w/ comments and directory root fixes
* use genCmd variable
* display output of generation command
* Update instructions
* Add Community to /docs/imported/index.md
* fix travis errors
* update README.md and fix community docs issues
* simplify code, add comment
* make sure the binary is used instead of `go run`
* add automated handling for links from imported files
Put the expression "quantum entanglement" in quotes to signal to non-native readers that its use is as a turn of phrase and has no special jargonic meaning in this context.
For specifying mount propagation, changes to flags on apiserver and
kubelet are required. This PR fixes the problem.
For more comprehensive list of feature gate settings, please refer to
kubernetes/website#6364.
Closes: #5766
Update extension api-server to include missing steps for auth delegation cluster role binding and extension-apiserver-authentication-reader role binding.
Had a lot of trouble finding the exact way to "un-do" the tainting example provided here. Even the great folks on Slack couldn't provide the correct command to achieve this, even though it seems so trivial now that I know it. :-)
I think "Configuring DNS Service" reads like "you don't have DNS, let's install
it and configure it". This is more like you already have a DNS service, let's
tweak a few things.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
Apparently someone managed to squeeze stuff in between network policy topics.
Bringing them next to each other for coherency.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
The code for these providers has already been removed, but the
documentation has not been kept up to date. This page should
undergo a more thorough re-write, but this serves as a useful
stopgap.
Update double quotes format in yaml to avoid issue on copy/paste action :-)
I lost 1 hour before seeing the issue of double quotes format in my yaml file through the logs
=> kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kubedns
The current link to the flannel plugin is confusing. There are more
detailed description on using flannel on the github project site.
We should avoid linking to the specific yaml file. This PR changes the
link to the general markdown file.
Closes: #3835
Closes: #2896
According to the report, the google/cadvisor#1422 has been closed.
However, the related issue has been fixed in google/cadvisor#1489 and
merged a long time ago. We can safely remove the known issue now.
In the previous version it read as if you could
specify the `propagationPolicy` on the Object itself,
which isn't possible.
Change the documentation to make it clear that the
`propagationPolicy` is set on the `deleteOptions`
argument when invoking a Object deletion function.
This PR attempts to:
* Generally clean up the bootstrapping token doc.
* Separate the authentication and signing features. Help users that
only want to enable the authenticator without the signer.
* Adds a warning about ConfigMap signing being susceptible to MITM
if the same token is reused.
Currently we have two diferent doc pages to configure pod using ConfigMaps.
There are redundency between these two docs and also it creates some
confusion using the doc. Merging these two docs into single page and removing
redundency etc.
Checks an additional variable named versionedurl for the version name,
and uses the value as the url to reference. If the versionedurl doesn't
contain an entry for the version the current path is used.
e.g.
versionedurl:
v1.8: /docs/home
v1.7: /docs/old-path-to-doc
Make the 'trademark usage page' a hyperlink, thus removing the display of the raw URL (and condensing the footer from three lines to two.)
I assume there is some legalese reason why this has to be on Every Page, but other Collaborative Projects don't have it at all.
This PR is to address the concern about labels used in service diagrams.
The PR adds a note to explain the `ServiceIP` shown in the figure
instead of redrawing and pushing a new diagram.
On k8s 1.9, using --discovery-token
kubeadm join --discovery-token abcdef.1234567890abcdef --discovery-token-unsafe-skip-ca-verification 1.2.3.4:6443`
returns an error, but the node joins successfully with
kubeadm join --token abcdef.1234567890abcdef --discovery-token-unsafe-skip-ca-verification 1.2.3.4:6443`
kubectl-container example no longer exists and it has not been usable for
more than a year. it's time we scrub references to it and delete the source
as well.
* Merge branch 'master' of https://github.com/kubernetes/website into release-1.9
* 'master' of https://github.com/kubernetes/website:
[maintenance] December link fixes (#6680)
Update audit.md (#6381)
Fixed typo
concepts/policy/pod-security-policy.md: fix broken links.
Fixed a typo `illgal`
Add glossory entry for ReplicaSet
# Conflicts:
# docs/concepts/policy/pod-security-policy.md
# docs/tasks/debug-application-cluster/audit.md
* Spelling correction and sentence capitalization.
- Corrected the spelling error for storing, was put in as 'stoing'.
- Capitalized list items.
- Added '.' at end of sentences in the list items.
* Workaround for Jekyllr frontmatter
* fix typo
* Update access-cluster.md with a comment that for IPv6
the user should use [::1] for the localhost
* Trivial change to open release branch
* Undo trivial change
* add service ipvs overview
* Add instructions on how to setup kubectl
* Document conntrack dependency for kube-proxy
* Add an a
This is kind of jarring / missing an article. I'm guessing it should either be ' to a rack of bare metal servers.' or '...to racks of bare metal servers.'.
* adding example responses for common issues
- support request
- code bug report
* Trivial change to open release branch
* Undo trivial change
* Signed-off-by: Ziqi Zhao <zhaoziqi@qiniu.com> (#5366)
Fix the not-working test case yaml for /doc/concepts/storage/volumes.md
* kubectl-overview
* temp fix for broken pod and deployment links
* Update Table of Solutions for Juju
* Revise certificates documentation (#5965)
* Update review-issues.md
Some edits for clarity and condensed language.
* Update init-containers.md
Fix leading spaces in commands.
* Update kubectl-overview.md
Fix format.
* Update clc.md
Fix format.
* Update openstack-heat.md
The url no need. just highlight.
* Typo
I believe this should be "users" not "uses"
* making explicit hostname uniq requirement
* Update scheduling-hugepages.md
* Update update-daemon-set.md
* fix redirection of PersistentVolume
* Update hpa.md
* update kubectl instruction
* Use the format of kubeadm init
* fix spelling error
guarnatees to guarantees
* add matchLabels description (#6020)
* search and replace for k8s.github.io to website (#6019)
* fix scale command of object-management (#6011)
* Update replicaset.md (#6009)
* Update secret.md (#6008)
* specify password for mysql image (#5990)
* specify password for mysql image
* specify password for mysql image
* link error for run-stateless-application-deployment.md (#5985)
* link error for run-stateless-application-deployment.md
* link error for run-stateless-application-deployment.md
* Add performance implications of inter-pod affinity/anti-affinity (#5979)
* 404 monthly maintenance - October 2017 (#5977)
* Updated redirects
* More redirects
* Add conjure-up to Turnkey Cloud Solutions list (#5973)
* Add conjure-up to Turnkey Cloud Solutions list
* Changed wording slightly
* change the StatefulSet to ReplicaSet in reference (#5968)
* Clarification of failureThreshold of probes (#5963)
* Mention usage of block storage version param (#5925)
Mention usage of block storage version (bs-version) parameter to
workaround attachment issues using older K8S versions on an OpenStack
cloud with path-based endpoints.
Resolves: https://github.com/kubernetes/kubernetes.github.io/issues/5924
* Update sysctl-cluster.md (#5894)
Include guide on enabling unsafe sysctls in minikube
* Avoid Latin phrases & format note (#5889)
* Avoid Latin phrases & format note
according the Documentation Style Guide
* Update scratch.md
* Update scratch.md
* resolves jekyll rendering error (#5976)
- chinese isn't understood for keys in YAML frontmatter in jekyll, so
replaced it with the english equivalent that doesn't throw the
following error on rendering:
Error reading file src/kubernetes.github.io/cn/docs/concepts/cluster-administration/device-plugins.md: (<unknown>): could not find expected ':' while scanning a simple key at line 4 column 1
* Change VM to pod. (#6022)
* Add link to custom metrics. (#6023)
* Rephrase core group. (#6024)
* Added explanation on context to when joining (#6018)
* Update create-cluster-kubeadm.md (#5761)
Update Canal version in pod network apply commands
* Fixes issue #5620 (#5869)
* Fixes issue #5620
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* Restructured so that review process is for both current and upcoming
releases. Added content describing the use of tech reviewers.
* Removed incorrect Kubernetes reviewer link.
* Fixed tech reviewer URL to now use website
* Update pod-priority-preemption.md
fix-wrong-link-to-pod-preemption
* pod-security-policy.md: add links to the page about admission plugins.
* Adding all files for BlaBlaCar case study (#5857)
* Adding all files for BlaBlaCar case study
* Update blablacar.html
* Fix changed URL for google containers
* Add /docs/reference/auto-generated directory
* correct the downwardapi redirect
* Remove links using "here"
* Rename to /docs/reference/generated directory
* add Concept template
* Change title to just Ingress
* Link mistake (#6038)
* link mistake
* link mistake
* skip title check for skip_title_check.txt
* skip title check for skip_title_check.txt
* remove doesn't exist link.
* Fix podpreset task (#5705)
* Add a simple pod manifest to pod overview (#5986)
* Split PodPreset concept out from task doc (#5984)
* Add selector spec description (#5789)
* Add selector spec description
* Fix selector field explanation
* Put orphaned topics in TOC. (#6051)
* static-pod example bad format in the final page (#6050)
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* Fix `backoffLimit` field misplacement (#6042)
It should be placed in JobSpec according to:
https://github.com/kubernetes/kubernetes/blob/master/api/swagger-spec/batch_v1.json#L1488-L1514
* Update addons.md (#6061)
* add info about VMware NSX-T CNI plugin (#5987)
* add info about VMware NSX-T CNI plugin
Hello,
I'm VMware Networking and Security Architect and would like to include short information about our CNI plugin implementation similar to what other vendors did
Best regards
Emil Gagala
* Update networking.md
* Update networking.md
* Update networking.md
* Update: Using universal zsh configuration (#5669)
* Update install-kubectl.md
Zsh is not only oh-my-zsh, so I added universal configuration for zsh that also can be used in prezto.
* fix merge error after rebase
* Operating etcd cluster for Kubernetes bad format in the final page (#6056)
* Operating etcd cluster for Kubernetes bad format in the final page
* Update configure-upgrade-etcd.md
* Update configure-upgrade-etcd.md
* Usage note and warning tags. (#6053)
* Usage note and warning tags.
* Update configure-upgrade-etcd.md
* Update configure-upgrade-etcd.md
* Document jekyll includes snippets
* Add jekyll includes to docs home toc
- Remove extra kubernetes home in toc
* document docker cgroupdriver req (#5937)
* Update test blacklists (#6063)
* Update toc check blacklist
* Update title check blacklist
* wip
* wip
* Fix typo
* Document unconfined apparmor profile
* Revert "Document the unconfined profile for AppArmor" (#6268)
* CRD Validation: remove alpha warning, change enable instructions to (#6066)
disable
* Documented service annotation for AWS ELB SSL policy
* kubeadm: add a note about the new `--print-join-command` flag.
This is a new flag for the `kubeadm token create` command.
* Add a note to PDB page
* Improve Kubeadm reference doc (#6103)
* automatically-generated kubeadm reference doc
* user-mantained kubeadm reference doc
* Documentation for CSIPersistentVolume
* change replicaset documentation to use apps/v1 APIs
* Update service.md
ipvs alpha version -> beta version
* Updated Deployment concept docs (#6494)
* Updated Deployment concept docs
* Addressed comments
* Documentation for volume scheduling alpha feature
* Update admission control docs for webhooks
* Improve DNS documentation (#6479)
* update ds for 1.9
* Update service.md
* Update service.md
* Revert "begin updating webhook documentation" (#6575)
* Update version numbers to include 1.9 (#6518)
* Update site versions for 1.9
* Removed 1.4 docs
* Update _config.yml
* Update _config.yml
* updates for raw block devices
* rbac: docs for aggregated cluster roles (#6474)
* Added IPv6 information for Kubelet arguments (#6498)
* Added IPv6 info to kube-proxy arguments
* Added IPv6 information for argument for kubelet
* Update PVC resizing documentation (#6487)
* Updates for Windows Server version 1709 with K8s v1.8 (#6180)
* Updated for WSv1709 and K8s v1.8
* Updated picture and CNI config
* Fixed formatting on CNI Config
* Updated docs to reference Microsoft/SDN GitHub docs
* fix typo
* Workaround for Jekyllr frontmatter
* Added section on features and limitations, with example yaml files.
* Update index.md
* Added kubeadm section, few other small fixes
* Few minor grammar fixes
* Update access-cluster.md with a comment that for IPv6
the user should use [::1] for the localhost
* Addressed a number of issues brought up against the base PR
* Fixed windows-host-setup link
* Rewrite PodSecurityPolicy guide
* Update index.md
Signed-off-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org>
* Spelling correction and sentence capitalization.
- Corrected the spelling error for storing, was put in as 'stoing'.
- Capitalized list items.
- Added '.' at end of sentences in the list items.
* Update index.md
* Update index.md
* Addressed comments and rebased
* Fixed formatting
* Fixed formatting
* Updated header link
* Updated hyperlinks
* Updated warning
* formatting
* formatting
* formatting
* Revert "Update access-cluster.md with a comment that for IPv6"
This reverts commit 31e4dbdc25.
* Revert "fix typo"
This reverts commit c05678752d.
* Revert "Workaround for Jekyllr frontmatter"
This reverts commit b84ac59624.
* Fixed grammatical issues and reverted non-related commits
* Revert "Rewrite PodSecurityPolicy guide"
This reverts commit 5d39cfeae4.
* Revert "Spelling correction and sentence capitalization."
This reverts commit 47eed4346e.
* Fixed auto-numbering
* Minor formatting updates
* CoreDNS feature documentation (#6463)
* Initial placeholder PR for CoreDNS feature documentation
* Remove from admin, add content
* Fix missing endcapture
* Add to tasks.yml
* Review feedback
* Postpone Deletion of a Persistent Volume Claim in case It Is Used by a Pod (#6415)
* Postpone Deletion of a Persistent Volume Claim in case It Is Used by a Pod
A new feature PVC Protection was added into K8s 1.9 that's why this documentation change is needed.
* Added tag at the top of each new area.
* Fix typo
* Fix: switched on in (all kubelets) -> (all K8s components).
* Added link to admission controller
* Moved PVC Protection configuration into Before you begin section.
* Added steps how to verify PVC Protection feature.
* Fixes for admission controller plugin description and for PVC Protection description in PVC lifecycle.
* Testing official rendering of enumerations (1., 2., 3., etc.)
* Re-write to address comments from review.
* Fixed definition when a PVC is in active use by a pod.
* Change auditing docs page for 1.9 release (#6427)
* Change auditing docs page for 1.9 release
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Fix broken link
Signed-off-by: Mik Vyatskov <vmik@google.com>
* short circuit deny docs (#6536)
* line wrap
* short circuit deny
* address comments
* Add kubeadm 1.9 upgrade docs (#6485)
* kubeadm: Improve kubeadm documentation for v1.9 (#6645)
* Update admission control docs for webhooks (re-send #6368) (#6650)
* Update admission control docs for webhooks
* update in response to comments
* Revamp rkt and add CRI-O as alternative runtime (#6371)
Signed-off-by: Lorenzo Fontana <lo@linux.com>
* Documented NLB for Kubernetes 1.9 (#6260)
* Added IPV6 information to setup cluster using kubeadm (#6465)
* Added IPV6 information to setup cluster using kubeadm
* Updated kubeadm.md & create-cluster-kubeadm.md with IPv6 related information
* Added IPv6 options for kubeadm --init & automated address binding for kube-proxy based on version of IP configured for API server)
* Changes to kubeadm.md as per comments
* Modified kubeadm.md and create-cluster-kubeadm.md
* Implemented changes requested by zacharysarah
* Removed autogenerated kubeadm.md changes
* StatefulSet 1.9 updates. (#6550)
* updates sts concept and tutorials to use 1.9 apps/v1
* Update statefulset.md
* clarify pod name label
* Garbage collection updates for 1.9 (#6555)
* 1.9 gc policy update
* carify deletion
* Couple nits for dnsConfig doc (#6652)
* Add doc for AllowedFlexVolume (#6563)
* Update OpenStack Cloud Provider API support for v1.9 (#6638)
* Flex volume is GA. Remove alpha notation. (#6666)
* Update generated ref docs for Kubernetes and Federation components. (#6658)
* Update generated ref docs for Kubernetes and Federation components.
* Rename kubectl-options to kubectl.
* Add title to kubectl.
* Fix double synopsis.
* Update Federation API ref docs for 1.9. (#6636)
* Update federation API ref docs.
* Move and redirect.
* Move generated Federation docs to the generated directory.
* Fix titles.
* Type
* Fix titles
* Update auto-generated Kubernetes APi ref docs. (#6646)
* Update kubectl commands for 1.9 (#6635)
* add ExtendedResourceToleration admission controller (#6618)
* Update API reference paths for v1.9 (#6681)
* Trivial change to open release branch
* Undo trivial change
* add service ipvs overview
* Add instructions on how to setup kubectl
* Document conntrack dependency for kube-proxy
* Add an a
This is kind of jarring / missing an article. I'm guessing it should either be ' to a rack of bare metal servers.' or '...to racks of bare metal servers.'.
* adding example responses for common issues
- support request
- code bug report
* Trivial change to open release branch
* Undo trivial change
* Signed-off-by: Ziqi Zhao <zhaoziqi@qiniu.com> (#5366)
Fix the not-working test case yaml for /doc/concepts/storage/volumes.md
* kubectl-overview
* temp fix for broken pod and deployment links
* Update Table of Solutions for Juju
* Revise certificates documentation (#5965)
* Update review-issues.md
Some edits for clarity and condensed language.
* Update init-containers.md
Fix leading spaces in commands.
* Update kubectl-overview.md
Fix format.
* Update clc.md
Fix format.
* Update openstack-heat.md
The url no need. just highlight.
* Typo
I believe this should be "users" not "uses"
* making explicit hostname uniq requirement
* Update scheduling-hugepages.md
* Update update-daemon-set.md
* fix redirection of PersistentVolume
* Update hpa.md
* update kubectl instruction
* Use the format of kubeadm init
* fix spelling error
guarnatees to guarantees
* add matchLabels description (#6020)
* search and replace for k8s.github.io to website (#6019)
* fix scale command of object-management (#6011)
* Update replicaset.md (#6009)
* Update secret.md (#6008)
* specify password for mysql image (#5990)
* specify password for mysql image
* specify password for mysql image
* link error for run-stateless-application-deployment.md (#5985)
* link error for run-stateless-application-deployment.md
* link error for run-stateless-application-deployment.md
* Add performance implications of inter-pod affinity/anti-affinity (#5979)
* 404 monthly maintenance - October 2017 (#5977)
* Updated redirects
* More redirects
* Add conjure-up to Turnkey Cloud Solutions list (#5973)
* Add conjure-up to Turnkey Cloud Solutions list
* Changed wording slightly
* change the StatefulSet to ReplicaSet in reference (#5968)
* Clarification of failureThreshold of probes (#5963)
* Mention usage of block storage version param (#5925)
Mention usage of block storage version (bs-version) parameter to
workaround attachment issues using older K8S versions on an OpenStack
cloud with path-based endpoints.
Resolves: https://github.com/kubernetes/kubernetes.github.io/issues/5924
* Update sysctl-cluster.md (#5894)
Include guide on enabling unsafe sysctls in minikube
* Avoid Latin phrases & format note (#5889)
* Avoid Latin phrases & format note
according the Documentation Style Guide
* Update scratch.md
* Update scratch.md
* resolves jekyll rendering error (#5976)
- chinese isn't understood for keys in YAML frontmatter in jekyll, so
replaced it with the english equivalent that doesn't throw the
following error on rendering:
Error reading file src/kubernetes.github.io/cn/docs/concepts/cluster-administration/device-plugins.md: (<unknown>): could not find expected ':' while scanning a simple key at line 4 column 1
* Change VM to pod. (#6022)
* Add link to custom metrics. (#6023)
* Rephrase core group. (#6024)
* Added explanation on context to when joining (#6018)
* Update create-cluster-kubeadm.md (#5761)
Update Canal version in pod network apply commands
* Fixes issue #5620 (#5869)
* Fixes issue #5620
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* Restructured so that review process is for both current and upcoming
releases. Added content describing the use of tech reviewers.
* Removed incorrect Kubernetes reviewer link.
* Fixed tech reviewer URL to now use website
* Update pod-priority-preemption.md
fix-wrong-link-to-pod-preemption
* pod-security-policy.md: add links to the page about admission plugins.
* Adding all files for BlaBlaCar case study (#5857)
* Adding all files for BlaBlaCar case study
* Update blablacar.html
* Fix changed URL for google containers
* Add /docs/reference/auto-generated directory
* correct the downwardapi redirect
* Remove links using "here"
* Rename to /docs/reference/generated directory
* add Concept template
* Change title to just Ingress
* Link mistake (#6038)
* link mistake
* link mistake
* skip title check for skip_title_check.txt
* skip title check for skip_title_check.txt
* remove doesn't exist link.
* Fix podpreset task (#5705)
* Add a simple pod manifest to pod overview (#5986)
* Split PodPreset concept out from task doc (#5984)
* Add selector spec description (#5789)
* Add selector spec description
* Fix selector field explanation
* Put orphaned topics in TOC. (#6051)
* static-pod example bad format in the final page (#6050)
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* Fix `backoffLimit` field misplacement (#6042)
It should be placed in JobSpec according to:
https://github.com/kubernetes/kubernetes/blob/master/api/swagger-spec/batch_v1.json#L1488-L1514
* Update addons.md (#6061)
* add info about VMware NSX-T CNI plugin (#5987)
* add info about VMware NSX-T CNI plugin
Hello,
I'm VMware Networking and Security Architect and would like to include short information about our CNI plugin implementation similar to what other vendors did
Best regards
Emil Gagala
* Update networking.md
* Update networking.md
* Update networking.md
* Update: Using universal zsh configuration (#5669)
* Update install-kubectl.md
Zsh is not only oh-my-zsh, so I added universal configuration for zsh that also can be used in prezto.
* fix merge error after rebase
* Operating etcd cluster for Kubernetes bad format in the final page (#6056)
* Operating etcd cluster for Kubernetes bad format in the final page
* Update configure-upgrade-etcd.md
* Update configure-upgrade-etcd.md
* Usage note and warning tags. (#6053)
* Usage note and warning tags.
* Update configure-upgrade-etcd.md
* Update configure-upgrade-etcd.md
* Document jekyll includes snippets
* Add jekyll includes to docs home toc
- Remove extra kubernetes home in toc
* document docker cgroupdriver req (#5937)
* Update test blacklists (#6063)
* Update toc check blacklist
* Update title check blacklist
* wip
* wip
* Fix typo
* Document unconfined apparmor profile
* Revert "Document the unconfined profile for AppArmor" (#6268)
* CRD Validation: remove alpha warning, change enable instructions to (#6066)
disable
* Documented service annotation for AWS ELB SSL policy
* kubeadm: add a note about the new `--print-join-command` flag.
This is a new flag for the `kubeadm token create` command.
* Add a note to PDB page
* Improve Kubeadm reference doc (#6103)
* automatically-generated kubeadm reference doc
* user-mantained kubeadm reference doc
* Documentation for CSIPersistentVolume
* change replicaset documentation to use apps/v1 APIs
* Update service.md
ipvs alpha version -> beta version
* Updated Deployment concept docs (#6494)
* Updated Deployment concept docs
* Addressed comments
* Documentation for volume scheduling alpha feature
* Update admission control docs for webhooks
* Improve DNS documentation (#6479)
* update ds for 1.9
* Update service.md
* Update service.md
* Revert "begin updating webhook documentation" (#6575)
* Update version numbers to include 1.9 (#6518)
* Update site versions for 1.9
* Removed 1.4 docs
* Update _config.yml
* Update _config.yml
* updates for raw block devices
* rbac: docs for aggregated cluster roles (#6474)
* Added IPv6 information for Kubelet arguments (#6498)
* Added IPv6 info to kube-proxy arguments
* Added IPv6 information for argument for kubelet
* Update PVC resizing documentation (#6487)
* Updates for Windows Server version 1709 with K8s v1.8 (#6180)
* Updated for WSv1709 and K8s v1.8
* Updated picture and CNI config
* Fixed formatting on CNI Config
* Updated docs to reference Microsoft/SDN GitHub docs
* fix typo
* Workaround for Jekyllr frontmatter
* Added section on features and limitations, with example yaml files.
* Update index.md
* Added kubeadm section, few other small fixes
* Few minor grammar fixes
* Update access-cluster.md with a comment that for IPv6
the user should use [::1] for the localhost
* Addressed a number of issues brought up against the base PR
* Fixed windows-host-setup link
* Rewrite PodSecurityPolicy guide
* Update index.md
Signed-off-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org>
* Spelling correction and sentence capitalization.
- Corrected the spelling error for storing, was put in as 'stoing'.
- Capitalized list items.
- Added '.' at end of sentences in the list items.
* Update index.md
* Update index.md
* Addressed comments and rebased
* Fixed formatting
* Fixed formatting
* Updated header link
* Updated hyperlinks
* Updated warning
* formatting
* formatting
* formatting
* Revert "Update access-cluster.md with a comment that for IPv6"
This reverts commit 31e4dbdc25.
* Revert "fix typo"
This reverts commit c05678752d.
* Revert "Workaround for Jekyllr frontmatter"
This reverts commit b84ac59624.
* Fixed grammatical issues and reverted non-related commits
* Revert "Rewrite PodSecurityPolicy guide"
This reverts commit 5d39cfeae4.
* Revert "Spelling correction and sentence capitalization."
This reverts commit 47eed4346e.
* Fixed auto-numbering
* Minor formatting updates
* CoreDNS feature documentation (#6463)
* Initial placeholder PR for CoreDNS feature documentation
* Remove from admin, add content
* Fix missing endcapture
* Add to tasks.yml
* Review feedback
* Postpone Deletion of a Persistent Volume Claim in case It Is Used by a Pod (#6415)
* Postpone Deletion of a Persistent Volume Claim in case It Is Used by a Pod
A new feature PVC Protection was added into K8s 1.9 that's why this documentation change is needed.
* Added tag at the top of each new area.
* Fix typo
* Fix: switched on in (all kubelets) -> (all K8s components).
* Added link to admission controller
* Moved PVC Protection configuration into Before you begin section.
* Added steps how to verify PVC Protection feature.
* Fixes for admission controller plugin description and for PVC Protection description in PVC lifecycle.
* Testing official rendering of enumerations (1., 2., 3., etc.)
* Re-write to address comments from review.
* Fixed definition when a PVC is in active use by a pod.
* Change auditing docs page for 1.9 release (#6427)
* Change auditing docs page for 1.9 release
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Address review comments
Signed-off-by: Mik Vyatskov <vmik@google.com>
* Fix broken link
Signed-off-by: Mik Vyatskov <vmik@google.com>
* short circuit deny docs (#6536)
* line wrap
* short circuit deny
* address comments
* Add kubeadm 1.9 upgrade docs (#6485)
* kubeadm: Improve kubeadm documentation for v1.9 (#6645)
* Update admission control docs for webhooks (re-send #6368) (#6650)
* Update admission control docs for webhooks
* update in response to comments
* Revamp rkt and add CRI-O as alternative runtime (#6371)
Signed-off-by: Lorenzo Fontana <lo@linux.com>
* Documented NLB for Kubernetes 1.9 (#6260)
* Added IPV6 information to setup cluster using kubeadm (#6465)
* Added IPV6 information to setup cluster using kubeadm
* Updated kubeadm.md & create-cluster-kubeadm.md with IPv6 related information
* Added IPv6 options for kubeadm --init & automated address binding for kube-proxy based on version of IP configured for API server)
* Changes to kubeadm.md as per comments
* Modified kubeadm.md and create-cluster-kubeadm.md
* Implemented changes requested by zacharysarah
* Removed autogenerated kubeadm.md changes
* StatefulSet 1.9 updates. (#6550)
* updates sts concept and tutorials to use 1.9 apps/v1
* Update statefulset.md
* clarify pod name label
* Garbage collection updates for 1.9 (#6555)
* 1.9 gc policy update
* carify deletion
* Couple nits for dnsConfig doc (#6652)
* Add doc for AllowedFlexVolume (#6563)
* Update OpenStack Cloud Provider API support for v1.9 (#6638)
* Flex volume is GA. Remove alpha notation. (#6666)
* Update generated ref docs for Kubernetes and Federation components. (#6658)
* Update generated ref docs for Kubernetes and Federation components.
* Rename kubectl-options to kubectl.
* Add title to kubectl.
* Fix double synopsis.
* Update Federation API ref docs for 1.9. (#6636)
* Update federation API ref docs.
* Move and redirect.
* Move generated Federation docs to the generated directory.
* Fix titles.
* Type
* Fix titles
* Update auto-generated Kubernetes APi ref docs. (#6646)
* Update kubectl commands for 1.9 (#6635)
* add ExtendedResourceToleration admission controller (#6618)
* Update API reference paths for v1.9 (#6681)
This is inline with minikube warning message:
```
WARNING: The xhyve driver is now deprecated and support for it will be removed in a future release.
Please consider switching to the hyperkit driver, which is intended to replace the xhyve driver.
See https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver for more information.
To disable this message, run [minikube config set WantShowDriverDeprecationNotification false]
```
* Greatly expanded custom resoure concept guide
Added section on how to decide if you need a custom resource or not.
Added section on how to decide if you want CRD or AA.
* Converted HTML tables to Markdown
* Add links, clean up first table
* configmap vs UDR
* ease of use comparison
* Advanced features
* More cleanup
* Addressed review comments.
* Move lists out of table cells
Attempt at making the left sidebar for /docs/reference more useful, I've got
some more sidebar improvements I'm saving for other PRs for this area.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
The link in the sample command "kubectl apply" pointed to a YAML file that was rendered wrongly. I replaced the problem link to a link to the same file on git, which avoids the rendering issue.
https://github.com/kubernetes/website/issues/6377
I added the clusterrolebinding command to the "Adding a cluster to a federation" section, plus I cleaned up the section to remove redundant text, and turned the instructions into a numbered list.
The configuration values section only mentions liveness probes which is confusing for the reader. Additionally liveness and readiness probes behave differently if they time out. Readiness probe will not restart the Pod but the documentation looks like it would.
For new readers without a detailed understanding of how deletion occurs, specifying foreground deletion first gives the needed context to understand what background deletion is eschewing.
* Update PodAffinity/PodAntiAffinity Use-Case
Updated PodAffinity use-case to reflect use of PodAntiAffinity. Under the previous Redis deployment manifest, each replica is not guaranteed its own node.
* add podAntiAffinity to web-server spec use-case
* Additional changes to PodAffinity/PodAntiAffinity Use-Case
Renames
Concepts → Extending the Kubernetes API
to
Concepts → Extending Kubernetes
Adds in subsections
Adds concept guides for other (non-API) extensions.
Subsequent commits will add an overview for all the ways to extend kubernetes,
hence the subsections in this commit.
Google Cloud has a new feature called "Open in Cloud Shell" which supports invoking a URL that auto-starts a cloud shell session (via in-browser ssh to an auto-provisioned VM) with an auto-cloned repo specified in the URL.
* Update maximum cluster size guidance
This document was published when v1.3 was the prevailing k8s version. This change provides newer guidance with respect to using large clusters.
* Update federation.md
Add documentation of all OpenStack provider options including an
indication as to which items are required versus optional and which
configuration blocks they must appear in.
Also adds a section detailing which services are required/expected by
the OpenStack provider implementation.
https://github.com/kubernetes/website/issues/5980
* Update install-kubectl.md
Zsh is not only oh-my-zsh, so I added universal configuration for zsh that also can be used in prezto.
* fix merge error after rebase
* add info about VMware NSX-T CNI plugin
Hello,
I'm VMware Networking and Security Architect and would like to include short information about our CNI plugin implementation similar to what other vendors did
Best regards
Emil Gagala
* Update networking.md
* Update networking.md
* Update networking.md
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* static-pod example bad format in the final page
* Fixes issue #5620
Signed-off-by: Brad Topol <btopol@us.ibm.com>
* Restructured so that review process is for both current and upcoming
releases. Added content describing the use of tech reviewers.
* Removed incorrect Kubernetes reviewer link.
* Fixed tech reviewer URL to now use website
- chinese isn't understood for keys in YAML frontmatter in jekyll, so
replaced it with the english equivalent that doesn't throw the
following error on rendering:
Error reading file src/kubernetes.github.io/cn/docs/concepts/cluster-administration/device-plugins.md: (<unknown>): could not find expected ':' while scanning a simple key at line 4 column 1
This is kind of jarring / missing an article. I'm guessing it should either be ' to a rack of bare metal servers.' or '...to racks of bare metal servers.'.
This document is very good, but it does not mention anywhere how a node would obtain its own Pod CIDR when setting up static pod routing on something like bare metal.
I also think the kube-proxy section on this page should include *--cluster-cidr* in the "arguments to consider" area. I say should because I'm not confident that I'm right. If I omitted --cluster-cidr from the kube-proxy and controller manager, and found that my pod routing didn't work, adding the switch would be one of the first things I'd try.
The doc asks users to use `ps` command inside the nginx container, when
ps is not installed inside the container. So this commit adds that
command to install ps.
* change some chinese expression
* change some chinese expression
* Update cpu-memory-limit.md
* change some chinese expression
change some chinese expression
* Adding all files for BlaBlaCar case study
* Update blablacar.html
* 3 updated listings for partner page
* Revert "Update blablacar.html"
This reverts commit 73c21d64c56d3f2038530d66da8428f67d26ad76.
* Revert "Adding all files for BlaBlaCar case study"
This reverts commit d53523f21411ba28fe59e9d30e1169777e4c84f3.
* Adding all files for BlaBlaCar case study
* Adding KubeCon banners to community page and homepage
* Revert "Adding all files for BlaBlaCar case study"
This reverts commit d53523f21411ba28fe59e9d30e1169777e4c84f3.
Removing case study commit from branch
* Update index.html
The current Fine Job Queue page refers to a one-pod-per-job setup in the intro content (as in the Coarse Job Queue Page) but then proceeds to talk about a multiple jobs per pod setup. I've edited the intro content to reflect that.
* Removed unessary caracters when outputing the CA key hash using openssl
Removed unessary caracters when outputing the CA key hash using openssl.
* Changed CA key gathering cmd
Changed CA key gathering cmd to make it comatible with different versions of openssl
Update flannel script to use latest version.
1. It is fully compatible with previous versions (see [Release Notes](https://github.com/coreos/flannel/releases))
2. `kube-flannel-rbac.yml` was merged to `kube-flannel.yml`
* initial version of how to develop and debug locally with telepresence
* minor fixups
* add overview, prereq, steps blocks
* add whatsnext capture
* remove further reading header
* incorporate feedback from @radhikapc
* incorporate more feedback
1. There is no flag called `--trust-ca-file` in etcd and i presume it is `--trusted-ca-file`
2. Using the same key and cert peer.key and peer.cert for both peer communication and client communication, confuses user. So differentiated it.
* explain how to enable heapster on minikube
The docs which ask user to see if heapster is running,
this commit adds explanation of how you can enable heapster
on minikube Kubernetes cluster.
* Update assign-cpu-resource.md
* Update assign-memory-resource.md
For the 1.8.0 release, we found that kubeadm was enabling certificate
rotation, but didn't properly add the RBAC bindings to allow the new
CSRs to get auto-approved. As a stop-gap, we documented how to manually
approve these CSRs as part of the upgrade, but this change is to trade
those instructions for actually creating an RBAC binding to allow the
auto-approval to happen.
This has the added benefit that when certificates start to expire and
need to be rotated, the approval will be automatic, unlike the previous
one-off solution.
* GC now supports non-core resources
* Add two examples about how to analysis audits of kube-apiserver (#4264)
* Deprecate system:nodes binding
* [1.8] StatefulSet `initialized` annotation is now ignored.
* inits the kubeadm upgrade docs
addresses kubernetes/kubernetes.github.io/issues/4689
* adds kubeadm upgrade cmd to ToC
addresses kubernetes/kubernetes.github.io/issues/4689
* add workload placement docs
* ScaleIO - document udpate for 1.8
* Add documentation on storageClass.mountOptions and PV.mountOptions (#5254)
* Add documentation on storageClass.mountOptions and PV.mountOptions
* convert notes into callouts
* Add docs for CustomResource validation
add info about supported fields
* advanced audit beta features (#5300)
* Update job workload doc with backoff failure policy (#5319)
Add to the Jobs documentation how to use the new backoffLimit field that
limit the number of Pod failure before considering the Job as failed.
* Documented additional AWS Service annotations (#4864)
* Add device plugin doc under concepts/cluster-administration. (#5261)
* Add device plugin doc under concepts/cluster-administration.
* Update device-plugins.md
* Update device-plugins.md
Add meta description. Fix typo. Change bare metal deployment to manual deployment.
* Update device-plugins.md
Fix typo again.
* Update page.version. (#5341)
* Add documentation on storageClass.reclaimPolicy (#5171)
* [Advanced audit] use new herf for audit-api (#5349)
This tag contains all the changes in v1beta1 version. Update it now.
* Added documentation around creating the InitializerConfiguration for the persistent volume label controller in the cloud-controller-manager (#5255)
* Documentation for kubectl plugins (#5294)
* Documentation for kubectl plugins
* Update kubectl-plugins.md
* Update kubectl-plugins.md
* Updated CPU manager docs to match implementation. (#5332)
* Noted limitation of alpha static cpumanager.
* Updated CPU manager docs to match implementation.
- Removed references to CPU pressure node condition and evictions.
- Added note about new --cpu-manager-reconcile-period flag.
- Added note about node allocatable requirements for static policy.
- Noted limitation of alpha static cpumanager.
* Move cpu-manager task link to rsc mgmt section.
* init containers annotation removed in 1.8 (#5390)
* Add documentation for TaintNodesByCondition (#5352)
* Add documentation for TaintNodesByCondition
* Update nodes.md
* Update taint-and-toleration.md
* Update daemonset.md
* Update nodes.md
* Update taint-and-toleration.md
* Update daemonset.md
* Fix deployments (#5421)
* Document extended resources and OIR deprecation. (#5399)
* Document extended resources and OIR deprecation.
* Updated extended resources doc per reviews.
* reverts extra spacing in _data/tasks.yml
* addresses `kubeadm upgrade` review comments
Feedback from @chenopis, @luxas, and @steveperry-53 addressed with this commit
* HugePages documentation (#5419)
* Update cpu-management-policies.md (#5407)
Fixed the bad link.
Modified "cpu" to "CPU".
Added more 'yaml' as supplement.
* Update RBAC docs for v1 (#5445)
* Add user docs for pod priority and preemption (#5328)
* Add user docs for pod priority and preemption
* Update pod-priority-preemption.md
* More updates
* Update docs/admin/kubeadm.md for 1.8 (#5440)
- Made a couple of minor wording changes (not strictly 1.8 related).
- Did some reformatting (not strictly 1.8 related).
- Updated references to the default token TTL (was infinite, now 24 hours).
- Documented the new `--discovery-token-ca-cert-hash` and `--discovery-token-unsafe-skip-ca-verification` flags for `kubeadm join`.
- Added references to the new `--discovery-token-ca-cert-hash` flag in all the default examples.
- Added a new _Security model_ section that describes the security tradeoffs of the various discovery modes.
- Documented the new `--groups` flag for `kubeadm token create`.
- Added a note of caution under _Automating kubeadm_ that references the _Security model_ section.
- Updated the component version table to drop 1.6 and add 1.8.
- Update `_data/reference.yml` to try to get the sidebar fixed up and more consistent with `kubefed`.
* Update StatefulSet Basics for 1.8 release (#5398)
* addresses `kubeadm upgrade` review comments
2nd iteration review comments by @luxas
* adds kubelet upgrade section to kubeadm upgrade
* Fix a bulleted list on docs/admin/kubeadm.md. (#5458)
I updated this doc yesterday and I was absolutely sure I fixed this, but I just saw that this commit got lost somehow.
This was introduced recently in https://github.com/kubernetes/kubernetes.github.io/pull/5440.
* Clarify the API to check for device plugins
* Moving Flexvolume to separate out-of-tree section
* addresses `kubeadm upgrade` review comments
CC: @luxas
* fixes kubeadm upgrade index
* Update Stackdriver Logging documentation (#5495)
* Re-update WordPress and MySQL PV doc to use apps/v1beta2 APIs (#5526)
* Update statefulset concepts doc to use apps/v1beta2 APIs (#5420)
* add document on kubectl's behavior regarding initializers (#5505)
* Update docs/admin/kubeadm.md to cover self-hosting in 1.8. (#5497)
This is a new beta feature in 1.8.
* Update kubectl patch doc to use apps/v1beta2 APIs (#5422)
* [1.8] Update "Run Applications" tasks to apps/v1beta2. (#5525)
* Update replicated stateful application task for 1.8.
* Update single instance stateful app task for 1.8.
* Update stateless app task for 1.8.
* Update kubectl patch task for 1.8.
* fix the link of persistent storage (#5515)
* update the admission-controllers.md index.md what-is-kubernetes.md link
* fix the link of persistent storage
* Add quota support for local ephemeral storage (#5493)
* Add quota support for local ephemeral storage
update the doc to this alpha feature
* Update resource-quotas.md
* Updated Deployments concepts doc (#5491)
* Updated Deployments concepts doc
* Addressed comments
* Addressed more comments
* Modify allocatable storage to ephemeral-storage (#5490)
Update the doc to use ephemeral-storage instead of storage
* Revamped concepts doc for ReplicaSet (#5463)
* Revamped concepts doc for ReplicaSet
* Minor changes to call out specific versions for selector defaulting and
immutability
* Addressed doc review comments
* Remove petset documentations (#5395)
* Update docs to use batch/v1beta1 cronjobs (#5475)
* add federation job doc (#5485)
* add federation job doc
* Update job.md
Edits for clarity and consistency
* Update job.md
Fixed a typo
* update DaemonSet concept for 1.8 release (#5397)
* update DaemonSet concept for 1.8 release
* Update daemonset.md
Fix typo. than -> then
* Update bootstrap tokens doc for 1.8. (#5479)
* Update bootstrap tokens doc for 1.8.
This has some changes I missed when I was updating the main kubeadm documention:
- Bootstrap tokens are now beta, not alpha (https://github.com/kubernetes/features/issues/130)
- The apiserver flag to enable the authenticator changedin 1.8 (https://github.com/kubernetes/kubernetes/pull/51198)
- Added `auth-extra-groups` documentaion (https://github.com/kubernetes/kubernetes/pull/50933)
- Updated the _Token Management with `kubeadm`_ section to link to the main kubeadm docs, since it was just duplicated information.
* Update bootstrap-tokens.md
* Updated the Cassandra tutorial to use apps/v1beta2 (#5548)
* add docs for AllowPrivilegeEscalation (#5448)
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
* Add local ephemeral storage alpha feature in managing compute resource (#5522)
* Add local ephemeral storage alpha feature in managing compute resource
Since 1.8, we add the local ephemeral storage alpha feature as one
resource type to manage. Add this feature into the doc.
* Update manage-compute-resources-container.md
* Update manage-compute-resources-container.md
* Update manage-compute-resources-container.md
* Update manage-compute-resources-container.md
* Update manage-compute-resources-container.md
* Update manage-compute-resources-container.md
* Added documentation for Metrics Server (#5560)
* authorization: improve authorization debugging docs (#5549)
* Document mount propagation (#5544)
* Update /docs/setup/independent/create-cluster-kubeadm.md for 1.8. (#5524)
This introduction needed a couple of small tweaks to cover the `--discovery-token-ca-cert-hash` flag added in https://github.com/kubernetes/kubernetes/pull/49520 and some version bumps.
* Add task doc for alpha dynamic kubelet configuration (#5523)
* Fix input/output of selfsubjectaccess review (#5593)
* Add docs for implementing resize (#5528)
* Add docs for implementing resize
* Update admission-controllers.md
* Added link to PVC section
* minor typo fixes
* Update NetworkPolicy concept guide with egress and CIDR changes (#5529)
* update zookeeper tutorial for 1.8 release
* add doc for hostpath type (#5503)
* Federated Hpa feature doc (#5487)
* Federated Hpa feature doc
* Federated Hpa feature doc review fixes
* Update hpa.md
* Update hpa.md
* update cloud controller manager docs for v1.8
* Update cronjob with defaults information (#5556)
* Kubernetes 1.8 reference docs (#5632)
* Kubernetes 1.8 reference docs
* Kubectl reference docs for 1.8
* Update side bar with 1.8 kubectl and api ref docs links
* remove petset.md
* update on state of HostAlias in 1.8 with hostNetwork Pod support (#5644)
* Fix cron job deletion section (#5655)
* update imported docs (#5656)
* Add documentation for certificate rotation. (#5639)
* Link to using kubeadm page
* fix the command output
fix the command output
* fix typo in api/resources reference: "Worloads"
* Add documentation for certificate rotation.
* Create TOC entry for cloud controller manager. (#5662)
* Updates for new versions of API types
* Followup 5655: fix link to garbage collection (#5666)
* Temporarily redirect resources-reference to api-reference. (#5668)
* Update config for 1.8 release. (#5661)
* Update config for 1.8 release.
* Address reviewer comments.
* Switch references in HPA docs from alpha to beta (#5671)
The HPA docs still referenced the alpha version. This switches them to
talk about v2beta1, which is the appropriate version for Kubernetes 1.8
* Deprecate openstack heat (#5670)
* Fix typo in pod preset conflict example
Move container port definition to the correct line.
* Highlight openstack-heat provider deprecation
The openstack-heat provider for kube-up is being deprecated and will be
removed in a future release.
* Temporarily fix broken links by redirecting. (#5672)
* Fix broken links. (#5675)
* Fix render of code block (#5674)
* Fix broken links. (#5677)
* Add a small note about auto-bootstrapped CSR ClusterRoles (#5660)
* Update kubeadm install doc for v1.8 (#5676)
* add draft workloads api content for 1.8 (#5650)
* add draft workloads api content for 1.8
* edits per review, add tables, for 1.8 workloads api doc
* fix typo
* Minor fixes to kubeadm 1.8 upgrade guide. (#5678)
- The kubelet upgrade instructions should be done on every host, not
just worker nodes.
- We should just upgrade all packages, instead of calling out kubelet
specifically. This will also upgrade kubectl, kubeadm, and
kubernetes-cni, if installed.
- Draining nodes should also ignore daemonsets, and master errors can be
ignored.
- Make sure that the new kubeadm download is chmoded correctly.
- Add a step to run `kubeadm version` to verify after downloading.
- Manually approve new kubelet CSRs if rotation is enabled (known issue).
* Release 1.8 (#5680)
* Fix versions for 1.8 API ref docs
* Updates for 1.8 kubectl reference docs
* Kubeadm /docs/admin/kubeadm.md cleanup, editing. (#5681)
* Update docs/admin/kubeadm.md (mostly 1.8 related).
This is Fabrizio's work, which I'm committing along with my edits (in a commit on top of this).
* A few of my own edits to clarify and clean up some Markdown.
* Chinese translation: 7.24-9.3, by shirdrn.
* Translate and review again, and fix any translation problems for these 14 docs.
* Delete network-policies.md temporarily, and then re-submit it for this PR.
- change afinity field value to match yaml spec
- update and reorder steps for cordoning nodes to make more sense. currenlty says "all but four". In reality, want to cordon the three nodes that the pods are scheduled on. not "all but four".
- add new line to code snippet for easier "copy/paste"
these links don't go anywhere anymore (the respective pages must have been moved?), and are more of a distraction than adding any real value when reading that paragraph.
* Update organize-cluster-access-kubeconfig.md
Explain that context is just a named group for convenience, and
that current context is used by default if no other params are present
* Update organize-cluster-access-kubeconfig.md
* Revert "Fix the doc example"
This reverts commit 2872def62b.
* Revert "add the set of sessionAffinity timeoutseconds (#5474)"
This reverts commit 657734de6f.
* Revert "pod-security-policy.md: fix broken link to PSP proposal."
This reverts commit 8db51e099f.
* Revert "fix typo"
This reverts commit 24e5383071.
* Revert "Update images.md"
This reverts commit f844a41502.
* Revert "Update links to avoid redirects. (#5614)"
This reverts commit 35c7393849.
My nvidia GPU name was "GeForce GTX 1070" which isn't a correct label
"a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character"
The SSL-on-AWS documentation was missing a critical annotation, without which SSL termination doesn't work (all ports are configured to use SSL).
This also fixes the indentation of the existing YAML.
The command was failing with
error: error parsing jsonpath {range, unclosed action
We need to quote `$JSONPATH` so the full contents of the variable are
passed to `-o jsonpath=`.
Fixes#4258
- Fixes an inaccuracy: `template: metadata: labels:` labels the Pod template rather than the containers
- Elaborates some more on the explanation of the manifest
Fix the mistakes in the "StatefulSet Basics"
In the section "Updating StatefulSets", when the update strategy is OnDelete and the web-0 pod is updated by deleting it manually.
Then the web-1 and web-2 should still have the original image. But in the current version, the article says that the web-0 and web-1
still have the original image.
This patch refactors the admin/admission-controllers section:
- Reorder the built-in controllers based on their names
- Added controllers that were not documented:
* GenericAdmissionWebhook
* Initializers
* LimitPodHardAntiAffinity
* NamespaceAutoProvision
* NamespaceExists
* OwnerReferencesPermissionEnforcement
* PersistenVolumeLabel
* PodPreset
* PodTolerationRestriction
* Update photon-controller.md
Fix format: number order in Prerequisites Part is 1->2->3->4->5->6, rather than 1->2->1->1->2->3
* add intents to fix ordered bullets
* Update stage-documentation-changes.md
Fix the format. The format in orginal web page is confusion.
* convert note to callout
* make note multiline
* fix code block
* Add docs in Chinese
Add configure-redis-using-configmap.md in Chinese
* Modify docs in Chinese
Modify imperative-object-management-command.md in Chinese
When going through this section of the documentation, I found myself
wishing the concepts linked to the relevant documentation, so I could
verify I understood the concepts.
Remove the custom modules description in the authorization and
authentication docs. While we could add more later, we probably
don't want to advertise them to end users.
Also note that the authentication webhook and authenticating proxy
can be used to integrate with unsupported auth protocols.
Going through the guestbook tutorial for the first time,
the deployment configuration mentioned that whether my configuration
included a DNS service would dictate which env value I used for the
`GET_HOSTS_FROM` variable. According to
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/,
k8s includes DNS by default starting with v1.3.
Add this additional info to help the user better understand when DNS
may/may not be enabled.
I struggled to discover information on how to specify a kubernetes
version when starting minikube. Ultimately, I found the answer through
searching Github issues, and also running `minikube start --help`.
Given it seems like a fairly common task, I think it could be useful to
include it in the getting started documentation.
On the concept overview page there are lists of example concepts.
Currently only two are linked to (and one of those to an old location).
This change adds links to all of the concepts so that a new user quickly
see some exaple concepts.
* [glossary] Glossary MVP
* resolve conflict
* initial pass at includable glossary data
* tag to term mapping
* Change StatefulSets to singular, StatefulSet
* revise glossary style guide, move
* make descriptions plural
* tutorials/guestbook: fix broken links
Importing from kubernetes/examples repository.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Import newer versions for guestbook and cassandra
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Update mysql-wordpress-pd import script
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Import wordpress-mysql tutorial
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Update scheduling-gpus.md
It sounds like that kubelet will not automatically load the nvidia uvm driver,I have recurrent it when my cluster reboot nvml driver and nvidia-uvm driver not loaded.
To fix it simply,make the docker-plugin autostart.
I think it's important to tell other developers to prevent this situation
* Update scheduling-gpus.md
* Update kubectl-overview.md
The first letter of "where" should be capital, and some lost "." should be added.
* Update kubectl-overview.md
* Update kubectl-overview.md
* Deprecated docs warning
* Unknown tag 'endcomment'
* only add css when necessary
* try lighter bgcolor
* tweak copy
* change development url to point at vnext-staging
* try callout
* rollback
* change var names
* update var used
* fix var typo
* turn off deprecation message
* Show current version of docs in nav
* Branch in edit link
* WIP version selector
* An actual working but not pretty version dropdown
* update URLs for versions
v1.7: https://kubernetes.io/docs/home/
v1.6: https://v1-6.docs.kubernetes.io/docs/home/
v1.5: https://v1-5.docs.kubernetes.io/docs/home/
v1.4: https://v1-4.docs.kubernetes.io/docs/home/
* fix v1.4 and v1.5 paths
* Tidier drop downs
* Make font visible always
* Make background match main nav always
* change to major.minor version number
* show only major.minor version in drop down list
* switch from githubbranch to docsbranch
* update githubbranch
* update githubbranch values
* Border radius for bottom of dropdown
* Tabs are hard
* Update master-node-communication.md
Not working Links are updated
* Update master-node-communication.md
changed based on suggestion
* updated as per suggestion
* add examples for interpod configurations
* re-word and fix typo based on review comments
* explain podAffinity with examples
* review comments: make replicas 3 for both workload types
* Address final review comments
kube-apiserver heading did not render correct on my Chrome. The change did nothing to the github preview so maybe there is a fix already, but consistency with the other headings might be worth the change.
Hi, we've created and are maintaining the kubernetes-py library. It uses python objects to manipulate the kubernetes API objects. We're using it to manage our operations on kubernetes daily.
Initial PR to reflect new scalability limits. I have assumed the new number of total containers from the previous relationship but would prefer Wojciech to confirm
* Update the reference docs for kubefed
* fix syntax typos
* add period
* fix ToC links
* fix kubefed link
* revert to Kubefed title as link
* Add kubefed reference docs for the first time
* Add link for base kubefed command also
* update scratch.md for issue #4068
Issue #4068 details the dangers of recommending single etcd instance.
This will likely need to be expanded into better "highly available" cluster documentation
* Refactor list style
* fix ordered list
* fix unordered list
* ul
* add back shell
* secrets: add a best practices section and API access recommentations
This section attempts to capture some of the best practices around
client API access to secrets. Specitically that controllers should
avoid list and watch operations in favor of getting specific secrets.
* add "are"
* Update assign-pod-node.md
I am a freshman on Kubernetes development.When I use the affinity feature,it confuses me that why the pod won't stop after I changing the node's label which makes the node no longer satisfy the affinity condition.Although I learn how this feature works by community, I hope the documentation can help people especially fresh man better.^_^
* Update assign-pod-node.md after review
I have fixed the commit after review
* Fix incorrect link and add missing ones for pod template
The current link to the pod template is pointing to replication controller
page. Also couple places missing a link to get better view of what pod
template is.
* fix pod link
* fix pods url
Fix restartPolicy indent.
Use valid keys from the ConfigMap in the step previous to the last special-config creation. Key special.type was not created anywhere in previous steps anywars.
Looks like
```
the cluster operator may want to set limits that a pod must consume at least 20% of the memory and CPU
```
was meant to be
```
the cluster operator may want to set limits that a pod must consume no more than 20% of the memory and CPU
```
* Fix Typo - "TokenAccessReviewStatus" -> "status"
"TokenAccessReview" is the value of the "kind" field of the request and response. The webhook has to fill in the "status" field to indicate authenticate pass/fail status.
* Use back ticks for spec
For consistency highlight spec better using back ticks
* Fix typos and add a paragraph for initializers doc
- Fixed a few consistency issues and typos in the doc
- Also fixed an username typo in assignees
- Added a paragraph explaining how the example initializerconfiguration will
be applied once it is created.
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Add .pending to metadata.initializers, re-wording
Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
* Create callouts.css
* Linking callouts.css
* Alphabetical order
* Added doc for using callouts
* Fix link
* Deleting info
* Updates per Ahmet
Added more detailed examples and a common issues section
* Update style-guide.md
- "SubjectAccessReview" is the value of the "kind" field of the request and response. The webhook has to fill in the "status" field to indicate authorization passed or failed.
- For consistency highlight spec better using back ticks
> 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.
> For 1.12 Features: set Milestone to 1.12 and Base Branch to release-1.12
> Help editing and submitting pull requests: https://deploy-preview-9510--kubernetes-io-master-staging.netlify.com/docs/contribute/start/#submit-a-pull-request.

@@ -9,7 +9,7 @@ These are just guidelines, not rules. Use your best judgment, and feel free to p
### Code of Conduct
Kubernetes follows the [Cloud Native Computing Foundation (CNCF) Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to Sarah Novotny[sarahnovotny@google.com](mailto:sarahnovotny@google.com) and/or Dan Kohn[dan@linuxfoundation.org](mailto:dan@linuxfoundation.org).
Kubernetes follows the [Cloud Native Computing Foundation (CNCF) Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to Sarah Novotny[sarahnovotny@google.com](mailto:sarahnovotny@google.com) and/or Dan Kohn[dan@linuxfoundation.org](mailto:dan@linuxfoundation.org).
### Documentation and Site Decisions
@@ -17,7 +17,7 @@ The [Kubernetes SIG Docs Discussion Group](https://groups.google.com/forum/#!for
### Style Guides and Templates
Before submitting a pull request to create new content, please review the [Kubernetes.io style guide](http://kubernetes.io/docs/home/contribute/style-guide/) and follow the [instructions for using page templates](http://kubernetes.io/docs/home/contribute/page-templates/).
Before submitting a pull request to create new content, please review the [Kubernetes.io style guide](http://kubernetes.io/docs/home/contribute/style-guide/) and follow the [instructions for using page templates](http://kubernetes.io/docs/home/contribute/page-templates/).
## Contributing to Documentation
@@ -26,10 +26,10 @@ Before submitting a pull request to create new content, please review the [Kuber
Kubernetes.io uses github issues to track documentation issues and requests. If you see a documentation issue, submit an issue using the following steps:
1. Check the [kubernetes.io issues list](https://github.com/kubernetes/kubernetes.github.io/issues) as you might find out the issue is a duplicate.
2. Use the [included template for every new issue](https://github.com/kubernetes/kubernetes.github.io/issues/new). When you create a bug report, include as many details as possible and include suggested fixes to the issue.
1. Check the [kubernetes.io issues list](https://github.com/kubernetes/website/issues) as you might find out the issue is a duplicate.
2. Use the [included template for every new issue](https://github.com/kubernetes/website/issues/new). When you create a bug report, include as many details as possible and include suggested fixes to the issue.
Note that code issues should be filed against the main kubernetes repository, while documentation issues should go in the kubernetes.io repository.
Note that code issues should be filed against the main kubernetes repository, while documentation issues should go in the kubernetes.io repository.
sig-instrumentation: #GH: sig-instrumentation-pr-reviews; e.g. metrics, logging, events
- DirectXMan12
- x13n
- kawych
- brancz
- fabxc
- loburm
- piosz
- fgrzadkowski
sig-multicluster: #GH: sig-multicluster-pr-reviews; e.g. resiliency against availability zone outages; hybrid clouds; spanning multiple cloud providers; migration to public clouds
- madhusudancs
- marun
- jianhuiz
- shashidharatd
- nikhiljindal
- quinton-hoole
- mwielgus
- csbell
sig-network: #Team: Network; GH: sig-network-pr-reviews; e.g. Ingress, Network Policies, Services
- bowei
- caseydavenport
- danwinship
- dcbw
- dnardo
- freehan
- mrhohn
- nicksardo
- thockin
sig-node: #Team: Node; GH: sig-node-pr-reviews; e.g. Containers, Docker, Images, OS images, Pods, Registries
## Instructions for Contributing to the Kubernetes Documentation
# The Kubernetes documentation
Welcome! We are very pleased you want to contribute to the Kubernetes documentation.
Welcome! This repository houses all of the assets required to build the Kubernetes website and documentation. We're very pleased that you want to contribute!
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
## Contributing to the docs
You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it.
Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.** Also note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one originally assigned to provide you feedback. Furthermore, in some cases, one of your reviewers might ask for a technical review from a [Kubernetes tech reviewer](https://github.com/kubernetes/website/wiki/Tech-reviewers) when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.
For more information about contributing to the Kubernetes documentation, see:
* [Contributing to the Kubernetes Documentation](http://kubernetes.io/editdocs/)
* [Creating a Documentation Pull Request](http://kubernetes.io/docs/home/contribute/create-pull-request/)
* [Writing a New Topic](http://kubernetes.io/docs/home/contribute/write-new-topic/)
* [Staging Your Documentation Changes](http://kubernetes.io/docs/home/contribute/stage-documentation-changes/)
The Kubernetes documentation is built using the [Hugo](https://gohugo.io) static site generator. See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions.
> Building and running the site requires the Hugo version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L9) file.
To run the site locally when you have Hugo installed:
```bash
make serve
```
This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates immediately and forces a browser refresh.
## Building the site using Docker
You can build the Kubernetes docs using [Docker](https://docker.com). To get started, make sure that you have Docker running and build the image locally:
```bash
make docker-image
```
Once the `kubernetes-hugo` image has been built locally, you can run the site locally:
```bash
make docker-serve
```
Open up your browser to http://localhost:1313 to view the site.
## Thank you!
Kubernetes thrives on community participation, and we really appreciate your
contributions to our site and our documentation!
Kubernetes thrives on community participation, and we really appreciate your contributions to our site and our documentation!
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.**
<!-- Commenting out AnswerDash for now; we need to work on our list of questions/answers/design first
<!-- Start of AnswerDash script <script>var AnswerDash;!function(e,t,n,s,a){if(!t.getElementById(s)){var i,r=t.createElement(n),c=t.getElementsByTagName(n)[0];e[a]||(i=e[a]=function(){i.__oninit.push(arguments)},i.__oninit=[]),r.type="text/javascript",r.async=!0,r.src="https://p1.answerdash.com/answerdash.min.js?siteid=756",r.setAttribute("id",s),c.parentNode.insertBefore(r,c)}}(window,document,"script","answerdash-script","AnswerDash");</script> <!-- End of AnswerDash script -->
<p>Ready to get your hands dirty? Build a simple Kubernetes cluster that runs "Hello World" for Node.js.</p>
</div>
<divclass="nav-box">
<h3><ahref="/docs/home/">Documentation</a></h3>
<p>Learn how to use Kubernetes with the use of walkthroughs, samples, and reference documentation. You can even <ahref="/editdocs/"data-auto-burger-exclude>help contribute to the docs</a>!</p>
</div>
<divclass="nav-box">
<h3><ahref="/community/">Community</a></h3>
<p>If you need help, you can connect with other Kubernetes users and the Kubernetes authors, attend community events, and watch video presentations from around the web.</p>
blurb:'Tectonic is the enterprise-ready Kubernetes product, by CoreOS. It adds key features to allow you to manage, update, and control clusters in production.'
},
{
type:0,
name:'Deis',
logo:'deis',
link:'https://deis.com',
blurb:'Deis the creators of Helm, Workflow, and Steward, helps developers and operators build, deploy, manage and scale their applications on top of Kubernetes.'
},
{
type:0,
name:'StackPointCloud',
logo:'stackpoint',
link:'https://stackpoint.io',
blurb:'StackPointCloud builds Stackpoint.io, the universal control plane for Kubernetes Anywhere -- compose and build your own infrastructure as easily as a DigitalOcean droplet at any public cloud provider.'
blurb:'The Puppet module for Kubernetes makes it easy to manage Pods, Replication Controllers, Services and more in Kubernetes, and to build domain-specific interfaces to one\'s Kubernetes configuration.'
blurb:'CockroachDB is a distributed SQL database whose built-in replication and survivability model pair with Kubernetes to truly make data easy.'
},
{
type:0,
name:'Skippbox',
logo:'skippbox',
link:'http://www.skippbox.com/tag/products/',
blurb:'Creator of Cabin the first mobile application for Kubernetes, and kompose. Skippbox’s solutions distill all the power of k8s in simple easy to use interfaces.'
},
{
type:0,
name:'Weave Works',
logo:'weave_works',
link:' https://weave.works/kubernetes',
blurb:'Weaveworks enables Developers and Dev/Ops teams to easily connect, deploy, secure, manage, and troubleshoot microservices in Kubernetes.'
blurb:'Wercker automates your build, test and deploy pipelines for launching containers and triggering rolling updates on your Kubernetes cluster. '
},
{
type:0,
name:'Rancher',
logo:'rancher',
link:'http://rancher.com/kubernetes/',
blurb:'Rancher is an open-source, production-ready container management platform that makes it easy to deploy and leverage Kubernetes in the enterprise.'
},
{
type:0,
name:'Red Hat',
logo:'redhat',
link:'https://www.openshift.com/',
blurb:'Leverage an enterprise Kubernetes platform to orchestrate complex, multi-container apps.'
blurb:'AppFormix is a cloud infrastructure performance optimization service helping enterprise operators streamline their cloud operations on any Kubernetes cloud. '
blurb:'The Canonical Distribution of Kubernetes enables you to operate Kubernetes clusters on demand on any major public cloud and private infrastructure.'
},
{
type:0,
name:'Distelli',
logo:'distelli',
link:'https://www.distelli.com/',
blurb:'Pipelines from your source repositories to your Kubernetes Clusters on any cloud.'
blurb:'The Nuage SDN platform provides policy-based networking between Kubernetes Pods and non-Kubernetes environments with visibility and security monitoring.'
},
{
type:0,
name:'Sematext',
logo:'sematext',
link:'https://sematext.com/kubernetes/',
blurb:'Logging & Monitoring: Automatic collection and processing of Metrics, Events and Logs for auto-discovered pods and Kubernetes nodes.'
},
{
type:0,
name:'Diamanti',
logo:'diamanti',
link:'https://www.diamanti.com/products/',
blurb:'Diamanti deploys containers with guaranteed performance using Kubernetes in the first hyperconverged appliance purpose built for containerized applications.'
},
{
type:0,
name:'Apprenda',
logo:'apprenda',
link:'https://apprenda.com/kubernetes-support/',
blurb:'Apprenda creates and supports modern, enterprise-ready application platforms for both cloud native and traditional application workloads.'
},
{
type:0,
name:'Aporeto',
logo:'aporeto',
link:'https://aporeto.com/trireme',
blurb:'Aporeto makes cloud-native applications secure by default without impacting developer velocity and works at any scale, on any cloud.'
},
{
type:0,
name:'Giant Swarm',
logo:'giant_swarm',
link:'https://giantswarm.io',
blurb:'Giant Swarm provides fully-managed Kubernetes Clusters in your location of choice, so you can focus on your product.'
blurb:'Mirantis builds and manages private clouds with open source software such as OpenStack, deployed as containers orchestrated by Kubernetes.'
},
{
type:0,
name:'Kubernetic',
logo:'kubernetic',
link:'https://kubernetic.com/',
blurb:'Kubernetic is a Kubernetes Desktop client that simplifies and democratizes cluster management for DevOps.'
},
{
type:1,
name:'Apprenda',
logo:'apprenda',
link:'https://apprenda.com/kubernetes-support/',
blurb:'Apprenda offers flexible and wide range of support plans for pure play Kubernetes on your choice of infrastructure, cloud provider and operating system.'
},
{
type:1,
name:'Reactive Ops',
logo:'reactive_ops',
link:'https://www.reactiveops.com/kubernetes/',
blurb:'ReactiveOps has written automation on best practices for infrastructure as code on GCP & AWS using Kubernetes, helping you build and maintain a world-class infrastructure at a fraction of the price of an internal hire.'
blurb:'Kubernetes experts that on-board applications and empower IT teams to get the most out of containerised technology.'
},
{
type:1,
name:'Deis',
logo:'deis',
link:'https://deis.com/services/',
blurb:'Deis provides professional services and 24x7 operational support for any Kubernetes cluster managed by our global cluster operations team.'
},
{
type:1,
name:'StackPointCloud',
logo:'stackpoint',
link:'https://stackpoint.io',
blurb:'StackPointCloud offers a wide range of support plans for managed Kubernetes clusters built through its universal control plane for Kubernetes Anywhere.'
blurb:'Samsung SDS’s Cloud Native Computing Team offers expert consulting across the range of technical aspects involved in building services targeted at a Kubernetes cluster.'
blurb:'Container Solutions is a premium software consultancy that focuses on programmable infrastructure, offering our expertise in software development, strategy and operations to help you innovate at speed and scale.'
},
{
type:1,
name:'Jetstack',
logo:'jetstack',
link:'https://www.jetstack.io/',
blurb:'Jetstack is an organisation focused entirely on Kubernetes. They will help you to get the most out of Kubernetes through expert professional services and open source tooling. Get in touch, and accelerate your project.'
blurb:'Tigera builds high performance, policy driven, cloud native networking solutions for Kubernetes.'
},
{
type:1,
name:'Skippbox',
logo:'skippbox',
link:'http://www.skippbox.com/services/',
blurb:'Skippbox brings its Kubernetes expertise to help companies embrace Kubernetes on their way to digital transformation. Skippbox offers both professional services and expert training.'
},
{
type:1,
name:'Harbur',
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.'
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.'
{% if concept %}<!-- check for this before going any further; if not present, skip to else at bottom -->
# Overview of {{concept}}s
{% if what_is %}
### What is a {{ concept }}?
{{ what_is }}
{% else %}
{% include templates/_errorthrower.md missing_block='what_is' heading='What is a (Concept)?' purpose='explains what this concept is and its purpose.' %}
{% endif %}
{% if when_to_use %}
### When to use {{ concept }}s
{{ when_to_use }}
{% else %}
{% include templates/_errorthrower.md missing_block='when_to_use' heading='When to use (Concept)' purpose='explains when to use this object.' %}
{% endif %}
{% if when_not_to_use %}
### When not to use {{ concept }}s
{{ when_not_to_use }}
{% else %}
{% include templates/_errorthrower.md missing_block='when_not_to_use' heading='When not to use (Concept)' purpose='explains when not to use this object.' %}
{% endif %}
{% if status %}
### {{ concept }} status
{{ status }}
{% else %}
{% include templates/_errorthrower.md missing_block='status' heading='Retrieving status for a (Concept)' purpose='explains how to retrieve a status description for this object.' %}
{% endif %}
{% if usage %}
#### Usage
{{ usage }}
{% else %}
{% include templates/_errorthrower.md missing_block='usage' heading='Usage' purpose='shows the most basic, common use case for this object, in the form of a code sample, command, etc, using tabs to show multiple approaches' %}
{% endif %}
<!-- continuing the "if concept" if/then: -->
{% else %}
### ERROR: You must define a "concept" variable
{: style="color:red" }
This template requires a variable called `concept` that is simply the name of the
concept for which you are giving an overview. This will be displayed in the
headings for the document.
To get rid of this message and take advantage of this template, define `concept`:
```liquid
{% raw %}{% assign concept="Replication Controller" %}{% endraw %}
```
Complete this task, then we'll walk you through preparing the rest of the document.
{% include templates/_errorthrower.md missing_block='command' heading='kubectl (command)' purpose='names the kubectl command, so that the appropriate YAML file (from _data/kubectl) can be transformed into a page.' %}
{% include templates/_errorthrower.md missing_block='overview' purpose='states, in one or two sentences, the purpose of this document' %}
{% endif %}
* TOC
{: toc}
{% if prerequisites %}
## Before you begin
{{ prerequisites }}
{% else %}
{% include templates/_errorthrower.md missing_block='prerequisites' heading='Before you begin' purpose='lists action prerequisites and knowledge prerequisites' %}
{% endif %}
{% if steps %}
{{ steps }}
{% else %}
{% include templates/_errorthrower.md missing_block='steps' purpose='lists a sequence of numbered steps that accomplish the task.' %}
{% include templates/_errorthrower.md missing_block='overview' purpose='states, in one or two sentences, the purpose of this document' %}
{% endif %}
* TOC
{: toc}
{% if objectives %}
## Objectives
{{ objectives }}
{% else %}
{% include templates/_errorthrower.md missing_block='objectives' heading='Objectives' purpose='lists the objectives for this tutorial.' %}
{% endif %}
{% if prerequisites %}
## Before you begin
{{ prerequisites }}
{% else %}
{% include templates/_errorthrower.md missing_block='prerequisites' heading='Before you begin' purpose='lists action prerequisites and knowledge prerequisites' %}
{% endif %}
{% if lessoncontent %}
{{ lessoncontent }}
{% else %}
{% include templates/_errorthrower.md missing_block='lessoncontent' purpose='provides the lesson content for this tutorial.' %}
<h1> CASE STUDY:<imgsrc="http://c.mfcreative.com/i/logo/ancestry-on-dark.svg"class="logo"width="22%"style="margin-bottom:-12px;margin-left:3px;"><br><divclass="subhead">Digging Into the Past With New Technology</div></h1>
</div>
<divclass="details">
Company <b>Ancestry</b> Location <b>Lehi, Utah</b> Industry <b>Internet Company, Online Services</b>
</div>
<hr>
<divclass="cols">
<divclass="col1">
<h2>Challenge</h2>
Ancestry, the global leader in family history and consumer genomics, uses sophisticated engineering and technology to help everyone, everywhere discover the story of what led to them. The company has spent more than 30 years innovating and building products and technologies that at their core, result in real and emotional human responses. <ahref="https://www.ancestry.com">Ancestry</a> currently serves more than 2.6 million paying subscribers, holds 20 billion historical records, 90 million family trees and more than four million people are in its AncestryDNA network, making it the largest consumer genomics DNA network in the world. The company's popular website, <ahref="https://www.ancestry.com">ancestry.com</a>, has been working with big data long before the term was popularized. The site was built on hundreds of services, technologies and a traditional deployment methodology. "It's worked well for us in the past," says Paul MacKay, software engineer and architect at Ancestry, "but had become quite cumbersome in its processing and is time-consuming. As a primarily online service, we are constantly looking for ways to accelerate to be more agile in delivering our solutions and our products."
<br>
</div>
<divclass="col2">
<h2>Solution</h2>
The company is transitioning to cloud native infrastructure, using <ahref="https://www.docker.com">Docker</a> containerization, <ahref="https://kubernetes.io">Kubernetes</a> orchestration and <ahref="https://prometheus.io">Prometheus</a> for cluster monitoring.<br>
<br>
<h2>Impact</h2>
"Every single product, every decision we make at Ancestry, focuses on delighting our customers with intimate, sometimes life-changing discoveries about themselves and their families," says MacKay. "As the company continues to grow, the increased productivity gains from using Kubernetes has helped Ancestry make customer discoveries faster. With the move to Dockerization for example, instead of taking between 20 to 50 minutes to deploy a new piece of code, we can now deploy in under a minute for much of our code. We’ve truly experienced a significant time savings in addition to the various features and benefits from cloud native and Kubernetes-type technologies."
</div>
</div>
<divclass="banner2">
<divclass="banner2text">
"At a certain point, you have to step back if you're going to push a new technology and get key thought leaders with engineers within the organization to become your champions for new technology adoption. At training sessions, the development teams were always the ones that were saying, 'Kubernetes saved our time tremendously; it's an enabler. It really is incredible.'"<br><br><spanstyle="font-size:16px">- PAUL MACKAY, SOFTWARE ENGINEER AND ARCHITECT AT ANCESTRY</span>
</div>
</div>
<divclass="fullcol">
<h2>It started with a Shaky Leaf.</h2>
Since its introduction a decade ago, the Shaky Leaf icon has become one of Ancestry's signature features, which signals to users that there's a helpful hint you can use to find out more about your family tree.<br><br>
So when the company decided to begin moving its infrastructure to cloud native technology, the first service that was launched on <ahref="https://kubernetes.io">Kubernetes</a>, the open source platform for managing application containers across clusters of hosts, was this hint system. Think of it as Amazon's recommended products, but instead of recommending products the company recommends records, stories, or familial connections. "It was a very important part of the site," says Ancestry software engineer and architect Paul MacKay, "but also small enough for a pilot project that we knew we could handle in a very appropriate, secure way."<br><br>
And when it went live smoothly in early 2016, "our deployment time for this service literally was cut down from 50 minutes to 2 or 5 minutes," MacKay adds. "The development team was just thrilled because we're focused on supplying a great experience for our customers. And that means features, it means stability, it means all those things that we need for a first-in-class type operation."<br><br>
The stability of that Shaky Leaf was a signal for MacKay and his team that their decision to embrace cloud native technologies was the right one for the company. With a private data center, Ancestry built its website (which launched in 1996) on hundreds of services and technologies and a traditional deployment methodology. "It worked well for us in the past, but the sum of the legacy systems became quite cumbersome in its processing and was time-consuming," says MacKay. "We were looking for other ways to accelerate, to be more agile in delivering our solutions and our products."
</div>
<divclass="banner3">
<divclass="banner3text">
"And when it [Kubernetes] went live smoothly in early 2016, 'our deployment time for this service literally was cut down from 50 minutes to 2 or 5 minutes,' MacKay adds. 'The development team was just thrilled because we're focused on supplying a great experience for our customers. And that means features, it means stability, it means all those things that we need for a first-in-class type operation.'"
</div>
</div>
<divclass="fullcol">
That need led them in 2015 to explore containerization. Ancestry engineers had already been using technology like <ahref="https://www.java.com/en/">Java</a> and <ahref="https://www.python.org">Python</a> on Linux, so part of the decision was about making the infrastructure more Linux-friendly. They quickly decided that they wanted to go with Docker for containerization, "but it always comes down to the orchestration part of it to make it really work," says MacKay.<br><br>
His team looked at orchestration platforms offered by <ahref="https://docs.docker.com/compose/">Docker Compose</a>, <ahref="http://mesos.apache.org">Mesos</a> and <ahref="https://www.openstack.org/software/">OpenStack</a>, and even started to prototype some homegrown solutions. And then they started hearing rumblings of the imminent release of Kubernetes v1.0. "At the forefront, we were looking at the secret store, so we didn't have to manage that all ourselves, the config maps, the methodology of seamless deployment strategy," he says. "We found that how Kubernetes had done their resources, their types, their labels and just their interface was so much further advanced than the other things we had seen. It was a feature fit."<br><br>
<divclass="quote">
Plus, MacKay says, "I just believed in the confidence that comes with the history that Google has with containerization. So we started out right on the leading edge of it. And we haven't looked back since."</div><br>
Which is not to say that adopting a new technology hasn't come with some challenges. "Change is hard," says MacKay. "Not because the technology is hard or that the technology is not good. It's just that people like to do things like they had done [before]. You have the early adopters and you have those who are coming in later. It was a learning experience on both sides."<br><br>
Figuring out the best deployment operations for Ancestry was a big part of the work it took to adopt cloud native infrastructure. "We want to make sure the process is easy and also controlled in the manner that allows us the highest degree of security that we demand and our customers demand," says MacKay. "With Kubernetes and other products, there are some good solutions, but a little bit of glue is needed to bring it into corporate processes and governances. It's like having a set of gloves that are generic, but when you really do want to grab something you have to make it so it's customized to you. That's what we had to do."<br><br>
Their best practices include allowing their developers to deploy into development stage and production, but then controlling the aspects that need governance and auditing, such as secrets. They found that having one namespace per service is useful for achieving that containment of secrets and config maps. And for their needs, having one container per pod makes it easier to manage and to have a smaller unit of deployment.
<br><br>
</div>
<divclass="banner4">
<divclass="banner4text">
"The success of Ancestry's first deployment of the hint system on Kubernetes helped create momentum for greater adoption of the technology."
</div>
</div>
<divclass="fullcol">
With that process established, the time spent on deployment was cut down to under a minute for some services. "As programmers, we have what's called REPL: read, evaluate, print, and loop, but with Kubernetes, we have CDEL: compile, deploy, execute, and loop," says MacKay. "It's a very quick loop back and a great benefit to understand that when our services are deployed in production, they're the same as what we tested in the pre-production environments. The approach of cloud native for Ancestry provides us a better ability to scale and to accommodate the business needs as work loads occur."<br><br>
The success of Ancestry's first deployment of the hint system on Kubernetes helped create momentum for greater adoption of the technology. "Engineers like to code, they like to do features, they don't like to sit around waiting for things to be deployed and worrying about scaling up and out and down," says MacKay. "After a while the engineers became our champions. At training sessions, the development teams were always the ones saying, 'Kubernetes saved our time tremendously; it's an enabler; it really is incredible.' Over time, we were able to convince our management that this was a transition that the industry is making and that we needed to be a part of it."<br><br>
A year later, Ancestry has transitioned a good number of applications to Kubernetes. "We have many different services that make up the rich environment that [the website] has from both the DNA side and the family history side," says MacKay. "We have front-end stacks, back-end stacks and back-end processing type stacks that are in the cluster."<br><br>
The company continues to weigh which services it will move forward to Kubernetes, which ones will be kept as is, and which will be replaced in the future and thus don't have to be moved over. MacKay estimates that the company is "approaching halfway on those features that are going forward. We don't have to do a lot of convincing anymore. It's more of an issue of timing with getting product management and engineering staff the knowledge and information that they need."
</div>
<divclass="banner2">
<divclass="banner2text">
"... 'I believe in Kubernetes. I believe in containerization. I think
if we can get there and establish ourselves in that world, we will be further along and far better off being agile and all the things we talk about,
and it'll go forward.'"
</div>
</div>
<divclass="fullcol">
Looking ahead, MacKay sees Ancestry maximizing the benefits of Kubernetes in 2017. "We're very close to having everything that should be or could be in a Linux-friendly world in Kubernetes by the end of the year," he says, adding that he's looking forward to features such as federation and horizontal pod autoscaling that are currently in the works. "Kubernetes has been very wonderful for us and we continue to ride the wave."<br><br>
That wave, he points out, has everything to do with the vibrant Kubernetes community, which has grown by leaps and bounds since Ancestry joined it as an early adopter. "This is just a very rough way of judging it, but on Slack in June 2015, there were maybe 500 on there," MacKay says. "The last time I looked there were maybe 8,500 just on the Slack channel. There are so many major companies and different kinds of companies involved now. It's the variety of contributors, the number of contributors, the incredibly competent and friendly community."<br><br>
As much as he and his team at Ancestry have benefited from what he calls "the goodness and the technical abilities of many" in the community, they've also contributed information about best practices, logged bug issues and participated in the open source conversation. And they've been active in attending <ahref="https://www.meetup.com/Utah-Kubernetes-Meetup/">meetups</a> to help educate and give back to the local tech community in Utah. Says MacKay: "We're trying to give back as far as our experience goes, rather than just code."
<br><br>When he meets with companies considering adopting cloud native infrastructure, the best advice he has to give from Ancestry's Kubernetes journey is this: "Start small, but with hard problems," he says. And "you need a patron who understands the vision of containerization, to help you tackle the political as well as other technical roadblocks that can occur when change is needed."<br><br>
With the changes that MacKay's team has led over the past year and a half, cloud native will be part of Ancestry's technological genealogy for years to come. MacKay has been such a champion of the technology that he says people have jokingly accused him of having a Kubernetes tattoo.<br><br>
"I really don't," he says with a laugh. "But I'm passionate. I'm not exclusive to any technology; I use whatever I need that's out there that makes us great. If it's something else, I'll use it. But right now I believe in Kubernetes. I believe in containerization. I think if we can get there and establish ourselves in that world, we will be further along and far better off being agile and all the things we talk about, and it'll go forward."<br><br>
He pauses. "So, yeah, I guess you can say I'm an evangelist for Kubernetes," he says. "But I'm not getting a tattoo!"
Company <b>Box</b> Location <b>Redwood City, California</b> Industry <b>Technology</b>
</div>
<hr>
<sectionclass="section1">
<divclass="cols">
<divclass="col1">
<h2>Challenge</h2>
Founded in 2005, the enterprise content management company allows its more than 50 million users to manage content in the cloud. <ahref="https://www.box.com/home">Box</a> was built primarily with bare metal inside the company’s own data centers, with a monolithic PHP code base. As the company was expanding globally, it needed to focus on "how we run our workload across many different cloud infrastructures from bare metal to public cloud," says Sam Ghods, Cofounder and Services Architect of Box. "It’s been a huge challenge because different clouds, especially bare metal, have very different interfaces."
<br>
</div>
<divclass="col2">
<h2>Solution</h2>
Over the past couple of years, Box has been decomposing its infrastructure into microservices, and became an early adopter of, as well as contributor to, <ahref="http://kubernetes.io/">Kubernetes</a> container orchestration. Kubernetes, Ghods says, has allowed Box’s developers to "target a universal set of concepts that are portable across all clouds."<br><br>
<h2>Impact</h2>
"Before Kubernetes," Ghods says, "our infrastructure was so antiquated it was taking us more than six months to deploy a new microservice. Today, a new microservice takes less than five days to deploy. And we’re working on getting it to an hour."
</div>
</div>
</section>
<divclass="banner2">
<divclass="banner2text">
"We looked at a lot of different options, but Kubernetes really stood out....the fact that on day one it was designed to run on bare metal just as well as Google Cloud meant that we could actually migrate to it inside of our data centers, and then use those same tools and concepts to run across public cloud providers as well."<br><br><spanstyle="font-size:15px;letter-spacing:0.08em">- SAM GHOUDS, CO-FOUNDER AND SERVICES ARCHITECT OF BOX</span>
</div>
</div>
<sectionclass="section2">
<divclass="fullcol">
<h2>In the summer of 2014, Box was feeling the pain of a decade’s worth of hardware and software infrastructure that wasn’t keeping up with the company’s needs.</h2>
A platform that allows its more than 50 million users (including governments and big businesses like <ahref="https://www.ge.com/">General Electric</a>) to manage and share content in the cloud, Box was originally a <ahref="http://php.net/">PHP</a> monolith of millions of lines of code built exclusively with bare metal inside of its own data centers. It had already begun to slowly chip away at the monolith, decomposing it into microservices. And "as we’ve been expanding into regions around the globe, and as the public cloud wars have been heating up, we’ve been focusing a lot more on figuring out how we run our workload across many different environments and many different cloud infrastructure providers," says Box Cofounder and Services Architect Sam Ghods. "It’s been a huge challenge thus far because all these different providers, especially bare metal, have very different interfaces and ways in which you work with them."<br><br>
Box’s cloud native journey accelerated that June, when Ghods attended <ahref="https://www.docker.com/events/dockercon">DockerCon</a>. The company had come to the realization that it could no longer run its applications only off bare metal, and was researching containerizing with Docker, virtualizing with OpenStack, and supporting public cloud.<br><br>
At that conference, Google announced the release of its Kubernetes container management system, and Ghods was won over. "We looked at a lot of different options, but Kubernetes really stood out, especially because of the incredibly strong team of <ahref="https://research.google.com/pubs/pub43438.html">Borg</a> veterans and the vision of having a completely infrastructure-agnostic way of being able to run cloud software," he says, referencing Google’s internal container orchestrator Borg. "The fact that on day one it was designed to run on bare metal just as well as <ahref="https://cloud.google.com/">Google Cloud</a> meant that we could actually migrate to it inside of our data centers, and then use those same tools and concepts to run across public cloud providers as well."<br><br>
Another plus: Ghods liked that <ahref="kubernetes.io">Kubernetes</a> has a universal set of API objects like pod, service, replica set and deployment object, which created a consistent surface to build tooling against. "Even PaaS layers like <ahref="https://www.openshift.com/">OpenShift</a> or <ahref="http://deis.io/">Deis</a> that build on top of Kubernetes still treat those objects as first-class principles," he says. "We were excited about having these abstractions shared across the entire ecosystem, which would result in a lot more momentum than we saw in other potential solutions."<br><br>
Box deployed Kubernetes in a cluster in a production data center just six months later. Kubernetes was then still pre-beta, on version 0.11. They started small: The very first thing Ghods’s team ran on Kubernetes was a Box API checker that confirms Box is up. "That was just to write and deploy some software to get the whole pipeline functioning," he says. Next came some daemons that process jobs, which was "nice and safe because if they experienced any interruptions, we wouldn’t fail synchronous incoming requests from customers."
</div>
</section>
<divclass="banner3">
<divclass="banner3text">
"As we’ve been expanding into regions around the globe, and as the public cloud wars have been heating up, we’ve been focusing a lot more on figuring out how we [can have Kubernetes help] run our workload across many different environments and many different cloud infrastructure providers."
</div>
</div>
<sectionclass="section3">
<divclass="fullcol">
The first live service, which the team could route to and ask for information, was launched a few months later. At that point, Ghods says, "We were comfortable with the stability of the Kubernetes cluster. We started to port some services over, then we would increase the cluster size and port a few more, and that’s ended up to about 100 servers in each data center that are dedicated purely to Kubernetes. And that’s going to be expanding a lot over the next 12 months, probably to many hundreds if not thousands."<br><br>
While observing teams who began to use Kubernetes for their microservices, "we immediately saw an uptick in the number of microservices being released," Ghods notes. "There was clearly a pent-up demand for a better way of building software through microservices, and the increase in agility helped our developers be more productive and make better architectural choices."
<br><br><divclass="quote">"There was clearly a pent-up demand for a better way of building software through microservices, and the increase in agility helped our developers be more productive and make better architectural choices."</div><br>
Ghods reflects that as early adopters, Box had a different journey from what companies experience now. "We were definitely lock step with waiting for certain things to stabilize or features to get released," he says. "In the early days we were doing a lot of contributions [to components such as kubectl apply] and waiting for Kubernetes to release each of them, and then we’d upgrade, contribute more, and go back and forth several times. The entire project took about 18 months from our first real deployment on Kubernetes to having general availability. If we did that exact same thing today, it would probably be no more than six."<br><br>
In any case, Box didn’t have to make too many modifications to Kubernetes for it to work for the company. "The vast majority of the work our team has done to implement Kubernetes at Box has been making it work inside of our existing (and often legacy) infrastructure," says Ghods, "such as upgrading our base operating system from RHEL6 to RHEL7 or integrating it into <ahref="https://www.nagios.org/">Nagios</a>, our monitoring infrastructure. But overall Kubernetes has been remarkably flexible with fitting into many of our constraints, and we’ve been running it very successfully on our bare metal infrastructure."<br><br>
Perhaps the bigger challenge for Box was a cultural one. "Kubernetes, and cloud native in general, represents a pretty big paradigm shift, and it’s not very incremental," Ghods says. "We’re essentially making this pitch that Kubernetes is going to solve everything because it does things the right way and everything is just suddenly better. But it’s important to keep in mind that it’s not nearly as proven as many other solutions out there. You can’t say how long this or that company took to do it because there just aren’t that many yet. Our team had to really fight for resources because our project was a bit of a moonshot."
</div>
</section>
<divclass="banner4">
<divclass="banner4text">
"The vast majority of the work our team has done to implement Kubernetes at Box has been making it work inside of our existing [and often legacy] infrastructure....overall Kubernetes has been remarkably flexible with fitting into many of our constraints, and we’ve been running it very successfully on our bare metal infrastructure."
</div>
</div>
<sectionclass="section4">
<divclass="fullcol">
Having learned from experience, Ghods offers these two pieces of advice for companies going through similar challenges:
<h2>1. Deliver early and often.</h2> Service discovery was a huge problem for Box, and the team had to decide whether to build an interim solution or wait for Kubernetes to natively satisfy Box’s unique requirements. After much debate, "we just started focusing on delivering something that works, and then dealing with potentially migrating to a more native solution later," Ghods says. "The above-all-else target for the team should always be to serve real production use cases on the infrastructure, no matter how trivial. This helps keep the momentum going both for the team itself and for the organizational perception of the project." </br></br>
<h2>2. Keep an open mind about what your company has to abstract away from developers and what it doesn’t.</h2> Early on, the team built an abstraction on top of Docker files to help ensure that images had the right security updates.
This turned out to be superfluous work, since container images are considered immutable and you can easily scan them post-build to ensure they do not contain vulnerabilities. Because managing infrastructure through containerization is such a discontinuous leap, it’s better to start by interacting directly with the native tools and learning their unique advantages and caveats. An abstraction should be built only after a practical need for it arises.</br></br>
In the end, the impact has been powerful. "Before Kubernetes," Ghods says, "our infrastructure was so antiquated it was taking us more than six months to deploy a new microservice. Now a new microservice takes less than five days to deploy. And we’re working on getting it to an hour. Granted, much of that six months was due to how broken our systems were, but bare metal is intrinsically a difficult platform to support unless you have a system like Kubernetes to help manage it."</br></br>
By Ghods’s estimate, Box is still several years away from his goal of being a 90-plus percent Kubernetes shop. "We’re very far along on having a mission-critical, stable Kubernetes deployment that provides a lot of value," he says. "Right now about five percent of all of our compute runs on Kubernetes, and I think in the next six months we’ll likely be between 20 to 50 percent. We’re working hard on enabling all stateless service use cases, and shift our focus to stateful services after that."
</div>
</section>
<divclass="banner5">
<divclass="banner5text">
"Ghods predicts that Kubernetes has the opportunity to be the new cloud platform. '...because it’s a never-before-seen level of automation and intelligence surrounding infrastructure that is portable and agnostic to every way you can run your infrastructure.'"
</div>
</div>
<sectionclass="section5">
<divclass="fullcol">
In fact, that’s what he envisions across the industry: Ghods predicts that Kubernetes has the opportunity to be the new cloud platform. Kubernetes provides an API consistent across different cloud platforms including bare metal, and "I don’t think people have seen the full potential of what’s possible when you can program against one single interface," he says. "The same way <ahref="https://aws.amazon.com/">AWS</a> changed infrastructure so that you don’t have to think about servers or cabinets or networking equipment anymore, Kubernetes enables you to focus exclusively on the containers that you’re running, which is pretty exciting. That’s the vision."</br></br>
Ghods points to projects that are already in development or recently released for Kubernetes as a cloud platform: cluster federation, the Dashboard UI, and <ahref="https://coreos.com/">CoreOS</a>’s etcd operator. "I honestly believe it’s the most exciting thing I’ve seen in cloud infrastructure," he says, "because it’s a never-before-seen level of automation and intelligence surrounding infrastructure that is portable and agnostic to every way you can run your infrastructure."</br></br>
Box, with its early decision to use bare metal, embarked on its Kubernetes journey out of necessity. But Ghods says that even if companies don’t have to be agnostic about cloud providers today, Kubernetes may soon become the industry standard, as more and more tooling and extensions are built around the API.</br></br>
"The same way it doesn’t make sense to deviate from Linux because it’s such a standard," Ghods says, "I think Kubernetes is going down the same path. It is still early days—the documentation still needs work and the user experience for writing and publishing specs to the Kubernetes clusters is still rough. When you’re on the cutting edge you can expect to bleed a little. But the bottom line is, this is where the industry is going. Three to five years from now it’s really going to be shocking if you run your infrastructure any other way."
<divclass="subhead">Saving Time and Money with Cloud Native Infrastructure</div>
</h1>
</div>
<divclass="details">
Company <b>GolfNow</b> Location <b>Orlando, Florida</b> Industry <b>Golf Industry Technology and Services Provider</b>
</div>
<hr>
<sectionclass="section1">
<divclass="cols">
<divclass="col1">
<h2>Challenge</h2>
A member of the <ahref="http://www.nbcunicareers.com/our-businesses/nbc-sports-group">NBC Sports Group</a>, <ahref="https://www.golfnow.com/">GolfNow</a> is the golf industry’s technology and services leader, managing 10 different products, as well as the largest e-commerce tee time marketplace in the world. As its business began expanding rapidly and globally, GolfNow’s monolithic application became problematic. "We kept growing our infrastructure vertically rather than horizontally, and the cost of doing business became problematic," says Sheriff Mohamed, GolfNow’s Director, Architecture. "We wanted the ability to more easily expand globally."
<br>
</div>
<divclass="col2">
<h2>Solution</h2>
Turning to microservices and containerization, GolfNow began moving its applications and databases from third-party services to its own clusters running on <ahref="https://www.docker.com/">Docker</a> and <ahref="http://kubernetes.io/">Kubernetes.</a><br><br>
<h2>Impact</h2>
The results were immediate. While maintaining the same capacity—and beyond, during peak periods—GolfNow saw its infrastructure costs for the first application virtually cut in half.
</div>
</div>
</section>
<divclass="banner2">
<divclass="banner2text">
"With our growth we obviously needed to expand our infrastructure, and we kept growing vertically rather than horizontally. We were basically wasting money and doubling the cost of our infrastructure."<br><br><spanstyle="font-size:15px;letter-spacing:0.08em">- SHERIFF MOHAMED, DIRECTOR, ARCHITECTURE AT GOLFNOW</span>
</div>
</div>
<sectionclass="section2">
<divclass="fullcol">
<h2>It’s not every day that you can say you’ve slashed an operating expense by half.</h2>
But Sheriff Mohamed and Josh Chandler did just that when they helped lead their company, <ahref="https://www.golfnow.com/">GolfNow</a>, on a journey from a monolithic to a containerized, cloud native infrastructure managed by Kubernetes.
<br><br>
A top-performing business within the NBC Sports Group, GolfNow is a technology and services company with the largest tee time marketplace in the world. GolfNow serves 5 million active golfers across 10 different products. In recent years, the business had grown so fast that the infrastructure supporting their giant monolithic application (written in C#.NET and backed by SQL Server database management system) could not keep up. "With our growth we obviously needed to expand our infrastructure, and we kept growing vertically rather than horizontally," says Sheriff, GolfNow’s Director, Architecture. "Our costs were growing exponentially. And on top of that, we had to build a Disaster Recovery (DR) environment, which then meant we’d have to copy exactly what we had in our original data center to another data center that was just the standby. We were basically wasting money and doubling the cost of our infrastructure."
<br><br>
In moving just the first of GolfNow’s important applications—a booking engine for golf courses and B2B marketing platform—from third-party services to their own Kubernetes environment, "our bill went down drastically," says Sheriff.
<br><br>
The path to those stellar results began in late 2014. In order to support GolfNow’s global growth, the team decided that the company needed to have multiple data centers and the ability to quickly and easily re-route traffic as needed. "From there we knew that we needed to go in a direction of breaking things apart, microservices, and containerization," says Sheriff. "At the time we were trying to get away from <ahref="https://www.microsoft.com/net">C#.NET</a> and <ahref="https://www.microsoft.com/en-cy/sql-server/sql-server-2016">SQL Server</a> since it didn’t run very well on Linux, where everything container was running smoothly."
<br><br>
To that end, the team shifted to working with <ahref="https://nodejs.org/">Node.js</a>, the open-source, cross-platform JavaScript runtime environment for developing tools and applications, and <ahref="https://www.mongodb.com/">MongoDB</a>, the open-source database program. At the time, <ahref="https://www.docker.com/">Docker</a>, the platform for deploying applications in containers, was still new. But once the team began experimenting with it, Sheriff says, "we realized that was the way we wanted to go, especially since that’s the way the industry is heading."
</div>
</section>
<divclass="banner3">
<divclass="banner3text">
"The team migrated the rest of the application into their Kubernetes cluster. And the impact was immediate: On top of cutting monthly costs by a large percentage, says Sheriff, 'Running at the same capacity and during our peak time, we were able to horizontally grow. Since we were using our VMs more efficiently with containers, we didn’t have to pay extra money at all.'"
</div>
</div>
<sectionclass="section3">
<divclass="fullcol">
GolfNow’s dev team ran an "internal, low-key" proof of concept and were won over. "We really liked how easy it was to be able to pass containers around to each other and have them up and running in no time, exactly the way it was running on my machine," says Sheriff. "Because that is always the biggest gripe that Ops has with developers, right? ‘It worked on my machine!’ But then we started getting to the point of, ‘How do we make sure that these things stay up and running?’" <br><br>
That led the team on a quest to find the right orchestration system for the company’s needs. Sheriff says the first few options they tried were either too heavy or "didn’t feel quite right." In late summer 2015, they discovered the just-released <ahref="http://kubernetes.io/">Kubernetes</a>, which Sheriff immediately liked for its ease of use. "We did another proof of concept," he says, "and Kubernetes won because of the fact that the community backing was there, built on top of what Google had already done."
<br><br>
But before they could go with Kubernetes, <ahref="http://www.nbc.com/">NBC</a>, GolfNow’s parent company, also asked them to comparison shop with another company. Sheriff and his team liked the competing company’s platform user interface, but didn’t like that its platform would not allow containers to run natively on Docker. With no clear decision in sight, Sheriff’s VP at GolfNow, Steve McElwee, set up a three-month trial during which a GolfNow team (consisting of Sheriff and Josh, who’s now Lead Architect, Open Platforms) would build out a Kubernetes environment, and a large NBC team would build out one with the other company’s platform.
<br><br>
"We spun up the cluster and we tried to get everything to run the way we wanted it to run," Sheriff says. "The biggest thing that we took away from it is that not only did we want our applications to run within Kubernetes and Docker, we also wanted our databases to run there. We literally wanted our entire infrastructure to run within Kubernetes."
<br><br>
At the time there was nothing in the community to help them get Kafka and MongoDB clusters running within a Kubernetes and Docker environment, so Sheriff and Josh figured it out on their own, taking a full month to get it right. "Everything started rolling from there," Sheriff says. "We were able to get all our applications connected, and we finished our side of the proof of concept a month in advance. My VP was like, ‘Alright, it’s over. Kubernetes wins.’"
<br><br>
The next step, beginning in January 2016, was getting everything working in production. The team focused first on one application that was already written in Node.js and MongoDB. A booking engine for golf courses and B2B marketing platform, the application was already going in the microservice direction but wasn’t quite finished yet. At the time, it was running in <ahref="https://devcenter.heroku.com/articles/mongohq">Heroku Compose</a> and other third-party services—resulting in a large monthly bill.
</div>
</section>
<divclass="banner4">
<divclass="banner4text">
"'The time I spent actually moving the applications was under 30 seconds! We can move data centers in just incredible amounts of time. If you haven’t come from the Kubernetes world you wouldn’t believe me.' Sheriff puts it in these terms: 'Before Kubernetes I wasn’t sleeping at night, literally. I was woken up all the time, because things were down. After Kubernetes, I’ve been sleeping at night.'"
</div>
</div>
<sectionclass="section4">
<divclass="fullcol">
"The goal was to take all of that out and put it within this new platform we’ve created with Kubernetes on <ahref="https://cloud.google.com/compute/">Google Compute Engine (GCE)</a>," says Sheriff. "So we ended up building piece by piece, in parallel, what was out in Heroku and Compose, in our Kubernetes cluster. Then, literally, just switched configs in the background. So in Heroku we had the app running hitting a Compose database. We’d take the config, change it and make it hit the database that was running in our cluster."
<br><br>
Using this procedure, they were able to migrate piecemeal, without any downtime. The first migration was done during off hours, but to test the limits, the team migrated the second database in the middle of the day, when lots of users were running the application. "We did it," Sheriff says, "and again it was successful. Nobody noticed."
<br><br>
After three weeks of monitoring to make sure everything was running stable, the team migrated the rest of the application into their Kubernetes cluster. And the impact was immediate: On top of cutting monthly costs by a large percentage, says Sheriff, "Running at the same capacity and during our peak time, we were able to horizontally grow. Since we were using our VMs more efficiently with containers, we didn’t have to pay extra money at all."
<br><br>
Not only were they saving money, but they were also saving time. "I had a meeting this morning about migrating some applications from one cluster to another," says Josh. "I spent about 2 hours explaining the process. The time I spent actually moving the applications was under 30 seconds! We can move data centers in just incredible amounts of time. If you haven’t come from the Kubernetes world you wouldn’t believe me." Sheriff puts it in these terms: "Before Kubernetes I wasn’t sleeping at night, literally. I was woken up all the time, because things were down. After Kubernetes, I’ve been sleeping at night."
<br><br>
A small percentage of the applications on GolfNow have been migrated over to the Kubernetes environment. "Our Core Team is rewriting a lot of the .NET applications into <ahref="https://www.microsoft.com/net/core">.NET Core</a> [which is compatible with Linux and Docker] so that we can run them within containers," says Sheriff.
<br><br>
Looking ahead, Sheriff and his team want to spend 2017 continuing to build a whole platform around Kubernetes with <ahref="https://github.com/drone/drone">Drone</a>, an open-source continuous delivery platform, to make it more developer-centric. "Now they’re able to manage configuration, they’re able to manage their deployments and things like that, making all these subteams that are now creating all these microservices, be self sufficient," he says. "So it can pull us away from applications and allow us to just make sure the cluster is running and healthy, and then actually migrate that over to our Ops team."
</div>
</section>
<divclass="banner5">
<divclass="banner5text">
"Having gone from complete newbies to production-ready in three months, the GolfNow team is eager to encourage other companies to follow their lead. 'This is The Six Million Dollar Man of the cloud right now,' adds Josh. 'Just try it out, watch it happen. I feel like the proof is in the pudding when you look at these kinds of application stacks. They’re faster, they’re more resilient.'"
</div>
</div>
<sectionclass="section5">
<divclass="fullcol">
And long-term, Sheriff has an even bigger goal for getting more people into the Kubernetes fold. "We’re actually trying to make this platform generic enough so that any of our sister companies can use it if they wish," he says. "Most definitely I think it can be used as a model. I think the way we migrated into it, the way we built it out, are all ways that I think other companies can learn from, and should not be afraid of."
<br><br>
The GolfNow team is also giving back to the Kubernetes community by open-sourcing a bot framework that Josh built. "We noticed that the dashboard user interface is actually moving a lot faster than when we started," says Sheriff. "However we realized what we needed was something that’s more of a bot that really helps us administer Kubernetes as a whole through Slack." Josh explains: "With the Kubernetes-Slack integration, you can essentially hook into a cluster and the issue commands and edit configurations. We’ve tried to simplify the security configuration as much as possible. We hope this will be our major thank you to Kubernetes, for everything you’ve given us."
<br><br>
Having gone from complete newbies to production-ready in three months, the GolfNow team is eager to encourage other companies to follow their lead. The lessons they’ve learned: "You’ve got to have buy-in from your boss," says Sheriff. "Another big deal is having two to three people dedicated to this type of endeavor. You can’t have people who are half in, half out." And if you don’t have buy-in from the get go, proving it out will get you there.
<br><br>
"This is The Six Million Dollar Man of the cloud right now," adds Josh. "Just try it out, watch it happen. I feel like the proof is in the pudding when you look at these kinds of application stacks. They’re faster, they’re more resilient."
<pclass="quote">"We can move data centers in incredible amounts of time. If you haven’t come from the Kubernetes world and I tell you this is what I’ve been doing, you wouldn’t believe me."</p>
<!--<p class="attrib">— Josh Chandler, Lead Architect, Open Platforms at GolfNow</p>-->
<ahref="/case-studies/golfnow/">Read about GolfNow</a>
<pclass="quote">"With Kubernetes, we're simplifying our environment and making it easier for developers to build the tools that make wikis run better."</p>
<pclass="quote">Inside eBay's shift to Kubernetes and containers atop OpenStack</p>
<ahref="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/">Read about eBay</a>
</div>
<divclass="case-study">
<imgsrc="/images/case_studies/box.png"alt="box">
<pclass="quote">"Kubernetes has the opportunity to be the new cloud platform. Because it’s a never-before-seen level of automation and intelligence surrounding infrastructure."</p>
<ahref="/case-studies/box/">Read about Box</a>
</div>
</div>
</div>
</main>
</section>
<sectionid="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>-->
<atarget="_blank"href="https://docs.google.com/a/google.com/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform"class="tell-your-story"><imgsrc="/images/case_studies/story.png"alt="Tell your story"></a>
<h3id="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>
"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>
<pclass="attrib">— Chris Jackson, Director for Cloud Product Engineering, Pearson</p>
</div>
</div>
</main>
</section>
<sectionclass="bullets">
<main>
<divclass="content">
<divclass="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>
<divclass="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>
<divclass="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>
<divclass="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>
<sectionclass="details">
<main>
<divclass="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>
<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>
<h3id="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.
"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>
<pclass="attrib">— Yuvi Panda, operations engineer at Wikimedia Foundation and Wikimedia Tool Labs</p>
</div>
</div>
</main>
</section>
<sectionclass="bullets">
<main>
<divclass="content">
<divclass="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>
<divclass="bullet">
<h4>Why Kubernetes:</h4>
<ul>
<li>Wikimedia Tool Labs chose Kubernetes because it can mimic existing workflows, while reducing complexity</li>
</ul>
</div>
<divclass="bullet">
<h4>Approach:</h4>
<ul>
<li>Migrate old systems and a complex infrastructure to Kubernetes</li>
</ul>
</div>
<divclass="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>
<sectionclass="details">
<main>
<divclass="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>
<sectionclass="details">
<main>
<divclass="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.
<divclass="subhead">Cloud-Native Infrastructure Keeps Your Smart Home Connected</div>
</h1>
</div>
<divclass="details">
Company <b>Wink</b> Location <b>New York, N.Y.</b> Industry <b>Internet of Things Platform</b>
</div>
<hr>
<sectionclass="section1">
<divclass="cols">
<divclass="col1">
<h2>Challenge</h2>
Building a low-latency, highly reliable infrastructure to serve communications between millions of connected smart-home devices and the company’s consumer hubs and mobile app, with an emphasis on horizontal scalability, the ability to encrypt everything quickly and connections that could be easily brought back up if anything went wrong.
<br>
<h2>Solution</h2>
Across-the-board use of a Kubernetes-Docker-CoreOS Container Linux stack.<br><br>
</div>
<divclass="col2">
<h2>Impact</h2>
"Two of the biggest American retailers [Home Depot and Walmart] are carrying and promoting the brand and the hardware,” Wink Head of Engineering Kit Klein says proudly – though he adds that "it really comes with a lot of pressure. It’s not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And that’s further testament to how much faith Klein has in the infrastructure that the Wink team has built. With 80 percent of Wink’s workload running on a unified stack of Kubernetes-Docker-CoreOS, the company has put itself in a position to continually innovate and improve its products and services. Committing to this technology, says Klein, "makes building on top of the infrastructure relatively easy.”
</div>
</div>
</section>
<divclass="banner2">
<divclass="banner2text">
"It’s not proprietary, it’s totally open, it’s really portable. You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. That’s the benefit of having everything unified on one open source Kubernetes-Docker-CoreOS Container Linux stack. There’s massive security benefits if you only have one Linux distro/machine image to validate. The benefits are enormous because you save money, and you save time.”<br><br><spanstyle="font-size:15px;letter-spacing:0.08em">- KIT KLEIN, HEAD OF ENGINEERING, WINK</span>
</div>
</div>
<sectionclass="section2">
<divclass="fullcol">
<h2>How many people does it take to turn on a light bulb?</h2>
Kit Klein whips out his phone to demonstrate. With a few swipes, the head of engineering at Wink pulls up the smart-home app created by the New York City-based company and taps the light button. "Honestly when you’re holding the phone and you’re hitting the light,” he says, "by the time you feel the pressure of your finger on the screen, it’s on. It takes as long as the signal to travel to your brain.”<br><br>
Sure, it takes just one finger and less than 200 milliseconds to turn on the light – or lock a door or change a thermostat. But what allows Wink to help consumers manage their connected smart-home products with such speed and ease is a sophisticated, cloud native infrastructure that Klein and his team built and continue to develop using a unified stack of CoreOS, the open-source operating system designed for clustered deployments, and Kubernetes, an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure. "When you have a big, complex network of interdependent microservices that need to be able to discover each other, and need to be horizontally scalable and tolerant to failure, that’s what this is really optimized for,” says Klein. "A lot of people end up relying on proprietary services [offered by some big cloud providers] to do some of this stuff, but what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.”<br><br>
Indeed, Wink did. The company’s mission statement is to make the connected home accessible – that is, user-friendly for non-technical owners, affordable and perhaps most importantly, reliable. "If you can’t trust that when you hit the switch, you know a light is going to go on, or if you’re remote and you’re checking on your house and that information isn’t accurate, then the convenience of the system is lost,” says Klein. "So that’s where the infrastructure comes in.”<br><br>
Wink was incubated within Quirky, a company that developed crowd-sourced inventions. The Wink app was first introduced in 2013, and at the time, it controlled only a few consumer products such as the PivotPower Strip that Quirky produced in collaboration with GE. As smart-home products proliferated, Wink was launched in 2014 in Home Depot stores nationwide. Its first project: a hub that could integrate with smart products from about a dozen brands like Honeywell and Chamberlain. The biggest challenge would be to build the infrastructure to serve all those communications between the hub and the products, with a focus on maximizing reliability and minimizing latency.<br><br>
"When we originally started out, we were moving very fast trying to get the first product to market, the minimum viable product,” says Klein. "Lots of times you go down a path and end up having to backtrack and try different things. But in this particular case, we did a lot of the work up front, which led to us making a really sound decision to deploy it on CoreOS Container Linux. And that was very early in the life of it.”
</div>
</section>
<divclass="banner3">
<divclass="banner3text">
"...what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.”
</div>
</div>
<sectionclass="section3">
<divclass="fullcol">
Concern number one: Wink’s products need to connect to consumer devices in people’s homes, behind a firewall. "You don’t have an end point like a URL, and you don’t even know what ports are open behind that firewall,” Klein explains. "So you essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And it’s really, really important that it’s persistent because you want to decrease as much as possible the overhead of sending a message – you never know when someone is going to turn on the lights.”<br><br>
With the earliest version of the Wink Hub, when you decided to turn your lights on or off, the request would be sent to the cloud and then executed. Subsequent updates to Wink’s software enabled local control, cutting latency down to about 10 milliseconds for many devices. But with the need for cloud-enabled integrations of an ever-growing ecosystem of smart home products, low-latency internet connectivity is still a critical consideration.
<h2>"You essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And it’s really, really important that it’s persistent...you never know when someone is going to turn on the lights.”</h2>
In addition, Wink had other requirements: horizontal scalability, the ability to encrypt everything quickly, connections that could be easily brought back up if something went wrong. "Looking at this whole structure we started, we decided to make a secure socket-based service,” says Klein. "We’ve always used, I would say, some sort of clustering technology to deploy our services and so the decision we came to was, this thing is going to be containerized, running on Docker.”<br><br>
At the time – just over two years ago – Docker wasn’t yet widely used, but as Klein points out, "it was certainly understood by the people who were on the frontier of technology. We started looking at potential technologies that existed. One of the limiting factors was that we needed to deploy multi-port non-http/https services. It wasn’t really appropriate for some of the early cluster technology. We liked the project a lot and we ended up using it on other stuff for a while, but initially it was too targeted toward http workloads.”<br><br>
Once Wink’s backend engineering team decided on a Dockerized workload, they had to make decisions about the OS and the container orchestration platform. "Obviously you can’t just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.”
</div>
</section>
<divclass="banner4">
<divclass="banner4text">
"Obviously you can’t just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.”
</div>
</div>
<sectionclass="section4">
<divclass="fullcol">
Wink considered building directly on a general purpose Linux distro like Ubuntu (which would have required installing tools to run a containerized workload) and cluster management systems like Mesos (which was targeted toward enterprises with larger teams/workloads), but ultimately set their sights on CoreOS Container Linux. "A container-optimized Linux distribution system was exactly what we needed,” he says. "We didn’t have to futz around with trying to take something like a Linux distro and install everything. It’s got a built-in container orchestration system, which is Fleet, and an easy-to-use API. It’s not as feature-rich as some of the heavier solutions, but we realized that, at that moment, it was exactly what we needed.”<br><br>
Wink’s hub (along with a revamped app) was introduced in July 2014 with a short-term deployment, and within the first month, they had moved the service to the Dockerized CoreOS deployment. Since then, they’ve moved almost every other piece of their infrastructure – from third-party cloud-to-cloud integrations to their customer service and payment portals – onto CoreOS Container Linux clusters. <br><br>
Using this setup did require some customization. "Fleet is really nice as a basic container orchestration system, but it doesn’t take care of routing, sharing configurations, secrets, et cetera, among instances of a service,” Klein says. "All of those layers of functionality can be implemented, of course, but if you don’t want to spend a lot of time writing unit files manually – which of course nobody does – you need to create a tool to automate some of that, which we did.”<br><br>
Wink quickly embraced the Kubernetes container cluster manager when it was launched in 2015 and integrated with CoreOS core technology, and as promised, it ended up providing the features Wink wanted and had planned to build. "If not for Kubernetes, we likely would have taken the logic and library we implemented for the automation tool that we created, and would have used it in a higher level abstraction and tool that could be used by non-DevOps engineers from the command line to create and manage clusters,” Klein says. "But Kubernetes made that totally unnecessary – and is written and maintained by people with a lot more experience in cluster management than us, so all the better.” Now, an estimated 80 percent of Wink’s workload is run on Kubernetes on top of CoreOS Container Linux.
</div>
</section>
<divclass="banner5">
<divclass="banner5text">
"Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.”
</div>
</div>
<sectionclass="section5">
<divclass="fullcol">
Wink’s reasons for going all in are clear: "It’s not proprietary, it’s totally open, it’s really portable,” Klein says. "You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. That’s the benefit of having everything unified on one Kubernetes-Docker-CoreOS Container Linux stack. There’s massive security benefits if you only have one Linux distro to try to validate. The benefits are enormous because you save money, you save time.”<br><br>
Klein concedes that there are tradeoffs in every technology decision. "Cutting-edge technology is going to be scary for some people,” he says. "In order to take advantage of this, you really have to keep up with the technology. You can’t treat it like it’s a black box. Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.”<br><br>
Wink, which was acquired by Flex in 2015, now controls 2.3 million connected devices in households all over the country. What’s next for the company? A new version of the hub - Wink Hub 2 - hit shelves last November – and is being offered for the first time at Walmart stores in addition to Home Depot. "Two of the biggest American retailers are carrying and promoting the brand and the hardware,” Klein says proudly – though he adds that "it really comes with a lot of pressure. It’s not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And that’s further testament to how much faith Klein has in the infrastructure that the Wink team has have built.<br><br>
Wink’s engineering team has grown exponentially since its early days, and behind the scenes, Klein is most excited about the machine learning Wink is using. "We built [a system of] containerized small sections of the data pipeline that feed each other and can have multiple outputs,” he says. "It’s like data pipelines as microservices.” Again, Klein points to having a unified stack running on CoreOS Container Linux and Kubernetes as the primary driver for the innovations to come. "You’re not reinventing the wheel every time,” he says. "You can just get down to work.” </div>
此处,Kubernetes 不仅仅是一个 "编排系统";它消除了编排的需要。 "编排"技术定义的是工作流的执行: 从 A 到 B,然后到 C。相反,Kubernetes 是包括一套独立、可组合的控制过程,通过声明式语法使其连续地朝着期望状态驱动当前状态。 不需要告诉它具体从 A 到 C 的过程,只要告诉到 C 的状态即可。 也不需要集中控制;该方法更类似于"编舞"。这使得系统更容易使用并且更强大、更可靠、更具弹性和可扩展性。
* **API request verb** - API 动词 `get`,`list`,`create`,`update`,`patch`,`watch`,`proxy`,`redirect`,`delete`和`deletecollection`用于资源请求。要确定资源 API 端点的请求动词,请参阅**确定下面的请求动词**.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.