diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/bug-report.md similarity index 79% rename from .github/ISSUE_TEMPLATE.md rename to .github/ISSUE_TEMPLATE/bug-report.md index 55625565c9109..88498bdbcb21d 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -1,19 +1,19 @@ +--- +name: Bug Report +about: Report a bug encountered with Kubernetes Website +labels: +- kind/bug +--- +**This is a Bug Report** + - -**This is a...** - -- [ ] Feature Request -- [ ] Bug Report - **Problem:** - **Proposed Solution:** - **Page to Update:** https://kubernetes.io/... diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000000000..3e9ad93ccc228 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,18 @@ +--- +name: Feature Request +about: Suggest a/an feature/enhancement to the Kubernetes Website project +labels: +- kind/feature +--- +**This is a Feature Request** + + + + +**What would you like to be added** + + +**Why is this needed** + +**Comments** + diff --git a/.github/ISSUE_TEMPLATE/support.md b/.github/ISSUE_TEMPLATE/support.md new file mode 100644 index 0000000000000..6c55d7737bb09 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/support.md @@ -0,0 +1,19 @@ +--- +name: Support Request +about: Support request or question relating to Kubernetes Dashboard project +labels: +- triage/support +--- +**This is Support** + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 85229c98efab3..b46f9c1d019d3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,11 +1,11 @@ >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Please delete this note before submitting the pull request. > -> For 1.14 Features: set Milestone to 1.14 and Base Branch to dev-1.14 +> For 1.15 Features: set Milestone to 1.15 and Base Branch to dev-1.15 > -> For Chinese localization, base branch to release-1.12 +> For Chinese localization, base branch to release-1.14 > -> For Korean Localization: set Base Branch to dev-1.13-ko. +> For Korean Localization: set Base Branch to dev-1.14-ko.\ > > Help editing and submitting pull requests: > https://kubernetes.io/docs/contribute/start/#improve-existing-content. diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b6863c4301d03..0000000000000 --- a/.travis.yml +++ /dev/null @@ -1,28 +0,0 @@ -language: go -go: - - 1.10.2 - -jobs: - include: - - name: "Testing examples" - # Don't want default ./... here: - install: - - export PATH=$GOPATH/bin:$PATH - - mkdir -p $HOME/gopath/src/k8s.io - - mv $TRAVIS_BUILD_DIR $HOME/gopath/src/k8s.io/website && cd $HOME/gopath/src/k8s.io/website - - # Make sure we are testing against the correct branch - - pushd $GOPATH/src/k8s.io && git clone https://github.com/kubernetes/kubernetes && popd - - pushd $GOPATH/src/k8s.io/kubernetes && git checkout release-1.11 && popd - - cp -L -R $GOPATH/src/k8s.io/kubernetes/vendor/ $GOPATH/src/ - - rm -r $GOPATH/src/k8s.io/kubernetes/vendor/ - - # Fetch additional dependencies to run the tests in examples/examples_test.go - - go get -t -v k8s.io/website/content/en/examples - script: - - go test -v k8s.io/website/content/en/examples - - name: "Hugo build" - install: - - make travis-hugo-build - script: - - hugo diff --git a/Makefile b/Makefile index cfa69df40cb43..99d0e5b12d2a5 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ check-headers-file: production-build: check-hugo-versions build check-headers-file ## Build the production site and ensure that noindex headers aren't added -non-production-build: check-hugo-versions ## Build the non-production site, which adds noindex headers to prevent indexing +non-production-build: test-examples check-hugo-versions ## Build the non-production site, which adds noindex headers to prevent indexing hugo --enableGitInfo sass-build: @@ -36,7 +36,7 @@ sass-develop: scripts/sass.sh develop serve: ## Boot the development server. - hugo server --ignoreCache --buildFuture + hugo server --buildFuture docker-image: $(DOCKER) build . --tag $(DOCKER_IMAGE) --build-arg HUGO_VERSION=$(HUGO_VERSION) @@ -47,12 +47,9 @@ docker-build: docker-serve: $(DOCKER_RUN) -p 1313:1313 $(DOCKER_IMAGE) hugo server --buildFuture --bind 0.0.0.0 -# This command is used only by Travis CI; do not run this locally -travis-hugo-build: - curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz - mkdir -p ${TRAVIS_HOME}/bin - mv hugo ${TRAVIS_HOME}/bin - export PATH=${TRAVIS_HOME}/bin:$PATH +test-examples: + scripts/test_examples.sh install + scripts/test_examples.sh run check-hugo-versions: scripts/hugo-version-check.sh $(HUGO_VERSION) diff --git a/OWNERS b/OWNERS index 82662b6c46d95..62138a57ba094 100644 --- a/OWNERS +++ b/OWNERS @@ -1,12 +1,10 @@ # See the OWNERS docs at https://go.k8s.io/owners -# Reviewers can /lgtm /approve but not sufficient for auto-merge without an -# approver reviewers: -- sig-docs-en-reviews +- sig-docs-en-reviews # Defined in OWNERS_ALIASES -# Approvers have all the ability of reviewers but their /approve makes -# auto-merge happen if a /lgtm exists, or vice versa, or they can do both -# No need for approvers to also be listed as reviewers approvers: -- sig-docs-en-owners +- sig-docs-en-owners # Defined in OWNERS_ALIASES + +labels: +- sig/docs \ No newline at end of file diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 997e19d146e8a..6201e027e9aba 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -1,68 +1,4 @@ aliases: - sig-api-machinery: #Team: API Server; GH: sig-api-machinery-pr-reviews; e.g. Annotations, Labels - - lavalamp - - sttts - - liggitt - - smarterclayton - - deads2k - sig-apps: #Team: Workloads; GH: sig-apps-pr-reviews; e.g. ConfigMaps, CronJobs, CustomResourceDefinitions, DaemonSets, Deployments, Jobs, Secrets, StatefulSets - - enisoc - - erictune - - foxish - - janetkuo - - kow3ns - - lukaszo - - mfojtik - - smarterclayton - - soltysh - - tnozicka - sig-architecture: #GH: sig-architecture-pr-reviews - - smarterclayton - - bgrant0607 - sig-auth: #GH: sig-auth-pr-reviews - - php-coder - - liggitt - - mikedanese - - ericchiang - - mattmoyer - - enj - - deads2k - - davidopp - sig-autoscaling: #GH: sig-autoscaling-pr-reviews - - DirectXMan12 - - bskiba - - aleksandra-malinowska - - MaciekPytel - - davidopp - - mwielgus - sig-aws: #Amazon AWS - - justinsb - - kris-nova - - chrislovecnm - - mfburnett - sig-azure: #Microsoft Azure - - andyzhangx - - feiskyer - - justaugustus - - karataliu - - khenidak - sig-big-data: #GH: sig-big-data-pr-reviews - - foxish - sig-cli: #Team: CLI; GH: sig-cli-pr-reviews; e.g. kubectl - - adohe - - deads2k - - derekwaynecarr - - dims - - dshulyak - - eparis - - ericchiang - - ghodss - - mengqiy - - rootfs - - shiywang - - smarterclayton - - soltysh - - sttts sig-cluster-lifecycle-kubeadm-approvers: # Approving changes to kubeadm documentation - timothysc - lukemarsden @@ -82,38 +18,15 @@ aliases: - chuckha - detiber - dixudx - sig-cluster-ops: - - zehicle - - jdumars - sig-contribex: #aka Contributor Experience; GH: sig-contributor-experience-pr-reviews - - rmmh - - cblecker - - apelisse - - grodrigues3 - - spxtr - sig-contributor-experience: #GH: sig-contributor-experience-pr-reviews - - rmmh - - cblecker - - apelisse - - grodrigues3 - - spxtr - sig-docs: #Team: documentation; GH: sig-docs-maintainers - - bradamant3 - - bradtopol - - chenopis - - cody-clark - - jaredbhatti - - kbarnard10 - - mistyhacks - - ryanmcginnis - - steveperry-53 - - tengqm - - tfogo - - xiangpengzhao - - zacharysarah - - zhangxiaoyu-zidif - - zparnold - sig-docs-en-owners: #Team: Documentation; GH: sig-docs-en-owners + sig-docs-de-owners: # Admins for German content + - bene2k1 + - mkorbi + - rlenferink + sig-docs-de-reviews: # PR reviews for German content + - bene2k1 + - mkorbi + - rlenferink + sig-docs-en-owners: # Admins for English content - bradamant3 - bradtopol - chenopis @@ -131,17 +44,24 @@ aliases: - zacharysarah - zhangxiaoyu-zidif - zparnold - sig-docs-en-reviews: #Team: Documentation; GH: sig-docs-pr-reviews + sig-docs-en-reviews: # PR reviews for English content - jimangel - rajakavitha1 - stewart-yu - xiangpengzhao - zhangxiaoyu-zidif - sig-docs-fr-owners: #Team: Documentation; GH: sig-docs-fr-owners - - sieben + sig-docs-es-owners: # Admins for Spanish content + - raelga + - alexbrand + sig-docs-es-reviews: # PR reviews for Spanish content + - raelga + - alexbrand + - glo-pena + - electrocucaracha + sig-docs-fr-owners: # Admins for French content + - remyleone - perriea - rekcah78 - - lledru - yastij - smana - rbenzair @@ -150,11 +70,10 @@ aliases: - jygastaud - awkif - oussemos - sig-docs-fr-reviews: #Team: Documentation; GH: sig-docs-fr-reviews - - sieben + sig-docs-fr-reviews: # PR reviews for French content + - remyleone - perriea - rekcah78 - - lledru - yastij - smana - rbenzair @@ -163,35 +82,62 @@ aliases: - jygastaud - awkif - oussemos - sig-docs-it-owners: #Team: Italian docs localization; GH: sig-docs-it-owners + sig-docs-hi-owners: # Admins for Hindi content + - avidLearnerInProgress + - daminisatya + - mittalyashu + - Rajakavitha1 + sig-docs-hi-reviews: # PR reviews for Hindi content + - avidLearnerInProgress + - daminisatya + - mittalyashu + - Rajakavitha1 + sig-docs-id-owners: # Admins for Indonesian content + - girikuncoro + - irvifa + sig-docs-id-reviews: # PR reviews for Indonesian content + - girikuncoro + - irvifa + sig-docs-it-owners: # Admins for Italian content - rlenferink - - lledru - micheleberardi - sig-docs-it-reviews: #Team: Italian docs PR reviews; GH:sig-docs-it-reviews + sig-docs-it-reviews: # PR reviews for Italian content - rlenferink - - lledru - micheleberardi - sig-docs-ja-owners: #Team: Japanese docs localization; GH: sig-docs-ja-owners + sig-docs-ja-owners: # Admins for Japanese content - cstoku - nasa9084 - tnir - zacharysarah - sig-docs-ja-reviews: #Team: Japanese docs PR reviews; GH:sig-docs-ja-reviews + sig-docs-ja-reviews: # PR reviews for Japanese content - cstoku - makocchi-git - MasayaAoyama - nasa9084 - tnir - sig-docs-ko-owners: #Team Korean docs localization; GH: sig-docs-ko-owners + sig-docs-ko-owners: # Admins for Korean content - ClaudiaJKang - gochist - ianychoi - zacharysarah - sig-docs-ko-reviews: #Team Korean docs reviews; GH: sig-docs-ko-reviews + sig-docs-ko-reviews: # PR reviews for Korean content - ClaudiaJKang - gochist - ianychoi - sig-docs-zh-owners: #Team Chinese docs localization; GH: sig-docs-zh-owners + - seokho-son + sig-docs-maintainers: # Website maintainers + - bradamant3 + - chenopis + - jaredbhatti + - jimangel + - kbarnard10 + - mistyhacks + - pwittrock + - steveperry-53 + - tengqm + - zacharysarah + - zparnold + sig-docs-zh-owners: # Admins for Chinese content - bradtopol - chenopis - chenrui333 @@ -201,126 +147,25 @@ aliases: - lichuqiang - lucperkins - markthink + - SataQiu - tengqm - xiangpengzhao + - xichengliudui - zacharysarah - zhangxiaoyu-zidif - sig-docs-zh-reviews: #Team Chinese docs reviews; GH: sig-docs-zh-reviews + sig-docs-zh-reviews: # PR reviews for Chinese content - chenrui333 - idealhack - markthink + - SataQiu - tengqm - xiangpengzhao + - xichengliudui - zhangxiaoyu-zidif - pigletfly - sig-federation: #Team: Federation; e.g. Federated Clusters - - csbell - sig-gcp: #Google Cloud Platform; GH: sig-gcp-pr-reviews - - abgworrall - 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 - - Random-Liu - - dashpole - - dchen1107 - - derekwaynecarr - - dims - - feiskyer - - mtaufen - - ncdc - - pmorie - - resouer - - sjpotter - - tallclair - - tmrts - - vishh - - yifan-gu - - yujuhong - sig-onprem: #On-premises; GH: sig-onprem-pr-reviews - - zen - - idvoretskyi - - pigmej - - feiskyer - - nebril - sig-openstack: #GH: sig-openstack-pr-reviews - - hogepodge - - dklyle - - rjmorse - sig-pm: #aka Product Management - - apsinha - - idvoretskyi - - calebamiles - sig-product-management: - - apsinha - - idvoretskyi - - calebamiles - sig-release: #GH: sig-release-pr-reviews - - calebamiles - - enisoc - - pwittrock - sig-rktnetes: - - calebamiles - sig-scalability: #GH: sig-scalability-pr-reviews - - jbeda - - spiffxp - - lavalamp - - countspongebob - sig-scheduling: #Team: Sharing; GH: sig-scheduling-pr-reviews; e.g. Scheduler - - bsalamat - - davidopp - - jayunit100 - - k82cn - - resouer - - timothysc - - wojtek-t - sig-service-catalog: #GH: sig-service-catalog-pr-reviews; e.g. Service Broker - - pmorie - - jessfraz - - pwittrock - - droot - - seans3 - sig-storage: #Team: Storage; GH: sig-storage-pr-reviews; e.g. Volumes - - childsb - - jsafrane - - rootfs - - saad-ali - - matchstick - - msau42 - sig-testing: #GH: sig-testing-pr-reviews - - fejta - - ixdy - - rmmh - - spiffxp - - spxtr - sig-ui: #User Interface - - danielromlein - - floreks - sig-windows: - - michmike - + sig-docs-pt-owners: # Admins for Portuguese content + - femrtnz + - jcjesus + sig-docs-pt-reviews: # PR reviews for Portugese content + - femrtnz + - jcjesus diff --git a/README-de.md b/README-de.md new file mode 100644 index 0000000000000..f6664b3186193 --- /dev/null +++ b/README-de.md @@ -0,0 +1,83 @@ +# Kubernetes Dokumentation + +[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) +[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + +Herzlich willkommen! Dieses Repository enthält alle Assets, die zur Erstellung der [Kubernetes-Website und Dokumentation](https://kubernetes.io/) erforderlich sind. Wir freuen uns sehr, dass Sie dazu beitragen wollen! + +## Beiträge zur Dokumentation + +Sie können auf die Schaltfläche **Fork** im oberen rechten Bereich des Bildschirms klicken, um eine Kopie dieses Repositorys in Ihrem GitHub-Konto zu erstellen. Diese Kopie wird als *Fork* bezeichnet. Nehmen Sie die gewünschten Änderungen an Ihrem Fork vor. Wenn Sie bereit sind, diese Änderungen an uns zu senden, gehen Sie zu Ihrem Fork und erstellen Sie eine neue Pull-Anforderung, um uns darüber zu informieren. + +Sobald Ihre Pull-Anfrage erstellt wurde, übernimmt ein Rezensent von Kubernetes die Verantwortung für klares, umsetzbares Feedback. Als Eigentümer des Pull-Request **liegt es in Ihrer Verantwortung Ihren Pull-Reqest enstsprechend des Feedbacks, dass Sie vom Kubernetes-Reviewer erhalten haben abzuändern.** Beachten Sie auch, dass Sie am Ende mehr als einen Rezensenten von Kubernetes erhalten, der Ihnen Feedback gibt, oder dass Sie Rückmeldungen von einem Rezensenten von Kubernetes erhalten, der sich von demjenigen unterscheidet, der ursprünglich für das Feedback zugewiesen wurde. In einigen Fällen kann es vorkommen, dass einer Ihrer Prüfer bei Bedarf eine technische Überprüfung von einem [Kubernetes Tech-Reviewer](https://github.com/kubernetes/website/wiki/tech-reviewers) anfordert. Reviewer geben ihr Bestes, um zeitnah Feedback zu geben, die Antwortzeiten können jedoch je nach den Umständen variieren. + +Weitere Informationen zum Beitrag zur Kubernetes-Dokumentation finden Sie unter: + +* [Mitwirkung beginnen](https://kubernetes.io/docs/contribute/start/) +* [Ihre Dokumentationsänderungen bereitstellen](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) +* [Seitenvorlagen verwenden](http://kubernetes.io/docs/contribute/style/page-templates/) +* [Dokumentationsstil-Handbuch](http://kubernetes.io/docs/contribute/style/style-guide/) +* [Übersetzung der Kubernetes-Dokumentation](https://kubernetes.io/docs/contribute/localization/) + +## `README.md`'s Localizing Kubernetes Documentation + +### Koreanisch + +Lesen Sie die Übersetzung von `README.md` und detailliertere Anleitungen für koreanische Mitwirkende auf der Seite [Koreanischen README](README-ko.md). + +Sie können die Betreuer der koreanischen Lokalisierung erreichen unter: + +* June Yi ([GitHub - @gochist](https://github.com/gochist)) +* [Slack Kanal](https://kubernetes.slack.com/messages/kubernetes-docs-ko) + +## Site lokal mit Docker ausführen + +Um die Kubernetes-Website lokal laufen zu lassen, empfiehlt es sich, ein spezielles [Docker](https://docker.com) Image auszuführen, das den statischen Site-Generator [Hugo](https://gohugo.io) enthält. + +> Unter Windows benötigen Sie einige weitere Tools, die Sie mit [Chocolatey](https://chocolatey.org) installieren können. +`choco install make` + +> Wenn Sie die Website lieber lokal ohne Docker ausführen möchten, finden Sie weitere Informationen unter [Website lokal mit Hugo ausführen](#Die-Site-lokal-mit-Hugo-ausführen). + +Wenn Sie Docker [installiert](https://www.docker.com/get-started) haben, erstellen Sie das Docker-Image `kubernetes-hugo` lokal: + +```bash +make docker-image +``` + +Nachdem das Image erstellt wurde, können Sie die Site lokal ausführen: + +```bash +make docker-serve +``` + +Öffnen Sie Ihren Browser unter http://localhost:1313, um die Site anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Site und erzwingt eine Browseraktualisierung. + +## Die Site lokal mit Hugo ausführen + +Hugo-Installationsanweisungen finden Sie in der [offiziellen Hugo-Dokumentation](https://gohugo.io/getting-started/installing/). Stellen Sie sicher, dass Sie die Hugo-Version installieren, die in der Umgebungsvariablen `HUGO_VERSION` in der Datei [`netlify.toml`](netlify.toml#L9) angegeben ist. + +So führen Sie die Site lokal aus, wenn Sie Hugo installiert haben: + +```bash +make serve +``` + +Dadurch wird der lokale Hugo-Server an Port 1313 gestartet. Öffnen Sie Ihren Browser unter http://localhost:1313, um die Site anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Site und erzwingt eine Browseraktualisierung. + +## Community, Diskussion, Beteiligung und Unterstützung + +Erfahren Sie auf der [Community-Seite](http://kubernetes.io/community/) wie Sie mit der Kubernetes-Community interagieren können. + +Sie können die Betreuer dieses Projekts unter folgender Adresse erreichen: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +### Verhaltensregeln + +Die Teilnahme an der Kubernetes-Community unterliegt dem [Kubernetes-Verhaltenskodex](code-of-conduct.md). + +## Vielen Dank! + +Kubernetes lebt vom Community Engagement und wir freuen uns sehr über Ihre Beiträge zu unserer Website und unserer Dokumentation! diff --git a/README-es.md b/README-es.md new file mode 100644 index 0000000000000..15bf9ed2fb2a4 --- /dev/null +++ b/README-es.md @@ -0,0 +1,76 @@ +# La documentación de Kubernetes + +[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) +[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + +Bienvenido! +Este repositorio contiene todos los recursos necesarios para construir el [sitio web de Kubernetes y su documentación](https://kubernetes.io/). ¡Estamos encantados de que quiera contribuir! + +## Contribuyendo con la documentación + +Puede hacer clic en el botón **Fork** situado en la esquina superior derecha de la pantalla para crear una copia de este repositorio en su cuenta de GitHub. A ese tipo de copia se le llama **Fork** (bifurcación) y le permite editar el contenido del repositorio en su copia personal. Realice los cambios que quiera en su **fork** y, cuando esté listo para enviarnos esos cambios, vaya a **fork** en repositorio en su GitHub y cree una nueva **pull request** para que tengamos constancia de la propuesta de cambios. + +Una vez la **pull request** ha sido creada, un revisor de Kubernetes asumirá la responsabilidad de proporcionar comentarios claros y prácticos sobre como continuar. Como propietario de la PR, **es su responsabilidad modificar la pull request para abordar los comentarios proporcionados por el revisor de Kubernetes.** Tenga en cuenta que algunas veces puede terminar teniendo más de un revisor de Kubernetes participando en la revisión, por lo que es posible que reciba comentarios de más revisores a parte del asignado originalmente en la creación de la **pull request**. Además, en algunas ocasiones, es posible que uno de sus revisores solicite una revisión técnica por parte de un [revisor técnico de Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) si lo considera necesario. + +Los revisores harán todo lo posible para proporcionar toda la información necesaria para que la **pull request** siga adelante en un tiempo razonable, pero este tiempo de respuesta puede variar según las circunstancias. + +Para obtener más información sobre cómo contribuir a la documentación de Kubernetes, puede consultar: + +* [Empezando a contribuir](https://kubernetes.io/docs/contribute/start/) +* [Visualizando sus cambios en su entorno local](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) +* [Utilizando las plantillas de las páginas](http://kubernetes.io/docs/contribute/style/page-templates/) +* [Guía de estilo de la documentación](http://kubernetes.io/docs/contribute/style/style-guide/) +* [Traduciendo la documentación de Kubernetes](https://kubernetes.io/docs/contribute/localization/) + +## Levantando el sitio web kubernetes.io en su entorno local con Docker + +El método recomendado para levantar una copia local del sitio web kubernetes.io es utilizando la imagen de [Docker](https://docker.com) que incluye el generador de sitios estáticos [Hugo](https://gohugo.io). + +> Para Windows, algunas otras herramientas como Make son necesarias. Puede instalarlas utilizando el gestor [Chocolatey](https://chocolatey.org). `choco install make` o siguiendo las instrucciones de [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm). + +> Si prefiere levantar el sitio web sin utilizar **Docker**, puede seguir las instrucciones disponibles en la sección [Levantando kubernetes.io en local con Hugo](#levantando-kubernetes.io-en-local-con-hugo). + +Una vez tenga Docker [configurado en su máquina](https://www.docker.com/get-started), puede construir la imagen de Docker `kubernetes-hugo` localmente ejecutando el siguiente comando en la raíz del repositorio: + +```bash +make docker-image +``` + +Una vez tenga la imagen construida, puede levantar el sitio web ejecutando: + +```bash +make docker-serve +``` + +Abra su navegador y visite http://localhost:1313 para acceder a su copia local del sitio. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador. + +## Levantando kubernetes.io en local con Hugo + +Revise la [documentación oficial de Hugo](https://gohugo.io/getting-started/installing/) para obtener las instrucciones de instalación en su sistema operativo. Asegúrese de instalar la versión de Hugo especificada en la variable de entorno `HUGO_VERSION` del fichero [`netlify.toml`](netlify.toml#L9). + +Para levantar el sitio localmente una vez Hugo está instalado en su sistema, puede ejecutar el siguiente comando: + +```bash +make serve +``` + +Este comando levantará un servidor de Hugo en el puerto **1313** al que podrá acceder visitando http://localhost:1313 y dónde podrá visualizar su copia local del sitio web. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador. + +## Comunidad, discusión, contribuir y soporte + +Aprenda como participar en la comunidad de Kubernetes visitando la [página de comunidad](http://kubernetes.io/community/). + +Puede ponerse en contacto con los mantenedores de este proyecto en: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +### Código de conducta + +La participación en la comunidad de Kubernetes está regulada por el [Código de Conducta de Kubernetes](code-of-conduct.md). + +## ¡Muchas gracias! + +Kubernetes es posible gracias a la participación de la comunidad y la documentación es vital para facilitar el acceso al proyecto. + +Agradecemos muchísimo sus contribuciones a nuestro sitio web y nuestra documentación. \ No newline at end of file diff --git a/README-hi.md b/README-hi.md new file mode 100644 index 0000000000000..12bfeee63c976 --- /dev/null +++ b/README-hi.md @@ -0,0 +1,84 @@ +# कुबरनेट्स प्रलेखन + +[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) +[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + +स्वागत हे! इस रिपॉजिटरी में [कुबरनेट्स वेबसाइट और दस्तावेज](https://kubernetes.io/) बनाने के लिए आवश्यक सभी संपत्तियां हैं। हम बहुत खुश हैं कि आप योगदान करना चाहते हैं! + +## डॉक्स में योगदान देना + +आप अपने GitHub खाते में इस रिपॉजिटरी की एक copy बनाने के लिए स्क्रीन के ऊपरी-दाएँ क्षेत्र में **Fork** बटन पर क्लिक करें। इस copy को *Fork* कहा जाता है। अपने fork में कोई भी परिवर्तन करना चाहते हैं, और जब आप उन परिवर्तनों को हमारे पास भेजने के लिए तैयार हों, तो अपने fork पर जाएं और हमें इसके बारे में बताने के लिए एक नया pull request बनाएं। + +एक बार जब आपका pull request बन जाता है, तो एक कुबरनेट्स समीक्षक स्पष्ट, कार्रवाई योग्य प्रतिक्रिया प्रदान करने की जिम्मेदारी लेगा। pull request के मालिक के रूप में, **यह आपकी जिम्मेदारी है कि आप कुबरनेट्स समीक्षक द्वारा प्रदान की गई प्रतिक्रिया को संबोधित करने के लिए अपने pull request को संशोधित करें।** + +यह भी ध्यान दें कि आप एक से अधिक कुबरनेट्स समीक्षक आपको प्रतिक्रिया प्रदान कर सकते हैं या आप एक कुबरनेट्स समीक्षक से प्रतिक्रिया प्राप्त कर सकते हैं जो मूल रूप से आपको प्रतिक्रिया प्रदान करने के लिए दिए गए एक से भिन्न है। इसके अलावा, कुछ मामलों में, आपका एक समीक्षक जरूरत पड़ने पर [कुबेरनेट्स टेक समीक्षक](https://github.com/kubernetes/website/wiki/Tech-reviewers) से तकनीकी समीक्षा प्राप्त कर सकता है। समीक्षक समय पर प्रतिक्रिया देने के लिए पूरी कोशिश करेंगे, लेकिन परिस्थितियों के आधार पर प्रतिक्रिया समय अलग-अलग हो सकता है। + +कुबरनेट्स प्रलेखन में योगदान देने के बारे में अधिक जानकारी के लिए, देखें: + +* [योगदान देना शुरू करें](https://kubernetes.io/docs/contribute/start/) +* [परिवर्तनों को अंतिम चरण में लेजाएं](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) +* [पेज टेम्पलेट](http://kubernetes.io/docs/contribute/style/page-templates/) +* [प्रलेखन शैली गाइड](http://kubernetes.io/docs/contribute/style/style-guide/) +* [स्थानीयकरण कुबरनेट्स प्रलेखन](https://kubernetes.io/docs/contribute/localization/) + +## `README.md`'s स्थानीयकरण कुबरनेट्स प्रलेखन + +आप पर हिंदी स्थानीयकरण के maintainers तक पहुँच सकते हैं: + +* Yashu Mittal ([Twitter](https://twitter.com/mittalyashu77), [GitHub](https://github.com/mittalyashu)) +* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-hi) + +## स्थानीय रूप से डॉकर का उपयोग करके साइट चलाना + +कुबरनेट्स वेबसाइट को स्थानीय रूप से चलाने के लिए अनुशंसित तरीका एक विशेष [डॉकर](https://docker.com) image को चलाना है, जिसमें [Hugo](https://gohugo.io) स्टेटिक साइट जनरेटर शामिल है। + +> यदि आप विंडोज पर हैं, तो आपको कुछ और टूल्स की आवश्यकता होगी जिन्हें आप [Chocolatey](https://chocolatey.org) के साथ इंस्टॉल कर सकते हैं। + +> यदि आप डॉकर के बिना स्थानीय रूप से वेबसाइट चलाना पसंद करते हैं, तो नीचे Hugo का उपयोग करके स्थानीय रूप से साइट चलाना देखें। + +यदि आप डॉकर के बिना स्थानीय रूप से वेबसाइट चलाना पसंद करते हैं, तो नीचे दिए गए Hugo का उपयोग करके स्थानीय रूप से [साइट को चलाने](#running-the-site-locally-using-hugo) का तरीका देखें। + +यदि आप [डॉकर](https://www.docker.com/get-started) चला रहे हैं, तो स्थानीय रूप से `कुबेरनेट्स-ह्यूगो` Docker image बनाएँ: + +```bash +make docker-image +``` + +एक बार image बन जाने के बाद, आप साइट को स्थानीय रूप से चला सकते हैं: + +```bash +make docker-serve +``` + +साइट देखने के लिए अपने browser को `http://localhost:1313` पर खोलें। जैसा कि आप source फ़ाइलों में परिवर्तन करते हैं, Hugo साइट को अपडेट करता है और browser को refresh करने पर मजबूर करता है। + +## Hugo का उपयोग करते हुए स्थानीय रूप से साइट चलाना + +Hugo निर्देशों के लिए [आधिकारिक Hugo प्रलेखन](https://gohugo.io/getting-started/installing/) देखें। [`Netlify.toml`](netlify.toml#L9) फ़ाइल में `HUGO_VERSION` environment variable द्वारा निर्दिष्ट Hugo version को install करना सुनिश्चित करें। + +जब आप Hugo को install करते हैं तो स्थानीय रूप से साइट को चलाने के लिए: + +```bash +make serve +``` + +यह पोर्ट `1313` पर Hugo सर्वर को शुरू करेगा। साइट देखने के लिए अपने browser को `http://localhost:1313` पर खोलें। जैसा कि आप source फ़ाइलों में परिवर्तन करते हैं, Hugo साइट को अपडेट करता है और एक browser को refresh करने पर मजबूर करता है। + +## समुदाय, चर्चा, योगदान और समर्थन + +[Community page](http://kubernetes.io/community/) पर कुबरनेट्स समुदाय के साथ जुड़ना सीखें। + +आप इस परियोजना के स्थानीयकरण तक पहुँच सकते हैं: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +## कोड ओफ़ कंडक्ट + +कुबरनेट्स समुदाय में भागीदारी [कुबरनेट्स कोड ओफ़ कंडक्ट](https://github.com/cncf/foundation/blob/master/code-of-conduct-languages/hi.md) द्वारा शासित है. + +## धन्यवाद! + +कुबरनेट्स सामुदायिक भागीदारी पर पनपती है, और हम वास्तव में हमारी साइट और हमारे प्रलेखन में आपके योगदान की सराहना करते हैं! + +कुबरनेट्स आपकी भागीदारी पर निर्भर है, और हम हमारी साइट और प्रलेखन में आपके योगदान का मान करते हैं! \ No newline at end of file diff --git a/README-id.md b/README-id.md new file mode 100644 index 0000000000000..b178b220bc38e --- /dev/null +++ b/README-id.md @@ -0,0 +1,72 @@ +# Dokumentasi Kubernetes + +[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) +[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + +Selamat datang! Repositori ini merupakan wadah bagi semua komponen yang dibutuhkan untuk membuat [dokumentasi Kubernetes](https://kubernetes.io/). Kami merasa sangat senang apabila kamu berminat untuk menjadi kontributor! + +## Kontribusi pada dokumentasi + +Pertama, kamu dapat menekan tombol **Fork** yang berada pada bagian atas layar, untuk menyalin repositori pada akun Github-mu. Salinan ini disebut sebagai **fork**. Kamu dapat menambahkan konten pada **fork** yang kamu miliki, setelah kamu merasa cukup untuk menambahkan konten yang kamu miliki dan ingin memberikan konten tersebut pada kami, kamu dapat melihat **fork** yang telah kamu buat dan membuat **pull request** untuk memberi tahu kami bahwa kamu ingin menambahkan konten yang telah kamu buat. + +Setelah kamu membuat sebuah **pull request**, seorang **reviewer** akan memberikan masukan terhadap konten yang kamu sediakan serta beberapa hal yang dapat kamu lakukan apabila perbaikan diperlukan terhadap konten yang telah kamu sediakan. Sebagai seorang yang membuat **pull request**, **sudah menjadi kewajiban kamu untuk melakukan modifikasi terhadap konten yang kamu berikan sesuai dengan masukan yang diberikan oleh seorang reviewer Kubernetes**. Perlu kamu ketahui bahwa kamu dapat saja memiliki lebih dari satu orang **reviewer Kubernetes** atau dalam kasus kamu bisa saja mendapatkan **reviewer Kubernetes** yang berbeda dengan **reviewer Kubernetes** awal yang ditugaskan untuk memberikan masukan terhadap konten yang kamu sediakan. Selain itu, seorang **reviewer Kubernetes** bisa saja meminta masukan teknis dari [reviewer teknis Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) jika diperlukan. + +Untuk informasi lebih lanjut mengenai tata cara melakukan kontribusi, kamu dapat melihat tautan di bawah ini: + +* [Petunjuk Melakukan Kontribusi](https://kubernetes.io/docs/contribute/start/) +* [Melakukan Tahap Staging pada Konten Dokumentasi yang telah Kamu Sediakan](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) +* [Petunjuk Menggunakan Page Templates](http://kubernetes.io/docs/contribute/style/page-templates/) +* [Petunjuk untuk Documentation Style](http://kubernetes.io/docs/contribute/style/style-guide/) +* [Petunjuk untuk Melakukan Lokalisasi Dokumentasi Kubernetes](https://kubernetes.io/docs/contribute/localization/) + +## Menjalankan Dokumentasi Kubernetes pada Mesin Lokal Kamu + +Petunjuk yang disarankan untuk menjalankan Dokumentasi Kubernetes pada mesin lokal kamus adalah dengan menggunakan [Docker](https://docker.com) **image** yang memiliki **package** [Hugo](https://gohugo.io), **Hugo** sendiri merupakan generator website statis. + +> Jika kamu menggunakan Windows, kamu mungkin membutuhkan beberapa langkah tambahan untuk melakukan instalasi perangkat lunak yang dibutuhkan. Instalasi ini dapat dilakukan dengan menggunakan [Chocolatey](https://chocolatey.org). `choco install make` + +> Jika kamu ingin menjalankan **website** tanpa menggunakan **Docker**, kamu dapat melihat tautan berikut [Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo](#petunjuk-untuk-menjalankan-website-pada-mesin-lokal-denga-menggunakan-hugo) di bagian bawah. + +Jika kamu sudah memiliki **Docker** [yang sudah dapat digunakan](https://www.docker.com/get-started), kamu dapat melakukan **build** `kubernetes-hugo` **Docker image** secara lokal: + +```bash +make docker-image +``` + +Setelah **image** berhasil di-**build**, kamu dapat menjalankan website tersebut pada mesin lokal-mu: + +```bash +make docker-serve +``` + +Buka **browser** kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, **Hugo** akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila **browser** melakukan proses **refresh**. + + +## Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo + +Kamu dapat melihat [dokumentasi resmi Hugo](https://gohugo.io/getting-started/installing/) untuk mengetahui langkah yang diperlukan untuk melakukan instalasi **Hugo**. Pastikan kamu melakukan instalasi versi **Hugo** sesuai dengan versi yang tersedia pada **environment variable** `HUGO_VERSION` pada **file**[`netlify.toml`](netlify.toml#L9). + +Untuk menjalankan laman pada mesin lokal setelah instalasi **Hugo**, kamu dapat menjalankan perintah berikut: + +```bash +make serve +``` + +Buka **browser** kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, **Hugo** akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila **browser** melakukan proses **refresh**. + +## Komunitas, Diskusi, Kontribusi, dan Bantuan + +Kamu dapat belajar bagaimana tata cara untuk ikut terlibat dalam komunitas Kubernetes melalui [laman komunitas](http://kubernetes.io/community/). + +Kamu dapat berinteraksi dengan **maintainers** project ini melalui: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +### Etika dalam Berkontribusi + +Partisipasi dalam komunitas Kubernetes diatur dalam [Etika dalam Berkontribusi pada Kubernetes](code-of-conduct.md). + +## Terima Kasih! + +Kubernetes sangat menjunjung tinggi partisipasi dari komunitas, dan kami sangat mengapresiasi kontribusi kamu pada laman dan dokumentasi kami! diff --git a/README-ko.md b/README-ko.md index 5ac8d1e61721a..4846b08c97eb6 100644 --- a/README-ko.md +++ b/README-ko.md @@ -23,9 +23,9 @@ ### 한국어 -`README.md` 번역 및 한국어 기여자를 위한 보다 자세한 가이드를 [한국어 README](README-ko.md) 페이지에서 살펴봅니다. +`README.md` 번역 및 한국어 기여자를 위한 보다 자세한 가이드를 [한국어 README](README-ko.md) 페이지 혹은 [쿠버네티스 문서 한글화 가이드](https://kubernetes.io/ko/docs/contribute/localization_ko/)에서 살펴봅니다. -한국어 번역 메인테이너에게 다음을 통해 연락 가능합니다: +한국어 번역 메인테이너에게 다음을 통해 연락 가능합니다. * 이덕준 ([GitHub - @gochist](https://github.com/gochist)) * [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-ko) diff --git a/README-pt.md b/README-pt.md new file mode 100644 index 0000000000000..5f726d39b4d3a --- /dev/null +++ b/README-pt.md @@ -0,0 +1,82 @@ +# A documentação do Kubernetes + +[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) +[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + +Bem vindos! Este repositório abriga todos os recursos necessários para criar o [site e documentação do Kubernetes](https://kubernetes.io/). Estamos muito satisfeitos por você querer contribuir! + +## Contribuindo com os documentos + +Você pode clicar no botão **Fork** na área superior direita da tela para criar uma cópia desse repositório na sua conta do GitHub. Esta cópia é chamada de *fork*. Faça as alterações desejadas no seu fork e, quando estiver pronto para enviar as alterações para nós, vá até o fork e crie uma nova solicitação de pull para nos informar sobre isso. + +Depois que seu **pull request** for criada, um revisor do Kubernetes assumirá a responsabilidade de fornecer um feedback claro e objetivo. Como proprietário do pull request, **é sua responsabilidade modificar seu pull request para abordar o feedback que foi fornecido a você pelo revisor do Kubernetes.** Observe também que você pode acabar tendo mais de um revisor do Kubernetes para fornecer seu feedback ou você pode acabar obtendo feedback de um revisor do Kubernetes que é diferente daquele originalmente designado para lhe fornecer feedback. Além disso, em alguns casos, um de seus revisores pode solicitar uma revisão técnica de um [revisor de tecnologia Kubernetes](https://github.com/kubernetes/website/wiki/Tech-reviewers) quando necessário. Os revisores farão o melhor para fornecer feedback em tempo hábil, mas o tempo de resposta pode variar de acordo com as circunstâncias. + +Para mais informações sobre como contribuir com a documentação do Kubernetes, consulte: + +* [Comece a contribuir](https://kubernetes.io/docs/contribute/start/) +* [Preparando suas alterações na documentação](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) +* [Usando Modelos de Página](http://kubernetes.io/docs/contribute/style/page-templates/) +* [Guia de Estilo da Documentação](http://kubernetes.io/docs/contribute/style/style-guide/) +* [Localizando documentação do Kubernetes](https://kubernetes.io/docs/contribute/localization/) + +## Documentação do Kubernetes Localizando o `README.md` + +### coreano + +Veja a tradução de `README.md` e mais orientações sobre detalhes para contribuidores coreanos na página [README coreano](README-ko.md). + +Você pode alcançar os mantenedores da localização coreana em: + +* June Yi ([GitHub - @gochist](https://github.com/gochist)) +* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-ko) + +## Executando o site localmente usando o Docker + +A maneira recomendada de executar o site do Kubernetes localmente é executar uma imagem especializada do [Docker](https://docker.com) que inclui o gerador de site estático [Hugo](https://gohugo.io). + +> Se você está rodando no Windows, você precisará de mais algumas ferramentas que você pode instalar com o [Chocolatey](https://chocolatey.org). `choco install make` + +> Se você preferir executar o site localmente sem o Docker, consulte [Executando o site localmente usando o Hugo](#executando-o-site-localmente-usando-o-hugo) abaixo. + +Se você tiver o Docker [em funcionamento](https://www.docker.com/get-started), crie a imagem do Docker do `kubernetes-hugo` localmente: + +```bash +make docker-image +``` + +Depois que a imagem foi criada, você pode executar o site localmente: + +```bash +make docker-serve +``` + +Abra seu navegador para http://localhost:1313 para visualizar o site. Conforme você faz alterações nos arquivos de origem, Hugo atualiza o site e força a atualização do navegador. + +## Executando o site localmente usando o Hugo + +Veja a [documentação oficial do Hugo](https://gohugo.io/getting-started/installing/) para instruções de instalação do Hugo. Certifique-se de instalar a versão do Hugo especificada pela variável de ambiente `HUGO_VERSION` no arquivo [`netlify.toml`](netlify.toml#L9). + +Para executar o site localmente quando você tiver o Hugo instalado: + +```bash +make serve +``` + +Isso iniciará o servidor Hugo local na porta 1313. Abra o navegador para http://localhost:1313 para visualizar o site. Conforme você faz alterações nos arquivos de origem, Hugo atualiza o site e força a atualização do navegador. + +## Comunidade, discussão, contribuição e apoio + +Aprenda a se envolver com a comunidade do Kubernetes na [página da comunidade](http://kubernetes.io/community/). + +Você pode alcançar os mantenedores deste projeto em: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +### Código de conduta + +A participação na comunidade Kubernetes é regida pelo [Código de Conduta da Kubernetes](code-of-conduct.md). + +## Obrigado! + +A Kubernetes prospera com a participação da comunidade e nós realmente apreciamos suas contribuições para o nosso site e nossa documentação! diff --git a/README.md b/README.md index fd22b3342c853..de89c4fd658ff 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ [![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website) [![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) -Welcome! This repository houses all of the assets required to build the [Kubernetes website and documentation](https://kubernetes.io/). We're very pleased that you want to contribute! +Welcome! This repository houses all of the assets required to build the [Kubernetes website and documentation](https://kubernetes.io/). We're glad that you want to contribute! ## 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. +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 initially 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: @@ -19,24 +19,22 @@ For more information about contributing to the Kubernetes documentation, see: * [Documentation Style Guide](http://kubernetes.io/docs/contribute/style/style-guide/) * [Localizing Kubernetes Documentation](https://kubernetes.io/docs/contribute/localization/) -## `README.md`'s Localizing Kubernetes Documentation +## Localization `README.md`'s +| | | +|---|---| +|[French README](README-fr.md)|[Korean README](README-ko.md)| +|[German README](README-de.md)|[Portuguese README](README-pt.md)| +|[Hindi README](README-hi.md)|[Spanish README](README-es.md)| +|[Indonesian README](README-id.md)| +||| -### Korean +## Running the website locally using Docker -See translation of `README.md` and more detail guidance for Korean contributors on the [Korean README](README-ko.md) page. - -You can reach the maintainers of Korean localization at: - -* June Yi ([GitHub - @gochist](https://github.com/gochist)) -* [Slack channel](https://kubernetes.slack.com/messages/kubernetes-docs-ko) - -## Running the site locally using Docker - -The recommended way to run the Kubernetes website locally is to run a specialized [Docker](https://docker.com) image that includes the [Hugo](https://gohugo.io) static site generator. +The recommended way to run the Kubernetes website locally is to run a specialized [Docker](https://docker.com) image that includes the [Hugo](https://gohugo.io) static website generator. > If you are running on Windows, you'll need a few more tools which you can install with [Chocolatey](https://chocolatey.org). `choco install make` -> If you'd prefer to run the website locally without Docker, see [Running the site locally using Hugo](#running-the-site-locally-using-hugo) below. +> If you'd prefer to run the website locally without Docker, see [Running the website locally using Hugo](#running-the-site-locally-using-hugo) below. If you have Docker [up and running](https://www.docker.com/get-started), build the `kubernetes-hugo` Docker image locally: @@ -44,25 +42,25 @@ If you have Docker [up and running](https://www.docker.com/get-started), build t make docker-image ``` -Once the image has been built, you can run the site locally: +Once the image has been built, you can run the website locally: ```bash make docker-serve ``` -Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates the site and forces a browser refresh. +Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh. -## Running the site locally using Hugo +## Running the website locally using Hugo See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. Make sure to install 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: +To run the website 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 the site and forces a browser refresh. +This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh. ## Community, discussion, contribution, and support @@ -79,4 +77,4 @@ Participation in the Kubernetes community is governed by the [Kubernetes Code of ## 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 appreciate your contributions to our website and our documentation! diff --git a/SECURITY_CONTACTS b/SECURITY_CONTACTS index 22a9f7a2ba295..a91048f714175 100644 --- a/SECURITY_CONTACTS +++ b/SECURITY_CONTACTS @@ -1,10 +1,10 @@ # Defined below are the security contacts for this repo. # -# They are the contact point for the Product Security Team to reach out +# They are the contact point for the Product Security Committee to reach out # to for triaging and handling of incoming issues. # # The below names agree to abide by the -# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) # and will be removed and replaced if they violate that agreement. # # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE diff --git a/config.toml b/config.toml index 071c527e98a16..cadc842717dc9 100644 --- a/config.toml +++ b/config.toml @@ -64,10 +64,10 @@ time_format_blog = "Monday, January 02, 2006" description = "Production-Grade Container Orchestration" showedit = true -latest = "v1.13" +latest = "v1.14" -fullversion = "v1.13.0" -version = "v1.13" +fullversion = "v1.14.0" +version = "v1.14" githubbranch = "master" docsbranch = "master" deprecated = false @@ -77,10 +77,10 @@ githubWebsiteRepo = "github.com/kubernetes/website" githubWebsiteRaw = "raw.githubusercontent.com/kubernetes/website" [[params.versions]] -fullversion = "v1.13.0" -version = "v1.13" -githubbranch = "v1.13.0" -docsbranch = "release-1.13" +fullversion = "v1.14.0" +version = "v1.14" +githubbranch = "v1.14.0" +docsbranch = "release-1.14" url = "https://kubernetes.io" [params.pushAssets] @@ -95,33 +95,33 @@ js = [ ] [[params.versions]] -fullversion = "v1.12.3" +fullversion = "v1.13.4" +version = "v1.13" +githubbranch = "v1.13.4" +docsbranch = "release-1.13" +url = "https://v1-13.docs.kubernetes.io" + +[[params.versions]] +fullversion = "v1.12.6" version = "v1.12" -githubbranch = "v1.12.3" +githubbranch = "v1.12.6" docsbranch = "release-1.12" url = "https://v1-12.docs.kubernetes.io" [[params.versions]] -fullversion = "v1.11.5" +fullversion = "v1.11.8" version = "v1.11" -githubbranch = "v1.11.5" +githubbranch = "v1.11.8" docsbranch = "release-1.11" url = "https://v1-11.docs.kubernetes.io" [[params.versions]] -fullversion = "v1.10.11" +fullversion = "v1.10.13" version = "v1.10" -githubbranch = "v1.10.11" +githubbranch = "v1.10.13" docsbranch = "release-1.10" url = "https://v1-10.docs.kubernetes.io" -[[params.versions]] -fullversion = "v1.9.11" -version = "v1.9" -githubbranch = "v1.9.11" -docsbranch = "release-1.9" -url = "https://v1-9.docs.kubernetes.io" - # Language definitions. [languages] @@ -200,3 +200,58 @@ contentDir = "content/no" time_format_blog = "02.01.2006" # A list of language codes to look for untranslated content, ordered from left to right. language_alternatives = ["en"] + +[languages.de] +title = "Kubernetes" +description = "Production-Grade Container Orchestration" +languageName ="Deutsch" +weight = 8 +contentDir = "content/de" + +[languages.de.params] +time_format_blog = "02.01.2006" +# A list of language codes to look for untranslated content, ordered from left to right. +language_alternatives = ["en"] + +[languages.es] +title = "Kubernetes" +description = "Production-Grade Container Orchestration" +languageName ="Español" +weight = 9 +contentDir = "content/es" + +[languages.es.params] +time_format_blog = "02.01.2006" +# A list of language codes to look for untranslated content, ordered from left to right. +language_alternatives = ["en"] + +[languages.pt] +title = "Kubernetes" +description = "Orquestração de contêineres em nível de produção" +languageName ="Português" +weight = 9 +contentDir = "content/pt" + +[languages.pt.params] +time_format_blog = "02.01.2006" +# A list of language codes to look for untranslated content, ordered from left to right. +language_alternatives = ["en"] + +[languages.id] +title = "Kubernetes" +description = "Production-Grade Container Orchestration" +languageName ="Bahasa Indonesia" +weight = 10 +contentDir = "content/id" + +[languages.id.params] +time_format_blog = "02.01.2006" +# A list of language codes to look for untranslated content, ordered from left to right. +language_alternatives = ["en"] + +[languages.hi] +title = "Kubernetes" +description = "Production-Grade Container Orchestration" +languageName ="Hindi" +weight = 11 +contentDir = "content/hi" \ No newline at end of file diff --git a/content/de/OWNERS b/content/de/OWNERS new file mode 100644 index 0000000000000..7f2f2fb5a6429 --- /dev/null +++ b/content/de/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# This is the localization project for German. +# Teams and members are visible at https://github.com/orgs/kubernetes/teams. + +reviewers: +- sig-docs-de-reviews + +approvers: +- sig-docs-de-owners + +labels: +- language/de diff --git a/content/de/_common-resources/index.md b/content/de/_common-resources/index.md new file mode 100644 index 0000000000000..ca03031f1ee91 --- /dev/null +++ b/content/de/_common-resources/index.md @@ -0,0 +1,3 @@ +--- +headless: true +--- diff --git a/content/de/_index.html b/content/de/_index.html new file mode 100644 index 0000000000000..90c04a2185ad5 --- /dev/null +++ b/content/de/_index.html @@ -0,0 +1,62 @@ +--- +title: "Production-Grade Container Orchestration" +abstract: "Automatisierte Bereitstellung, Skalierung und Verwaltung von Containern" +cid: home +--- + +{{< deprecationwarning >}} + +{{< blocks/section id="oceanNodes" >}} +{{% blocks/feature image="flower" %}} +### [Kubernetes (K8s)]({{< relref "/docs/concepts/overview/what-is-kubernetes" >}}) ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. + +Es gruppiert Container, aus denen sich eine Anwendung zusammensetzt, in logische Einheiten, um die Verwaltung und Erkennung zu erleichtern. Kubernetes baut auf [15 Jahre Erfahrung in Bewältigung von Produktions-Workloads bei Google] (http://queue.acm.org/detail.cfm?id=2898444), kombiniert mit Best-of-Breed-Ideen und Praktiken aus der Community. +{{% /blocks/feature %}} + +{{% blocks/feature image="scalable" %}} +#### Planet Scale + +Kubernetes basiert auf denselben Prinzipien, die es Google ermöglichen, Milliarden von Containern pro Woche zu betreiben. + +{{% /blocks/feature %}} + +{{% blocks/feature image="blocks" %}} +#### Never Outgrow + +Unabhängig davon, ob Sie lokal testen oder ein globales Unternehmen betreiben, die Flexibilität von Kubernetes wächst mit Ihnen, um Ihre Anwendungen konsistent und einfach bereitzustellen, unabhängig von der Komplexität Ihrer Anforderungen. + +{{% /blocks/feature %}} + +{{% blocks/feature image="suitcase" %}} +#### Run Anywhere + +Kubernetes ist Open Source und bietet Ihnen die Freiheit, die Infrastruktur vor Ort, Hybrid oder Public Cloud zu nutzen. So können Sie Workloads mühelos dorthin verschieben, wo es Ihnen wichtig ist. + +{{% /blocks/feature %}} + +{{< /blocks/section >}} + +{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}} +
+

Die Herausforderungen bei der Migration von über 150 Microservices auf Kubernetes

+

Von Sarah Wells, technischer Direktor für Betrieb und Zuverlässigkeit, Financial Times

+ +
+
+
+ KubeCon vom 20-23. Mai 2019 in Barcelona +
+
+
+
+ KubeCon vom 24-26. Juni 2019 in Shanghai +
+
+ + +
+{{< /blocks/section >}} + +{{< blocks/kubernetes-features >}} + +{{< blocks/case-studies >}} diff --git a/content/de/blog/_index.md b/content/de/blog/_index.md new file mode 100644 index 0000000000000..0a2e18c7add12 --- /dev/null +++ b/content/de/blog/_index.md @@ -0,0 +1,10 @@ +--- +title: Kubernetes Blog +linkTitle: Blog +menu: + main: + title: "Blog" + weight: 40 + post: > +

Lesen Sie die neuesten Nachrichten über Kubernetes und das Containeruniversum im Allgemeinen. Erhalten Sie druckfrisch die neuesten Tutorials und technische Anleitungen.

+--- diff --git a/content/de/case-studies/_index.html b/content/de/case-studies/_index.html new file mode 100644 index 0000000000000..2d989f7970341 --- /dev/null +++ b/content/de/case-studies/_index.html @@ -0,0 +1,9 @@ +--- +title: Fallstudien +linkTitle: Fallstudien +bigheader: Kubernetes Anwenderberichte +abstract: Eine Sammlung von Benutzern, die Kubernetes in Produktion verwenden. +layout: basic +class: gridPage +cid: caseStudies +--- diff --git a/content/de/community/_index.html b/content/de/community/_index.html new file mode 100644 index 0000000000000..dd95bd7f39f54 --- /dev/null +++ b/content/de/community/_index.html @@ -0,0 +1,61 @@ +--- +title: Community +layout: basic +cid: community +--- + +
+
+
+

Die Gewissheit, dass Kubernetes überall und für alle gut funktioniert.

+

Verbinden Sie sich mit der Kubernetes-Community in unserem Slack Kanal, Diskussionsforum, oder beteiligen Sie sich an der Kubernetes-dev-Google-Gruppe. Eine wöchentliches Community-Meeting findet per Videokonferenz statt, um den Stand der Dinge zu diskutieren, folgen Sie + diesen Anweisungen für Informationen wie Sie teilnehmen können.

+

Sie können Kubernetes auch auf der ganzen Welt über unsere + Kubernetes Meetup Community und der + Kubernetes Cloud Native Meetup Community beitreten.

+
+
+

Special Interest Groups (SIGs)

+

Haben Sie ein besonderes Interesse daran, wie Kubernetes mit einer anderen Technologie arbeitet? Werfen Sie einen Blick auf unsere kontinuierlich wachsende + Listen von SIGs, von AWS und Openstack bis hin zu Big Data und Skalierbarkeit, es gibt einen Platz für Sie, an dem Sie mitwirken können, und Anweisungen zur Gründung einer neuen SIG finden, wenn Ihr besonderes Interesse (noch) nicht abgedeckt ist. +

+ +

Als Mitglied der Kubernetes-Community sind Sie herzlich eingeladen, an allen SIG-Treffen teilzunehmen, die Sie interessieren. Eine Registrierung ist nicht erforderlich.

+ +
+ +
+

Verhaltensregeln

+

Die Kubernetes-Community schätzt Respekt und Inklusivität und setzt einen Verhaltenskodex + in allen Interaktionen durch. Wenn Sie einen Verstoß gegen den Verhaltenskodex bei einer Veranstaltung oder Sitzung, + in Slack oder in einem anderen Kommunikationsmechanismus feststellen, wenden Sie sich + bitte an das Kubernetes Code of Conduct Committee conduct@kubernetes.io. Ihre Anonymität wird geschützt. +

+
+
+
+ +
+
+

Talk to Us!

+

Wir würden uns freuen, von Ihnen zu hören, wie Sie Kubernetes verwenden
und was wir tun können, um es besser zu machen.

+
+
+ @kubernetesio +

Erhalten Sie die neuesten Nachrichten und Updates.

+
+
+ Github Project +

Informieren Sie sich über das Projekt und erwägen Sie, einen Beitrag zu leisten.

+
+
+ #kubernetes-users +

Unser Slack-Kanal ist der beste Weg, um unsere Ingenieure zu kontaktieren und Ihre Ideen mit ihnen zu teilen.

+
+
+ Stack Overflow +

Unser Benutzerforum ist ein großartiger Ort, um Community-Support zu erhalten.

+
+
+
+
diff --git a/content/de/docs/_index.md b/content/de/docs/_index.md new file mode 100644 index 0000000000000..b23abd1c56321 --- /dev/null +++ b/content/de/docs/_index.md @@ -0,0 +1,3 @@ +--- +title: Dokumentation +--- diff --git a/content/de/docs/concepts/_index.md b/content/de/docs/concepts/_index.md new file mode 100644 index 0000000000000..a5f7788f5ad8b --- /dev/null +++ b/content/de/docs/concepts/_index.md @@ -0,0 +1,75 @@ +--- +title: Konzepte +main_menu: true +content_template: templates/concept +weight: 40 +--- + +{{% capture overview %}} + +Im Abschnitt Konzepte erfahren Sie mehr über die Teile des Kubernetes-Systems und die Abstraktionen, die Kubernetes zur Darstellung Ihres Clusters verwendet, und Sie erhalten ein tieferes Verständnis der Funktionsweise von Kubernetes. + +{{% /capture %}} + +{{% capture body %}} + +## Überblick + +Um mit Kubernetes zu arbeiten, verwenden Sie *Kubernetes-API-Objekte*, um den *gewünschten Status Ihres Clusters* zu beschreiben: +welche Anwendungen oder anderen Workloads Sie ausführen möchten, welche Containerimages sie verwenden, die Anzahl der Replikate, welche Netzwerk- und Festplattenressourcen Sie zur Verfügung stellen möchten, und vieles mehr. Sie legen den gewünschten Status fest, indem Sie Objekte mithilfe der Kubernetes-API erstellen, normalerweise über die Befehlszeilenschnittstelle `kubectl`. Sie können die Kubernetes-API auch direkt verwenden, um mit dem Cluster zu interagieren und den gewünschten Status festzulegen oder zu ändern. + +Sobald Sie den gewünschten Status eingestellt haben, wird das *Kubernetes Control Plane* dafür sorgen, dass der aktuelle Status des Clusters mit dem gewünschten Status übereinstimmt. Zu diesem Zweck führt Kubernetes verschiedene Aufgaben automatisch aus, z. B. Starten oder Neustarten von Containern, Skalieren der Anzahl der Repliken einer bestimmten Anwendung und vieles mehr. Das Kubernetes Control Plane besteht aus einer Reihe von Prozessen, die in Ihrem Cluster ausgeführt werden: + +* Der **Kubernetes Master** bestehet aus drei Prozessen, die auf einem einzelnen Node in Ihrem Cluster ausgeführt werden, der als Master-Node bezeichnet wird. Diese Prozesse sind:[kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) und [kube-scheduler](/docs/admin/kube-scheduler/). +* Jeder einzelne Node in Ihrem Cluster, welcher nicht der Master ist, führt zwei Prozesse aus: + * **[kubelet](/docs/admin/kubelet/)**, das mit dem Kubernetes Master kommuniziert. + * **[kube-proxy](/docs/admin/kube-proxy/)**, ein Netzwerk-Proxy, der die Netzwerkdienste von Kubernetes auf jedem Node darstellt. + +## Kubernetes Objects + +Kubernetes enthält eine Reihe von Abstraktionen, die den Status Ihres Systems darstellen: implementierte containerisierte Anwendungen und Workloads, die zugehörigen Netzwerk- und Festplattenressourcen sowie weitere Informationen zu den Aufgaben Ihres Clusters. Diese Abstraktionen werden durch Objekte in der Kubernetes-API dargestellt; Lesen Sie [Kubernetes Objects Überblick](/docs/concepts/abstractions/overview/) für weitere Details. + +Die grundlegenden Objekte von Kubernetes umfassen: + +* [Pod](/docs/concepts/workloads/pods/pod-overview/) +* [Service](/docs/concepts/services-networking/service/) +* [Volume](/docs/concepts/storage/volumes/) +* [Namespace](/docs/concepts/overview/working-with-objects/namespaces/) + +Darüber hinaus enthält Kubernetes eine Reihe von Abstraktionen auf höherer Ebene, die als Controller bezeichnet werden. Controller bauen auf den Basisobjekten auf und bieten zusätzliche Funktionen und Komfortfunktionen. Sie beinhalten: + +* [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/) +* [Deployment](/docs/concepts/workloads/controllers/deployment/) +* [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) +* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/) +* [Job](/docs/concepts/workloads/controllers/jobs-run-to-completion/) + +## Kubernetes Control Plane + +Die verschiedenen Teile der Kubernetes-Steuerungsebene (Control Plane), wie der Kubernetes Master- und der Kubelet-Prozess, bestimmen, wie Kubernetes mit Ihrem Cluster kommuniziert. Das Control Plane führt ein Inventar aller Kubernetes-Objekte im System und führt fortlaufende Steuerkreise aus, um den Status dieser Objekte zu verwalten. Zu jeder Zeit reagieren die Steuerkreise des Control Plane auf Änderungen im Cluster und arbeiten daran, dass der tatsächliche Status aller Objekte im System mit dem gewünschten Status, den Sie definiert haben, übereinstimmt. + +Wenn Sie beispielsweise mit der Kubernetes-API ein Deployment-Objekt erstellen, geben Sie einen neuen gewünschten Status für das System an. Das Kubernetes Control Plane zeichnet die Objekterstellung auf und führt Ihre Anweisungen aus, indem es die erforderlichen Anwendungen startet und sie für auf den Cluster-Nodes plant--Dadurch wird der tatsächliche Status des Clusters an den gewünschten Status angepasst. + +### Kubernetes Master + +Der Kubernetes-Master ist für die Aufrechterhaltung des gewünschten Status für Ihren Cluster verantwortlich. Wenn Sie mit Kubernetes interagieren, beispielsweise mit dem Kommanduzeilen-Tool `kubectl`, kommunizieren Sie mit dem Kubernetes-Master Ihres Clusters. + +> Der "Master" bezieht sich auf eine Reihe von Prozessen, die den Clusterstatus verwalten. Normalerweise werden diese Prozesse alle auf einem einzigen Node im Cluster ausgeführt. Dieser Node wird auch als Master bezeichnet. Der Master kann repliziert werden um Verfügbarkeit und Redundanz zu erhöhen. + +### Kubernetes Nodes + +Die Nodes in einem Cluster sind die Maschinen (VMs, physische Server usw.), auf denen Ihre Anwendungen und Cloud-Workflows ausgeführt werden. Der Kubernetes-Master steuert jeden Master. Sie werden selten direkt mit Nodes interagieren. + +#### Objekt Metadata + + +* [Anmerkungen](/docs/concepts/overview/working-with-objects/annotations/) + +{{% /capture %}} + +{{% capture whatsnext %}} + +Wenn Sie eine Konzeptseite schreiben möchten, lesen Sie [Seitenvorlagen verwenden](/docs/home/contribute/page-templates/) +für Informationen zum Konzeptseitentyp und zur Dokumentations Vorlage. + +{{% /capture %}} diff --git a/content/de/docs/concepts/architecture/_index.md b/content/de/docs/concepts/architecture/_index.md new file mode 100644 index 0000000000000..1e9f717f4d07c --- /dev/null +++ b/content/de/docs/concepts/architecture/_index.md @@ -0,0 +1,4 @@ +--- +title: "Kubernetes Architekur" +weight: 30 +--- \ No newline at end of file diff --git a/content/de/docs/concepts/architecture/master-node-communication.md b/content/de/docs/concepts/architecture/master-node-communication.md new file mode 100644 index 0000000000000..efa357124847b --- /dev/null +++ b/content/de/docs/concepts/architecture/master-node-communication.md @@ -0,0 +1,72 @@ +--- +title: Master-Node Kommunikation +content_template: templates/concept +weight: 20 +--- + +{{% capture overview %}} + +Dieses Dokument katalogisiert die Kommunikationspfade zwischen dem Master (eigentlich dem Apiserver) und des Kubernetes-Clusters. +Die Absicht besteht darin, Benutzern die Möglichkeit zu geben, ihre Installation so anzupassen, dass die Netzwerkkonfiguration so abgesichert wird, dass der Cluster in einem nicht vertrauenswürdigen Netzwerk (oder mit vollständig öffentlichen IP-Adressen eines Cloud-Providers) ausgeführt werden kann. + +{{% /capture %}} + + +{{% capture body %}} + +## Cluster zum Master + +Alle Kommunikationspfade vom Cluster zum Master enden beim Apiserver (keine der anderen Master-Komponenten ist dafür ausgelegt, Remote-Services verfügbar zu machen). +In einem typischen Setup ist der Apiserver so konfiguriert, dass er Remote-Verbindungen an einem sicheren HTTPS-Port (443) mit einer oder mehreren Formen der [Clientauthentifizierung](/docs/reference/access-authn-authz/authentication/) überwacht. +Eine oder mehrere Formene von [Autorisierung](/docs/reference/access-authn-authz/authorization/) sollte aktiviert sein, insbesondere wenn [anonyme Anfragen](/docs/reference/access-authn-authz/authentication/#anonymous-requests) oder [Service Account Tokens](/docs/reference/access-authn-authz/authentication/#service-account-tokens) aktiviert sind. + +Nodes sollten mit dem öffentlichen Stammzertifikat für den Cluster konfigurirert werden, sodass sie eine sichere Verbindung zum Apiserver mit gültigen Client-Anmeldeinformationen herstellen können. +Beispielsweise bei einer gewöhnlichen GKE-Konfiguration enstprechen die dem kubelet zur Verfügung gestellten Client-Anmeldeinformationen eines Client-Zertifikats. +Lesen Sie über [kubelet TLS bootstrapping](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/) zur automatisierten Bereitstellung von kubelet-Client-Zertifikaten. + +Pods, die eine Verbindung zum Apiserver herstellen möchten, können dies auf sichere Weise tun, indem sie ein Dienstkonto verwenden, sodass Kubernetes das öffentliche Stammzertifikat und ein gültiges Trägertoken automatisch in den Pod einfügt, wenn er instanziert wird. +Der `kubernetes`-Dienst (in allen Namespaces) ist mit einer virtuellen IP-Adresse konfiguriert, die (über den Kube-Proxy) an den HTTPS-Endpunkt auf dem Apiserver umgeleitet wird. + +Die Master-Komponenten kommunizieren auch über den sicheren Port mit dem Cluster-Apiserver. + +Der Standardbetriebsmodus für Verbindungen vom Cluster (Knoten und Pods, die auf den Knoten ausgeführt werden) zum Master ist daher standardmäßig gesichert und kann über nicht vertrauenswürdige und/oder öffentliche Netzwerke laufen. + +## Master zum Cluster + +Es gibt zwei primäre Kommunikationspfade vom Master (Apiserver) zum Cluster. +Der erste ist vom Apiserver bis zum Kubelet-Prozess, der auf jedem Node im Cluster ausgeführt wird. +Der zweite ist vom Apiserver zu einem beliebigen Node, Pod oder Dienst über die Proxy-Funktionalität des Apiservers. + +### Apiserver zum kubelet + +Die Verbindungen vom Apiserver zum Kubelet werden verwendet für: + + * Abrufen von Protokollen für Pods. + * Verbinden (durch kubectl) mit laufenden Pods. + * Bereitstellung der Portweiterleitungsfunktion des kubelet. + +Diese Verbindungen enden am HTTPS-Endpunkt des kubelet. +Standardmäßig überprüft der Apiserver das Serverzertifikat des Kubelet nicht, was die Verbindung von angreifbar für Man-in-the-Middle-Angriffe macht, und ist es ist daher **unsicher** wenn die Verbindungen über nicht vertrauenswürdige und/oder öffentliche Netzwerke laufen. + +Um diese Verbindung zu überprüfen, verwenden Sie das Flag `--kubelet-certificate-authority`, um dem Apiserver ein Stammzertifikatbündel bereitzustellen, das zur Überprüfung des Server-Zertifikats des kubelet verwendet wird. + +Wenn dies nicht möglich ist, verwenden Sie [SSH tunneling](/docs/concepts/architecture/master-node-communication/#ssh-tunnels) +zwischen dem Apiserver und kubelet, falls erforderlich, um eine Verbindung über ein nicht vertrauenswürdiges oder öffentliches Netz zu vermeiden. + +Ausserdem sollte, [Kubelet Authentifizierung und/oder Autorisierung](/docs/admin/kubelet-authentication-authorization/) sollte aktiviert sein, um die kubelet-API zu sichern. + +### Apiserver zu Nodes, Pods und Services + +Die Verbindungen vom Apiserver zu einem Node, Pod oder Dienst verwenden standardmäßig einfache HTTP-Verbindungen und werden daher weder authentifiziert noch verschlüsselt. +Sie können über eine sichere HTTPS-Verbindung ausgeführt werden, indem dem Node, dem Pod oder dem Servicenamen in der API-URL "https:" vorangestellt wird. Das vom HTTPS-Endpunkt bereitgestellte Zertifikat wird jedoch nicht überprüft, und es werden keine Clientanmeldeinformationen bereitgestellt. Die Verbindung wird zwar verschlüsselt, garantiert jedoch keine Integrität. +Diese Verbindungen **sind derzeit nicht sicher** innerhalb von nicht vertrauenswürdigen und/oder öffentlichen Netzen. + +### SSH Tunnels + +Kubernetes unterstützt SSH-Tunnel zum Schutz der Kommunikationspfade von Master -> Cluster. +In dieser Konfiguration initiiert der Apiserver einen SSH-Tunnel zu jedem Nodem im Cluster (Verbindung mit dem SSH-Server, der Port 22 läuft), und leitet den gesamten Datenverkehr für ein kubelet, einen Node, einen Pod oder einen Dienst durch den Tunnel. +Dieser Tunnel stellt sicher, dass der Datenverkehr nicht außerhalb des Netzwerks sichtbar ist, in dem die Knoten ausgeführt werden. + +SSH-Tunnel sind derzeit nicht mehr unterstützt. Sie sollten sie also nicht verwenden, es sei denn, Sie wissen, was Sie tun. Ein Ersatz für diesen Kommunikationskanal wird entwickelt. + +{{% /capture %}} diff --git a/content/de/docs/concepts/architecture/nodes.md b/content/de/docs/concepts/architecture/nodes.md new file mode 100644 index 0000000000000..faf5e5decb048 --- /dev/null +++ b/content/de/docs/concepts/architecture/nodes.md @@ -0,0 +1,247 @@ +--- +title: Nodes +content_template: templates/concept +weight: 10 +--- + +{{% capture overview %}} + +Ein Knoten (Node in Englisch) ist eine Arbeitsmaschine in Kubernetes, früher als `minion` bekannt. Ein Node +kann je nach Cluster eine VM oder eine physische Maschine sein. Jeder Node enthält +die für den Betrieb von [Pods](/docs/concepts/workloads/pods/pod/) notwendigen Dienste +und wird von den Master-Komponenten verwaltet. +Die Dienste auf einem Node umfassen die [Container Runtime](/docs/concepts/overview/components/#node-components), das Kubelet und den Kube-Proxy. +Weitere Informationen finden Sie im Abschnitt Kubernetes Node in der Architekturdesign-Dokumentation. + +{{% /capture %}} + + +{{% capture body %}} + +## Node Status + +Der Status eines Nodes enthält folgende Informationen: + +* [Adressen](#adressen) +* [Zustand](#zustand) +* [Kapazität](#kapazität) +* [Info](#info) + +Jeder Abschnitt wird folgend detailliert beschrieben. + +### Adressen + +Die Verwendung dieser Felder hängt von Ihrem Cloud-Anbieter oder der Bare-Metal-Konfiguration ab. + +* HostName: Der vom Kernel des Nodes gemeldete Hostname. Kann mit dem kubelet-Parameter `--hostname-override` überschrieben werden. +* ExternalIP: In der Regel die IP-Adresse des Nodes, die extern geroutet werden kann (von außerhalb des Clusters verfügbar). +* InternalIP: In der Regel die IP-Adresse des Nodes, die nur innerhalb des Clusters routbar ist. + + +### Zustand + +Das `conditions` Feld beschreibt den Zustand, aller `Running` Nodes. + +| Node Condition | Beschreibung | +|----------------|-------------| +| `OutOfDisk` | `True` wenn auf dem Node nicht genügend freier Speicherplatz zum Hinzufügen neuer Pods vorhanden ist, andernfalls `False` | +| `Ready` | `True` wenn der Node in einem guten Zustand und bereit ist Pods aufzunehmen, `False` wenn der Node nicht in einem guten Zustand ist und nicht bereit ist Pods aufzunehmeb, und `Unknown` wenn der Node-Controller seit der letzten `node-monitor-grace-period` nichts von dem Node gehört hat (Die Standardeinstellung beträgt 40 Sekunden) | +| `MemoryPressure` | `True` wenn der verfügbare Speicher des Nodes niedrig ist; Andernfalls`False` | +| `PIDPressure` | `True` wenn zu viele Prozesse auf dem Node vorhanden sind; Andernfalls`False` | +| `DiskPressure` | `True` wenn die Festplattenkapazität niedrig ist. Andernfalls `False` | +| `NetworkUnavailable` | `True` wenn das Netzwerk für den Node nicht korrekt konfiguriert ist, andernfalls `False` | + +Der Zustand eines Nodes wird als JSON-Objekt dargestellt. Die folgende Antwort beschreibt beispielsweise einen fehlerfreien Node. + +```json +"conditions": [ + { + "type": "Ready", + "status": "True" + } +] +``` + +Wenn der Status der `Ready`-Bedingung `Unknown` oder `False` länger als der `pod-eviction-timeout` bleibt, wird ein Parameter an den [kube-controller-manager](/docs/admin/kube-controller-manager/) übergeben und alle Pods auf dem Node werden vom Node Controller gelöscht. + +Die voreingestellte Zeit vor der Entfernung beträgt **fünf Minuten**. +In einigen Fällen, in denen der Node nicht erreichbar ist, kann der Apiserver nicht mit dem Kubelet auf dem Node kommunizieren. +Die Entscheidung, die Pods zu löschen, kann dem Kublet erst mitgeteilt werden, wenn die Kommunikation mit dem Apiserver wiederhergestellt ist. +In der Zwischenzeit können Pods, deren Löschen geplant ist, weiterhin auf dem unzugänglichen Node laufen. + + +In Versionen von Kubernetes vor 1.5 würde der Node Controller das Löschen dieser unerreichbaren Pods vom Apiserver [erzwingen](/docs/concepts/workloads/pods/pod/#force-deletion-of-pods). In Version 1.5 und höher erzwingt der Node Controller jedoch keine Pod Löschung, bis bestätigt wird, dass sie nicht mehr im Cluster ausgeführt werden. Pods die auf einem unzugänglichen Node laufen sind eventuell in einem einem `Terminating` oder `Unkown` Status. In Fällen, in denen Kubernetes nicht aus der zugrunde liegenden Infrastruktur schließen kann, ob ein Node einen Cluster dauerhaft verlassen hat, muss der Clusteradministrator den Node möglicherweise manuell löschen. +Das Löschen des Kubernetes-Nodeobjekts bewirkt, dass alle auf dem Node ausgeführten Pod-Objekte gelöscht und deren Namen freigegeben werden. + +In Version 1.12 wurde die Funktion `TaintNodesByCondition` als Beta-Version eingeführt, die es dem Node-Lebenszyklus-Controller ermöglicht, automatisch [Markierungen](/docs/concepts/configuration/taint-and-toleration/) (*taints* in Englisch) zu erstellen, die Bedingungen darstellen. + +Ebenso ignoriert der Scheduler die Bedingungen, wenn er einen Node berücksichtigt; stattdessen betrachtet er die Markierungen (taints) des Nodes und die Toleranzen eines Pod. + +Anwender können jetzt zwischen dem alten Scheduling-Modell und einem neuen, flexibleren Scheduling-Modell wählen. + +Ein Pod, der keine Toleranzen aufweist, wird gemäß dem alten Modell geplant. +Aber ein Pod, die die Taints eines bestimmten Node toleriert, kann auf diesem Node geplant werden. + +{{< caution >}} +Wenn Sie diese Funktion aktivieren, entsteht eine kleine Verzögerung zwischen der Zeit, +in der eine Bedingung beobachtet wird, und der Zeit, in der ein Taint entsteht. +Diese Verzögerung ist in der Regel kürzer als eine Sekunde, aber sie kann die Anzahl +der Pods erhöhen, die erfolgreich geplant, aber vom Kubelet abgelehnt werden. +{{< /caution >}} + +### Kapazität + +Beschreibt die auf dem Node verfügbaren Ressourcen: CPU, Speicher und die maximale +Anzahl der Pods, die auf dem Node ausgeführt werden können. + +### Info + +Allgemeine Informationen zum Node, z. B. Kernelversion, Kubernetes-Version +(kubelet- und kube-Proxy-Version), Docker-Version (falls verwendet), Betriebssystemname. +Die Informationen werden von Kubelet vom Node gesammelt. + +## Management + +Im Gegensatz zu [Pods](/docs/concepts/workloads/pods/pod/) und [Services](/docs/concepts/services-networking/service/), +ein Node wird nicht von Kubernetes erstellt: Er wird extern von Cloud-Anbietern wie Google Compute Engine erstellt oder ist in Ihrem Pool physischer oder virtueller Maschinen vorhanden. +Wenn Kubernetes also einen Node erstellt, wird ein Objekt erstellt, das den Node darstellt. +Nach der Erstellung überprüft Kubernetes, ob der Node gültig ist oder nicht. + +Wenn Sie beispielsweise versuchen, einen Node aus folgendem Inhalt zu erstellen: + +```json +{ + "kind": "Node", + "apiVersion": "v1", + "metadata": { + "name": "10.240.79.157", + "labels": { + "name": "my-first-k8s-node" + } + } +} +``` + + +Kubernetes erstellt intern ein Node-Oject (die Darstellung) und validiert den Node durch Zustandsprüfung basierend auf dem Feld `metadata.name`. +Wenn der Node gültig ist, d.h. wenn alle notwendigen Dienste ausgeführt werden, ist er berechtigt, einen Pod auszuführen. +Andernfalls wird er für alle Clusteraktivitäten ignoriert, bis er gültig wird. + + +{{< note >}} +Kubernetes behält das Objekt für den ungültigen Node und prüft ständig seine Gültigkeit. +Sie müssen das Node-Objekt explizit löschen, um diesen Prozess zu stoppen. +{{< /note >}} + +Aktuell gibt es drei Komponenten, die mit dem Kubernetes Node-Interface interagieren: Node Controller, Kubelet und Kubectl. + + +### Node Controller + +Der Node Controller ist eine Kubernetes-Master-Komponente, die verschiedene Aspekte von Nodes verwaltet. + +Der Node Controller hat mehrere Rollen im Leben eines Nodes. +Der erste ist die Zuordnung eines CIDR-Blocks zu dem Node, wenn er registriert ist (sofern die CIDR-Zuweisung aktiviert ist). + +Die zweite ist, die interne Node-Liste des Node Controllers mit der Liste der verfügbaren Computer des Cloud-Anbieters auf dem neuesten Stand zu halten. +Wenn ein Node in einer Cloud-Umgebung ausgeführt wird und sich in einem schlechten Zustand befindet, fragt der Node Controller den Cloud-Anbieter, ob die virtuelle Maschine für diesen Node noch verfügbar ist. Wenn nicht, löscht der Node Controller den Node aus seiner Node-Liste. + +Der dritte ist die Überwachung des Zustands der Nodes. Der Node Controller ist dafür verantwortlich, +die NodeReady-Bedingung von NodeStatus auf ConditionUnknown zu aktualisieren, wenn ein wenn ein Node unerreichbar wird (der Node Controller empfängt aus irgendeinem Grund keine Herzschläge mehr, z.B. weil der Node heruntergefahren ist) und später alle Pods aus dem Node zu entfernen (und diese ordnungsgemäss zu beenden), wenn der Node weiterhin unzugänglich ist. (Die Standard-Timeouts sind 40s, um ConditionUnknown zu melden und 5 Minuten, um mit der Evakuierung der Pods zu beginnen). +Der Node Controller überprüft den Zustand jedes Nodes alle `--node-monitor-period` Sekunden. + + +In Versionen von Kubernetes vor 1.13 ist NodeStatus der Herzschlag des Nodes. +Ab Kubernetes 1.13 wird das Node-Lease-Feature als Alpha-Feature eingeführt (Feature-Gate `NodeLease`, [KEP-0009](https://github.com/kubernetes/community/blob/master/keps/sig-node/0009-node-heartbeat.md)). + +Wenn die Node Lease Funktion aktiviert ist, hat jeder Node ein zugeordnetes `Lease`-Objekt im `kube-node-lease`-Namespace, das vom Node regelmäßig erneuert wird. +Sowohl NodeStatus als auch Node Lease werden als Herzschläge vom Node aus behandelt. +Node Leases werden häufig erneuert, während NodeStatus nur dann vom Node zu Master gemeldet wird, wenn sich etwas ändert oder genügend Zeit vergangen ist (Standard ist 1 Minute, was länger ist als der Standard-Timeout von 40 Sekunden für unerreichbare Nodes). +Da Node Leases viel lastärmer sind als NodeStatus, macht diese Funktion den Node Herzschlag sowohl in Bezug auf Skalierbarkeit als auch auf die Leistung deutlich effizienter. + +In Kubernetes 1.4 haben wir die Logik der Node-Steuerung aktualisiert, um Fälle besser zu handhaben, in denen eine große Anzahl von Nodes Probleme hat, den Master zu erreichen (z.B. weil der Master Netzwerkprobleme hat). +Ab 1.4 betrachtet der Node-Controller den Zustand aller Nodes im Cluster, wenn er eine Entscheidung über die Enterfung eines Pods trifft. + +In den meisten Fällen begrenzt der Node-Controller die Entfernungsrate auf `--node-eviction-rate` (Standard 0,1) pro Sekunde, was bedeutet, dass er die Pods nicht von mehr als einem Node pro 10 Sekunden entfernt. + +Das Entfernungsverhalten von Nodes ändert sich, wenn ein Node in einer bestimmten Verfügbarkeitszone ungesund wird. +Der Node-Controller überprüft gleichzeitig, wie viel Prozent der Nodes in der Zone ungesund sind (NodeReady-Bedingung ist ConditionUnknown oder ConditionFalse). +Wenn der Anteil der ungesunden Nodes mindestens `--unhealthy-zone-threshold` (Standard 0,55) beträgt, wird die Entfernungsrate reduziert: + +Wenn der Cluster klein ist (d.h. weniger als oder gleich `--large-cluster-size-threshold` Node - Standard 50), werden die Entfernungen gestoppt. Andernfalls wird die Entfernungsrate auf `--secondary-node-eviction-rate` (Standard 0,01) pro Sekunde reduziert. + +Der Grund, warum diese Richtlinien pro Verfügbarkeitszone implementiert werden, liegt darin, dass eine Verfügbarkeitszone vom Master unerreichbar werden könnte, während die anderen verbunden bleiben. Wenn Ihr Cluster nicht mehrere Verfügbarkeitszonen von Cloud-Anbietern umfasst, gibt es nur eine Verfügbarkeitszone (den gesamten Cluster). + +Ein wichtiger Grund für die Verteilung Ihrer Nodes auf Verfügbarkeitszonen ist, dass die Arbeitsbelastung auf gesunde Zonen verlagert werden kann, wenn eine ganze Zone ausfällt. +Wenn also alle Nodes in einer Zone ungesund sind, entfernt Node Controller mit der normalen `--node-eviction-rate` Geschwindigkeit. +Der Ausnahmefall ist, wenn alle Zonen völlig ungesund sind (d.h. es gibt keine gesunden Node im Cluster). +In diesem Fall geht der Node-Controller davon aus, dass es ein Problem mit der Master-Konnektivität gibt und stoppt alle Entfernungen, bis die Verbindung wiederhergestellt ist. + +Ab Kubernetes 1.6 ist der Node-Controller auch für die Entfernung von Pods zuständig, die auf Nodes mit `NoExecute`-Taints laufen, wenn die Pods die Markierungen nicht tolerieren. +Zusätzlich ist der NodeController als Alpha-Funktion, die standardmäßig deaktiviert ist, dafür verantwortlich, Taints hinzuzufügen, die Node Probleme, wie `Node unreachable` oder `not ready` entsprechen. +Siehe [diese Dokumentation](/docs/concepts/configuration/taint-and-toleration/) für Details über `NoExecute` Taints und die Alpha-Funktion. + + +Ab Version 1.8 kann der Node-Controller für die Erzeugung von Taints, die Node Bedingungen darstellen, verantwortlich gemacht werden. Dies ist eine Alpha-Funktion der Version 1.8. + +### Selbstregistrierung von Nodes + +Wenn das Kubelet-Flag `--register-node` aktiv ist (Standard), versucht das Kubelet, sich beim API-Server zu registrieren. Dies ist das bevorzugte Muster, das von den meisten Distributionen verwendet wird. + +Zur Selbstregistrierung wird das kubelet mit den folgenden Optionen gestartet: + + - `--kubeconfig` - Pfad zu Anmeldeinformationen, um sich beim Apiserver zu authentifizieren. + - `--cloud-provider` - Wie man sich mit einem Cloud-Anbieter unterhält, um Metadaten über sich selbst zu lesen. + - `--register-node` - Automatisch beim API-Server registrieren. + - `--register-with-taints` - Registrieren Sie den Node mit der angegebenen Taints-Liste (Kommagetrennt `=:`). No-op wenn `register-node` false ist. + - `--node-ip` - IP-Adresse des Nodes. + - `--node-labels` - Labels, die bei der Registrierung des Nodes im Cluster hinzugefügt werden sollen (Beachten Sie die Richlinien des [NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) in 1.13+). + - `--node-status-update-frequency` - Gibt an, wie oft kubelet den Nodestatus an den Master übermittelt. + +Wenn der [Node authorization mode](/docs/reference/access-authn-authz/node/) und +[NodeRestriction admission plugin](/docs/reference/access-authn-authz/admission-controllers/#noderestriction) aktiviert sind, +dürfen kubelets nur ihre eigene Node-Ressource erstellen / ändern. + +#### Manuelle Nodeverwaltung + +Ein Cluster-Administrator kann Nodeobjekte erstellen und ändern. + +Wenn der Administrator Nodeobjekte manuell erstellen möchte, setzen Sie das kubelet Flag `--register-node=false`. + +Der Administrator kann Node-Ressourcen ändern (unabhängig von der Einstellung von `--register-node`). +Zu den Änderungen gehören das Setzen von Labels und das Markieren des Nodes. + +Labels auf Nodes können in Verbindung mit node selectors auf Pods verwendet werden, um die Planung zu steuern, z.B. um einen Pod so zu beschränken, dass er nur auf einer Teilmenge der Nodes ausgeführt werden darf. + +Das Markieren eines Nodes als nicht geplant, verhindert, dass neue Pods für diesen Node geplant werden. Dies hat jedoch keine Auswirkungen auf vorhandene Pods auf dem Node. +Dies ist nützlich als vorbereitender Schritt vor einem Neustart eines Nodes usw. +Um beispielsweise einen Node als nicht geplant zu markieren, führen Sie den folgenden Befehl aus: + +```shell +kubectl cordon $NODENAME +``` + +{{< note >}} +Pods, die von einem DaemonSet-Controller erstellt wurden, umgehen den Kubernetes-Scheduler und respektieren nicht das _unschedulable_ Attribut auf einem Node. +Dies setzt voraus, dass Daemons auf dem Computer verbleiben, auch wenn während der Vorbereitung eines Neustarts keine Anwendungen mehr vorhanden sind. +{{< /note >}} + +### Node Kapazität + +Die Kapazität des Nodes (Anzahl der CPU und Speichermenge) ist Teil des Nodeobjekts. +Normalerweise registrieren sich Nodes selbst und melden ihre Kapazität beim Erstellen des Nodeobjekts. +Sofern Sie [Manuelle Nodeverwaltung](#Manuelle-Nodeverwaltung) betreiben, müssen Sie die Node Kapazität setzen, wenn Sie einen Node hinzufügen. + +Der Kubernetes-Scheduler stellt sicher, dass für alle Pods auf einem Nodes genügend Ressourcen vorhanden sind. +Er prüft, dass die Summe der Requests von Containern auf dem Node nicht größer ist als die Kapazität des Nodes. +Er beinhaltet alle Container die vom kubelet gestarted worden, aber keine Container die direkt von der [container runtime](/docs/concepts/overview/components/#node-components) gestartet wurden, noch jegleiche Prozesse die ausserhalb von Containern laufen. + +Wenn Sie Ressourcen explizit für Nicht-Pod-Prozesse reservieren möchten, folgen Sie diesem Lernprogramm um [Ressourcen für Systemdaemons zu reservieren](/docs/tasks/administer-cluster/reserve-compute-resources/#system-reserved). + + +## API-Objekt + +Node ist eine Top-Level-Ressource in der Kubernetes-REST-API. Weitere Details zum API-Objekt finden Sie unter: +[Node API object](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#node-v1-core). + +{{% /capture %}} diff --git a/content/de/docs/concepts/cluster-administration/_index.md b/content/de/docs/concepts/cluster-administration/_index.md new file mode 100755 index 0000000000000..72af40feecca1 --- /dev/null +++ b/content/de/docs/concepts/cluster-administration/_index.md @@ -0,0 +1,5 @@ +--- +title: "Cluster Administration" +weight: 100 +--- + diff --git a/content/de/docs/concepts/configuration/_index.md b/content/de/docs/concepts/configuration/_index.md new file mode 100755 index 0000000000000..b6d701ca6df52 --- /dev/null +++ b/content/de/docs/concepts/configuration/_index.md @@ -0,0 +1,5 @@ +--- +title: "Konfiguration" +weight: 80 +--- + diff --git a/content/de/docs/concepts/containers/_index.md b/content/de/docs/concepts/containers/_index.md new file mode 100755 index 0000000000000..0d8dd77ad0871 --- /dev/null +++ b/content/de/docs/concepts/containers/_index.md @@ -0,0 +1,5 @@ +--- +title: "Container" +weight: 40 +--- + diff --git a/content/de/docs/concepts/example-concept-template.md b/content/de/docs/concepts/example-concept-template.md new file mode 100644 index 0000000000000..9f3a2bcfac80c --- /dev/null +++ b/content/de/docs/concepts/example-concept-template.md @@ -0,0 +1,38 @@ +--- +title: Konzept Dokumentations-Vorlage +content_template: templates/concept +toc_hide: true +--- + +{{% capture overview %}} + +{{< note >}} +Stellen Sie auch sicher [einen Eintrag im Inhaltsverzeichnis](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) für Ihr neues Dokument zu erstellen. +{{< /note >}} + +Diese Seite erklärt ... + +{{% /capture %}} + +{{% capture body %}} + +## Verstehen ... + +Kubernetes bietet ... + +## Verwenden ... + +Benutzen Sie ... + +{{% /capture %}} + +{{% capture whatsnext %}} + +**[Optionaler Bereich]** + +* Lernen Sie mehr über [ein neues Thema schreiben](/docs/home/contribute/write-new-topic/). +* Besuchen Sie [Seitenvorlagen verwenden - Konzeptvorlage](/docs/home/contribute/page-templates/#concept_template) wie Sie diese Vorlage verwenden. + +{{% /capture %}} + + diff --git a/content/de/docs/concepts/extend-kubernetes/_index.md b/content/de/docs/concepts/extend-kubernetes/_index.md new file mode 100644 index 0000000000000..5e389601ea642 --- /dev/null +++ b/content/de/docs/concepts/extend-kubernetes/_index.md @@ -0,0 +1,4 @@ +--- +title: "Kubernets erweitern" +weight: 110 +--- diff --git a/content/de/docs/concepts/overview/_index.md b/content/de/docs/concepts/overview/_index.md new file mode 100755 index 0000000000000..eaa0a00b2ffa1 --- /dev/null +++ b/content/de/docs/concepts/overview/_index.md @@ -0,0 +1,5 @@ +--- +title: "Überblick" +weight: 20 +--- + diff --git a/content/de/docs/concepts/overview/components.md b/content/de/docs/concepts/overview/components.md new file mode 100644 index 0000000000000..092c213fdaed5 --- /dev/null +++ b/content/de/docs/concepts/overview/components.md @@ -0,0 +1,112 @@ +--- +title: Kubernetes Komponenten +content_template: templates/concept +weight: 20 +card: + name: concepts + weight: 20 +--- + +{{% capture overview %}} +In diesem Dokument werden die verschiedenen binären Komponenten beschrieben, die zur Bereitstellung eines funktionsfähigen Kubernetes-Clusters erforderlich sind. +{{% /capture %}} + +{{% capture body %}} +## Master-Komponenten + +Master-Komponenten stellen die Steuerungsebene des Clusters bereit. Master-Komponenten treffen globale Entscheidungen über den Cluster (z. B. Zeitplanung) und das Erkennen und Reagieren auf Clusterereignisse (Starten eines neuen Pods, wenn das `replicas`-Feld eines Replikationscontrollers nicht zufriedenstellend ist). + +Master-Komponenten können auf jedem Computer im Cluster ausgeführt werden. +Der Einfachheit halber starten Setup-Skripts normalerweise alle Master-Komponenten auf demselben Computer, und es werden keine Benutzercontainer auf diesem Computer ausgeführt. +Lesen Sie [Cluster mit hoher Verfügbarkeit erstellen](/docs/admin/high-availability/) für ein Beispiel für ein Multi-Master-VM-Setup. + +### kube-apiserver + +{{< glossary_definition term_id="kube-apiserver" length="all" >}} + +### etcd + +{{< glossary_definition term_id="etcd" length="all" >}} + +### kube-scheduler + +{{< glossary_definition term_id="kube-scheduler" length="all" >}} + +### kube-controller-manager + +{{< glossary_definition term_id="kube-controller-manager" length="all" >}} + +Diese Controller umfassen: + + * Node Controller: Verantwortlich für das Erkennen und Reagieren, wenn Nodes ausfallen. + * Replication Controller: Verantwortlich für die Aufrechterhaltung der korrekten Anzahl von Pods für jedes Replikationscontrollerobjekt im System. + * Endpoints Controller: Füllt das Endpoints-Objekt aus (d.h. verbindet Services & Pods). + * Service Account & Token Controllers: Erstellt Standardkonten und API-Zugriffstoken für neue Namespaces. + +### cloud-controller-manager + +[cloud-controller-manager](/docs/tasks/administer-cluster/running-cloud-controller/) führt Controller aus, die mit den entsprechenden Cloud-Anbietern interagieren. +Der cloud-controller-manager ist eine Alpha-Funktion, die in Kubernetes Version 1.6 eingeführt wurde. + +cloud-controller-manager führt nur Cloud-Provider-spezifische Controller-Schleifen aus. Sie müssen diese Controller-Schleifen im Cube-Controller-Manager deaktivieren. Sie können die Controller-Schleifen deaktivieren, indem Sie beim Starten des kube-controller-manager das Flag `--cloud-provider` auf `external` setzen. + +cloud-controller-manager erlaubt es dem Cloud-Anbieter Code und dem Kubernetes-Code, sich unabhängig voneinander zu entwickeln. +In früheren Versionen war der Kerncode von Kubernetes für die Funktionalität von Cloud-Provider-spezifischem Code abhängig. +In zukünftigen Versionen sollte der für Cloud-Anbieter spezifische Code vom Cloud-Anbieter selbst verwaltet und mit dem Cloud-Controller-Manager verknüpft werden, während Kubernetes ausgeführt wird. + +Die folgenden Controller haben Abhängigkeiten von Cloud-Anbietern: + + * Node Controller: Zum Überprüfen, ob ein Node in der Cloud beim Cloud-Anbieter gelöscht wurde, nachdem er nicht mehr reagiert + * Route Controller: Zum Einrichten von Routen in der zugrunde liegenden Cloud-Infrastruktur + * Service Controller: Zum Erstellen, Aktualisieren und Löschen von Lastverteilern von Cloud-Anbietern + * Volume Controller: Zum Erstellen, Verbinden und Bereitstellen von Volumes und zur Interaktion mit dem Cloud-Provider zum Orchestrieren von Volumes + +## Node-Komponenten + +Node Komponenten werden auf jedem Knoten ausgeführt, halten laufende Pods aufrecht und stellen die Kubernetes-Laufzeitumgebung bereit. + +### kubelet + +{{< glossary_definition term_id="kubelet" length="all" >}} + +### kube-proxy + +[kube-proxy](/docs/admin/kube-proxy/) ermöglicht die Kubernetes Service-Abstraktion, indem die Netzwerkregeln auf dem Host beibehalten und die Verbindungsweiterleitung durchgeführt wird. + +### Container Runtime + +Die Containerlaufzeit ist die Software, die für das Ausführen von Containern verantwortlich ist. +Kubernetes unterstützt mehrere Laufzeiten: [Docker](http://www.docker.com), [containerd](https://containerd.io), [cri-o](https://cri-o.io/), [rktlet](https://github.com/kubernetes-incubator/rktlet) und jede Implementierung des [Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md). + +## Addons + +Addons sind Pods und Dienste, die Clusterfunktionen implementieren. Die Pods können verwaltet werden +durch Deployments, ReplicationControllers, und so wieter. +Namespace-Addon-Objekte werden im Namespace `kube-system` erstellt. + +Ausgewählte Addons werden unten beschrieben. Eine erweiterte Liste verfügbarer Addons finden Sie unter [Addons](/docs/concepts/cluster-administration/addons/). + +### DNS + +Während die anderen Addons nicht unbedingt erforderlich sind, sollte [cluster DNS](/docs/concepts/services-networking/dns-pod-service/) in allen Kubernetes-Cluster vorhanden sein, da viele Beispiele davon abhängen. + +Cluster-DNS ist neben anderen DNS-Servern in Ihrer Umgebung ein DNS-Server, der DNS-Einträge für Kubernetes-Dienste bereitstellt. + +Von Kubernetes gestartete Container schließen diesen DNS-Server automatisch in ihre DNS-Suchen ein. + +### Web UI (Dashboard) + +[Dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard/) ist eine allgemeine, webbasierte Benutzeroberfläche für Kubernetes-Cluster. Benutzer können damit Anwendungen, die im Cluster ausgeführt werden, sowie den Cluster selbst verwalten und Fehler beheben. + +### Container Resource Monitoring + +[Container Resource Monitoring](/docs/tasks/debug-application-cluster/resource-usage-monitoring/) zeichnet generische Zeitreihenmessdaten zu Containern in einer zentralen Datenbank auf und stellt eine Benutzeroberfläche zum Durchsuchen dieser Daten bereit. + + +### Cluster-level Logging + +Ein [Cluster-level logging](/docs/concepts/cluster-administration/logging/) Mechanismus ist für das Speichern von Containerprotokollen in einem zentralen Protokollspeicher mit Such- / Browsing-Schnittstelle verantwortlich. + +{{% /capture %}} + + diff --git a/content/de/docs/concepts/overview/what-is-kubernetes.md b/content/de/docs/concepts/overview/what-is-kubernetes.md new file mode 100644 index 0000000000000..e6a8422f9d2bf --- /dev/null +++ b/content/de/docs/concepts/overview/what-is-kubernetes.md @@ -0,0 +1,170 @@ +--- +title: Was ist Kubernetes? +content_template: templates/concept +weight: 10 +card: + name: concepts + weight: 10 +--- + +{{% capture overview %}} +Diese Seite ist eine Übersicht über Kubernetes. +{{% /capture %}} + +{{% capture body %}} + +Kubernetes ist eine portable, erweiterbare Open-Source-Plattform zur Verwaltung von +containerisierten Arbeitslasten und Services, die sowohl die deklarative Konfiguration als auch die Automatisierung erleichtert. +Es hat einen großes, schnell wachsendes Ökosystem. Kubernetes Dienstleistungen, Support und Tools sind weit verbreitet. + +Google hat das Kubernetes-Projekt 2014 als Open-Source-Projekt zur Verfügung gestellt. Kubernetes baut auf anderthalb Jahrzehnten +Erfahrung auf, die Google mit der Ausführung von Produktions-Workloads in großem Maßstab hat, kombiniert mit den besten Ideen und Praktiken der Community. + +## Warum brauche ich Kubernetes und was kann ich damit tun? + +Kubernetes hat eine Reihe von Funktionen. Es kann gesehen werden als: + +- eine Containerplattform +- eine Microservices-Plattform +- eine portable Cloud-Plattform +und vieles mehr. + +Kubernetes bietet eine **containerzentrierte** Managementumgebung. Es koordiniert die Computer-, Netzwerk- und Speicherinfrastruktur +im Namen der Benutzer-Workloads. Dies bietet einen Großteil der Einfachheit von Platform as a Service (PaaS) mit der Flexibilität +von Infrastructure as a Service (IaaS) und ermöglicht die Portabilität zwischen Infrastrukturanbietern. + +## Wie ist Kubernetes eine Plattform? + +Auch wenn Kubernetes eine Menge Funktionalität bietet, gibt es immer wieder neue Szenarien, +die von neuen Funktionen profitieren würden. Anwendungsspezifische Workflows können optimiert werden, +um die Entwicklungsgeschwindigkeit zu beschleunigen. +Eine zunächst akzeptable Ad-hoc-Orchestrierung erfordert oft eine robuste Automatisierung in großem Maßstab. +Aus diesem Grund wurde Kubernetes auch als Plattform für den Aufbau eines Ökosystems von Komponenten und Tools +konzipiert, um die Bereitstellung, Skalierung und Verwaltung von Anwendungen zu erleichtern. + +[Labels](/docs/concepts/overview/working-with-objects/labels/) ermöglichen es den Benutzern, ihre Ressourcen +nach Belieben zu organisieren. [Anmerkungen](/docs/concepts/overview/working-with-objects/annotations/) ermöglichen es Benutzern, +Ressourcen mit benutzerdefinierten Informationen zu versehen, um ihre Arbeitsabläufe zu vereinfachen und eine einfache Möglichkeit +für Managementtools zu bieten, den Status von Kontrollpunkten zu ermitteln. + + +Darüber hinaus basiert die [Kubernetes-Steuerungsebene](/docs/concepts/overview/components/) auf den gleichen APIs, +die Entwicklern und Anwendern zur Verfügung stehen. Benutzer können ihre eigenen Controller, wie z.B. +[Scheduler](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/scheduler.md), mit +ihren [eigenen APIs](](/docs/concepts/api-extension/custom-resources/) schreiben, die von einem +universellen [Kommandozeilen-Tool](/docs/user-guide/kubectl-overview/) angesprochen werden können. + +Dieses [Design](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) hat es einer Reihe anderer Systeme ermöglicht, auf Kubernetes aufzubauen. + +## Was Kubernetes nicht ist + +Kubernetes ist kein traditionelles, allumfassendes PaaS (Plattform als ein Service) System. Da Kubernetes nicht auf Hardware-, +sondern auf Containerebene arbeitet, bietet es einige allgemein anwendbare Funktionen, die PaaS-Angeboten gemeinsam sind, +wie Bereitstellung, Skalierung, Lastausgleich, Protokollierung und Überwachung. +Kubernetes ist jedoch nicht monolithisch, und diese Standardlösungen sind optional und modular etweiterbar. +Kubernetes liefert die Bausteine für den Aufbau von Entwicklerplattformen, bewahrt aber die +Wahlmöglichkeiten und Flexibilität der Benutzer, wo es wichtig ist. + +Kubernetes: + +* Schränkt nicht die Art der unterstützten Anwendungen ein. Kubernetes zielt darauf ab, + eine extrem große Vielfalt von Workloads zu unterstützen, einschließlich stateless, + stateful und datenverarbeitender Workloads. Wenn eine Anwendung in einem Container ausgeführt + werden kann, sollte sie auf Kubernetes hervorragend laufen. +* Verteilt keinen Quellcode und entwickelt Ihre Anwendung nicht. + Kontinuierliche Integrations-, Liefer- und Bereitstellungs-Workflows (CI/CD) werden durch + Unternehmenskulturen und -präferenzen sowie technische Anforderungen bestimmt. +* Bietet keine Dienste auf Anwendungsebene, wie Middleware (z.B. Nachrichtenbusse), + Datenverarbeitungs-Frameworks (z.B. Spark), Datenbanken (z.B. mysql), Caches oder + Cluster-Speichersysteme (z.B. Ceph) als eingebaute Dienste. Solche Komponenten können + auf Kubernetes laufen und/oder von Anwendungen, die auf Kubernetes laufen, über + portable Mechanismen wie den Open Service Broker angesprochen werden. +* Bietet keine Konfigurationssprache bzw. kein Konfigurationssystem (z.B.[jsonnet](https://github.com/google/jsonnet)). + Es bietet eine deklarative API, die von beliebigen Formen deklarativer Spezifikationen angesprochen werden kann. +* Bietet keine umfassenden Systeme zur Maschinenkonfiguration, Wartung, Verwaltung oder Selbstheilung. + +Außerdem ist Kubernetes nicht nur ein *Orchestrierungssystem*. Fakt ist, dass es die Notwendigkeit einer Orchestrierung +überflüssig macht. Die technische Definition von *Orchestrierung* ist die Ausführung eines +definierten Workflows: zuerst A, dann B, dann C. Im Gegensatz dazu besteht Kubernetes aus einer Reihe von unabhängigen, +komponierbaren Steuerungsprozessen, die den aktuellen Zustand kontinuierlich in Richtung des bereitgestellten Soll-Zustandes vorantreiben. +Es sollte keine Rolle spielen, wie Sie von A nach C kommen. Eine zentrale Steuerung ist ebenfalls nicht erforderlich. +Das Ergebnis ist ein System, das einfacher zu bedienen und leistungsfähiger, robuster, widerstandsfähiger und erweiterbar ist. + +## Warum Container? + +Sie suchen nach Gründen, warum Sie Container verwenden sollten? + +![Why Containers?](/images/docs/why_containers.svg) + +Der *Altbekannte* Weg zur Bereitstellung von Anwendungen war die Installation +der Anwendungen auf einem Host mit dem Betriebssystempaketmanager. +Dies hatte den Nachteil, dass die ausführbaren Dateien, Konfigurationen, +Bibliotheken und Lebenszyklen der Anwendungen untereinander und mit dem +Host-Betriebssystem verwoben waren. Man könnte unveränderliche +Virtual-Machine-Images erzeugen, um vorhersehbare Rollouts +und Rollbacks zu erreichen, aber VMs sind schwergewichtig und nicht portierbar. + +Der *Neue Weg* besteht darin, Container auf Betriebssystemebene und nicht auf +Hardware-Virtualisierung bereitzustellen. Diese Container sind voneinander +und vom Host isoliert: Sie haben ihre eigenen Dateisysteme, sie können die +Prozesse des anderen nicht sehen, und ihr Ressourcenverbrauch kann begrenzt +werden. Sie sind einfacher zu erstellen als VMs, und da sie von der zugrunde +liegenden Infrastruktur und dem Host-Dateisystem entkoppelt sind, +sind sie über Clouds und Betriebssystem-Distributionen hinweg portabel. + +Da Container klein und schnell sind, kann in jedes Containerimage eine Anwendung gepackt werden. +Diese 1:1-Beziehung zwischen Anwendung und Image ermöglicht es, die Vorteile von Containern +voll auszuschöpfen. Mit Containern können unveränderliche Container-Images eher zur Build-/Release-Zeit +als zur Deployment-Zeit erstellt werden, da jede Anwendung nicht mit dem Rest des Anwendungsstacks komponiert +werden muss und auch nicht mit der Produktionsinfrastrukturumgebung verbunden ist. Die Generierung von +Container-Images zum Zeitpunkt der Erstellung bzw. Freigabe ermöglicht es, eine konsistente Umgebung +von der Entwicklung bis zur Produktion zu gewährleisten. +Ebenso sind Container wesentlich transparenter als VMs, was die Überwachung und Verwaltung erleichtert. +Dies gilt insbesondere dann, wenn die Prozesslebenszyklen der Container von der Infrastruktur verwaltet +werden und nicht von einem Prozess-Supervisor im Container versteckt werden. +Schließlich, mit einer einzigen Anwendung pro Container, wird die Verwaltung +der Container gleichbedeutend mit dem Management des Deployments der Anwendung. + +Zusammenfassung der Container-Vorteile: + +* **Agile Anwendungserstellung und -bereitstellung**: + Einfachere und effizientere Erstellung von Container-Images im Vergleich zur Verwendung von VM-Images. +* **Kontinuierliche Entwicklung, Integration und Bereitstellung**: + Bietet eine zuverlässige und häufige Erstellung und Bereitstellung von Container-Images + mit schnellen und einfachen Rollbacks (aufgrund der Unveränderlichkeit des Images). +* **Dev und Ops Trennung der Bedenken**: + Erstellen Sie Anwendungscontainer-Images nicht zum Deployment-, sondern zum Build-Releasezeitpunkt + und entkoppeln Sie so Anwendungen von der Infrastruktur. +* **Überwachbarkeit** + Nicht nur Informationen und Metriken auf Betriebssystemebene werden angezeigt, + sondern auch der Zustand der Anwendung und andere Signale. +* **Umgebungskontinuität in Entwicklung, Test und Produktion**: + Läuft auf einem Laptop genauso wie in der Cloud. +* **Cloud- und OS-Distribution portabilität**: + Läuft auf Ubuntu, RHEL, CoreOS, On-Prem, Google Kubernetes Engine und überall sonst. +* **Anwendungsorientiertes Management**: + Erhöht den Abstraktionsgrad vom Ausführen eines Betriebssystems auf virtueller Hardware + bis zum Ausführen einer Anwendung auf einem Betriebssystem unter Verwendung logischer Ressourcen. +* **Locker gekoppelte, verteilte, elastische, freie [micro-services](https://martinfowler.com/articles/microservices.html)**: + Anwendungen werden in kleinere, unabhängige Teile zerlegt und können dynamisch bereitgestellt + und verwaltet werden -- nicht ein monolithischer Stack, der auf einer großen Single-Purpose-Maschine läuft. +* **Ressourcenisolierung**: + Vorhersehbare Anwendungsleistung. +* **Ressourcennutzung**: + Hohe Effizienz und Dichte. + +## Was bedeutet Kubernetes? K8s? + +Der Name **Kubernetes** stammt aus dem Griechischen, beteutet *Steuermann* oder +*Pilot*, und ist der Ursprung von *Gouverneur* und +[cybernetic](http://www.etymonline.com/index.php?term=cybernetics). *K8s* +ist eine Abkürzung, die durch Ersetzen der 8 Buchstaben "ubernete" mit "8" abgeleitet wird. + +{{% /capture %}} + +{{% capture whatsnext %}} +* [Bereit loszulegen](/docs/setup/)? +* Weitere Einzelheiten finden Sie in der [Kubernetes Dokumentation](/docs/home/). +{{% /capture %}} + + diff --git a/content/de/docs/concepts/policy/_index.md b/content/de/docs/concepts/policy/_index.md new file mode 100755 index 0000000000000..67588bb6fa0c9 --- /dev/null +++ b/content/de/docs/concepts/policy/_index.md @@ -0,0 +1,5 @@ +--- +title: "Richtlinien" +weight: 90 +--- + diff --git a/content/de/docs/concepts/services-networking/_index.md b/content/de/docs/concepts/services-networking/_index.md new file mode 100755 index 0000000000000..46d6492e1ad41 --- /dev/null +++ b/content/de/docs/concepts/services-networking/_index.md @@ -0,0 +1,5 @@ +--- +title: "Dienste, Lastverteilung und Netzwerkfunktionen" +weight: 60 +--- + diff --git a/content/de/docs/concepts/storage/_index.md b/content/de/docs/concepts/storage/_index.md new file mode 100755 index 0000000000000..4133c701af272 --- /dev/null +++ b/content/de/docs/concepts/storage/_index.md @@ -0,0 +1,5 @@ +--- +title: "Speicher" +weight: 70 +--- + diff --git a/content/de/docs/concepts/workloads/_index.md b/content/de/docs/concepts/workloads/_index.md new file mode 100644 index 0000000000000..ca394ebd0029d --- /dev/null +++ b/content/de/docs/concepts/workloads/_index.md @@ -0,0 +1,5 @@ +--- +title: "Workloads" +weight: 50 +--- + diff --git a/content/de/docs/contribute/_index.md b/content/de/docs/contribute/_index.md new file mode 100644 index 0000000000000..efe4b2af03d79 --- /dev/null +++ b/content/de/docs/contribute/_index.md @@ -0,0 +1,62 @@ +--- +content_template: templates/concept +title: Zur Kubernets-Dokumentation beitragen +linktitle: Mitmachen +main_menu: true +weight: 80 +--- + +{{% capture overview %}} + +Wenn Sie an der Dokumentation oder der Website von Kubernetes mitwirken möchten, freuen wir uns über Ihre Hilfe! +Jeder kann seinen Beitrag leisten, unabhängig davon ob Sie neu im Projekt sind oder schon lange dabei sind, und ob Sie sich als +Entwickler, Endbenutzer oder einfach jemanden, der es einfach nicht aushält, Tippfehler zu sehen sehen. + +Weitere Möglichkeiten, sich in der Kubernetes-Community zu engagieren oder mehr über uns zu erfahren, finden Sie auf der [Kubernetes-Community-Seite](/community/). +Informationen zum Handbuch zur Dokumentation von Kubernetes finden Sie im [Gestaltungshandbuch](/docs/contribute/style/style-guide/). + +{{% capture body %}} + +## Arten von Mitwirkenden + +- Ein _Member_ der Kubernetes Organisation, hat die [CLA unterzeichnet](/docs/contribute/start#sign-the-cla) + und etwas Zeit und Energie zum Projekt beigetragen. + Siehe [Community-Mitgliedschaft](https://github.com/kubernetes/community/blob/master/community-membership.md) für spezifische Kriterien bezüglich der Mitgliedschaft. +- Ein SIG Docs _Reviewer_ ist ein Mitglied der Kubernetes-Organisation, das Interesse an der Überprüfung von + Dokumentationsanfragen geäußert hat und von einem SIG Docs Approver zu der entsprechenden Github-Gruppe + und den `OWNERS`-Dateien im Github-Repository hinzugefügt wurde. +- Ein SIG Docs _approver_ ist ein Mitglied mit gutem Ansehen, das sich kontinuierlich für das Projekt engagiert hat. + Ein Approver kann Pull-Anfragen zusammenführen und Inhalte im Namen der Kubernetes-Organisation veröffentlichen. + Approver können SIG Docs auch in der größeren Kubernetes-Community vertreten. Einige der Aufgaben eines SIG Docs Approvers, wie z.B. die Koordination einer Freigabe, erfordern einen erheblichen Zeitaufwand. + +## Möglichkeiten, einen Beitrag zu leisten + +Diese Liste ist in Funktionen unterteilt, die jeder tun kann, die von Mitgliedern der Kubernetes-Organisation durchgeführt werden können, und Dinge, die ein höheres Maß an Zugriff und eine bessere Kenntnis der SIG Docs-Prozesse erfordern. Wenn Sie im Laufe der Zeit einen konstanten Beitrag leisten, können Sie einige der bereits getroffenen Tools und organisatorischen Entscheidungen nachvollziehen. + +Dies ist keine vollständige Liste von Möglichkeiten, wie Sie zur Kubernetes-Dokumentation beitragen können, aber sie sollte Ihnen den Einstieg erleichtern. + +- [Jeder](/docs/contribute/start/) + - Umsetzbare issues eröffnen +- [Member](/docs/contribute/start/) + - Vorhandene Dokumente verbessern + - Ideen zur Verbesserung in [Slack](http://slack.k8s.io/) oder der [SIG docs Mailingliste](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) einbringen + - Den Zugriff auf Dokumente verbessern + - Unverbindliches Feedback zu PRs verfassen + - Enen Blogbeitrag oder eine Fallstudie schreiben +- [Reviewer](/docs/contribute/intermediate/) + - Neue Funktionen dokumentieren + - Auswerten und Kategorisieren von Problemen + - PRs überprüfen + - Diagramme, Grafiken und einbettbare Screencasts / Videos erstellen + - Lokalisierung + - Als Vertreter von docs zu anderen Repos beitragen + - An Benutzer gerichtete Zeichenfolgen im Code bearbeiten + - Code-Kommentare verbessern, Godoc +- [Approver](/docs/contribute/advanced/) + - Veröffentlichen Sie den Inhalt von Members, indem Sie PRs genehmigen und zusammenführen + - Nehmen Sie als Docs-Vertreter an einem Kubernetes-Release-Team teil + - Verbesserungsvorschläge für den Style Guide + - Verbesserungsvorschläge für Dokumentprüfungen vorschlagen + - Vorschläge für Verbesserungen der Kubernetes-Website oder anderer Tools + +{{% /capture %}} diff --git a/content/de/docs/home/_index.md b/content/de/docs/home/_index.md new file mode 100644 index 0000000000000..e8d87597a622e --- /dev/null +++ b/content/de/docs/home/_index.md @@ -0,0 +1,56 @@ +--- +title: Kubernetes Dokumentation +noedit: true +cid: docsHome +layout: docsportal_home +class: gridPage +linkTitle: "Home" +main_menu: true +weight: 10 +hide_feedback: true +menu: + main: + title: "Dokumentation" + weight: 20 + post: > +

Erfahren Sie, wie Sie Kubernetes mit Konzept-, Tutorial- und Referenzdokumentation verwenden. Sie können sogar zur mithelfen und zur Dokumentation beitragen!

+overview: > + Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Das Open-Source Project wird von der Cloud Native Computing Foundation (CNCF) gehosted. +cards: +- name: concepts + title: "Verstehen Sie die Grundlagen" + description: "Lernen Sie Kubernetes und seine grundlegenden Konzepte kennen." + button: "Konzepte lernen" + button_path: "/docs/concepts" +- name: tutorials + title: "Kubernetes ausprobieren" + description: "Folgen Sie den Tutorials, um zu erfahren, wie Sie Anwendungen in Kubernetes bereitstellen." + button: "Tutorials entdecken" + button_path: "/docs/tutorials" +- name: setup + title: "Richten Sie einen Cluster ein" + description: "Holen Sie sich Kubernetes basierend auf Ihren Ressourcen und Bedürfnissen." + button: "Kubernetes Einrichten" + button_path: "/docs/setup" +- name: tasks + title: "Erfahren Sie, wie Sie Kubernetes verwenden" + description: "Informieren Sie sich über häufig verwendete Aufgaben und deren Durchführung anhand einer kurzen Abfolge von Schritten." + button: "Tasks anzeigen" + button_path: "/docs/tasks" +- name: reference + title: Referenzinformationen nachschlagen + description: Durchsuchen Sie Terminologie, Befehlszeilensyntax, API-Ressourcentypen und Dokumentation zum Setup-Tool. + button: Referenz anzeigen + button_path: /docs/reference +- name: contribute + title: Tragen Sie zur Dokumentation bei + description: Jeder kann einen Beitrag leisten, unabhängig davon, ob Sie neu in dem Projekt oder schon lange dabei sind. + button: Zur Dokumentation beitragen + button_path: /docs/contribute +- name: download + title: Kubernetes Herunterladen + description: Wenn Sie Kubernetes installieren oder auf die neueste Version aktualisieren, lesen Sie die aktuellen Versionshinweise. +- name: about + title: Über die Dokumentation + description: Diese Website enthält Dokumentation zu den aktuellen und vorherigen 4 Versionen von Kubernetes. +--- diff --git a/content/de/docs/home/supported-doc-versions.md b/content/de/docs/home/supported-doc-versions.md new file mode 100644 index 0000000000000..8463d1bcd9207 --- /dev/null +++ b/content/de/docs/home/supported-doc-versions.md @@ -0,0 +1,30 @@ +--- +title: Unterstützte Versionen der Kubernetes-Dokumentation +content_template: templates/concept +card: + name: about + weight: 10 + title: Unterstützte Versionen der Dokumentation +--- + +{{% capture overview %}} + +Diese Website enthält Dokumentation für die aktuelle Version von Kubernetes +und die vier vorherigen Versionen von Kubernetes. + +{{% /capture %}} + +{{% capture body %}} + +## Aktuelle Version + +Die aktuelle Version ist +[{{< param "version" >}}](/). + +## Vorherige Versionen + +{{< versions-other >}} + +{{% /capture %}} + + diff --git a/content/de/docs/reference/_index.md b/content/de/docs/reference/_index.md new file mode 100644 index 0000000000000..dd98038ebbcb4 --- /dev/null +++ b/content/de/docs/reference/_index.md @@ -0,0 +1,61 @@ +--- +title: Referenzen +approvers: +- chenopis +linkTitle: "Referenzen" +main_menu: true +weight: 70 +content_template: templates/concept +--- + +{{% capture overview %}} + +Dieser Abschnitt der Kubernetes-Dokumentation enthält Referenzinformationen. + +{{% /capture %}} + +{{% capture body %}} + +## API-Referenz + +* [Kubernetes API Überblick](/docs/reference/using-api/api-overview/) - Übersicht über die API für Kubernetes. +* Kubernetes API Versionen + * [1.14](/docs/reference/generated/kubernetes-api/v1.14/) + * [1.13](/docs/reference/generated/kubernetes-api/v1.13/) + * [1.12](/docs/reference/generated/kubernetes-api/v1.12/) + * [1.11](/docs/reference/generated/kubernetes-api/v1.11/) + * [1.10](/docs/reference/generated/kubernetes-api/v1.10/) + +## API-Clientbibliotheken + +Um die Kubernetes-API aus einer Programmiersprache aufzurufen, können Sie +[Clientbibliotheken](/docs/reference/using-api/client-libraries/) verwenden. +Offiziell unterstützte Clientbibliotheken: + +- [Kubernetes Go Clientbibliothek](https://github.com/kubernetes/client-go/) +- [Kubernetes Python Clientbibliothek](https://github.com/kubernetes-client/python) +- [Kubernetes Java Clientbibliothek](https://github.com/kubernetes-client/java) +- [Kubernetes JavaScript Clientbibliothek](https://github.com/kubernetes-client/javascript) + +## CLI-Referenz + +* [kubectl](/docs/user-guide/kubectl-overview) - Haupt-CLI-Tool zum Ausführen von Befehlen und zum Verwalten von Kubernetes-Clustern. + * [JSONPath](/docs/user-guide/jsonpath/) - Syntax-Anleitung zur Verwendung von [JSONPath expressionen](http://goessner.net/articles/JsonPath/) mit kubectl. +* [kubeadm](/docs/admin/kubeadm/) - CLI-Tool zur einfachen Bereitstellung eines sicheren Kubernetes-Clusters. +* [kubefed](/docs/admin/kubefed/) - CLI-Tool zur Verwaltung Ihres Clusterverbunds. + +## Konfigurationsreferenz + +* [kubelet](/docs/admin/kubelet/) - Der primäre *Node-Agent*, der auf jedem Node ausgeführt wird. Das Kubelet betrachtet eine Reihe von PodSpecs und stellt sicher, dass die beschriebenen Container ordnungsgemäß ausgeführt werden. +* [kube-apiserver](/docs/admin/kube-apiserver/) - REST-API zur Überprüfung und Konfiguration von Daten für API-Objekte wie Pods, Services und Replikationscontroller. +* [kube-controller-manager](/docs/admin/kube-controller-manager/) - Daemon, der die mit Kubernetes gelieferten zentralen Regelkreise einbettet. +* [kube-proxy](/docs/admin/kube-proxy/) - Kann einfache TCP/UDP-Stream-Weiterleitung oder Round-Robin-TCP/UDP-Weiterleitung über eine Reihe von Back-Ends durchführen. +* [kube-scheduler](/docs/admin/kube-scheduler/) - Scheduler, der Verfügbarkeit, Leistung und Kapazität verwaltet. +* [federation-apiserver](/docs/admin/federation-apiserver/) - API-Server für Cluster Föderationen. +* [federation-controller-manager](/docs/admin/federation-controller-manager/) - Daemon, der die zentralen Regelkreise einbindet, die mit der Kubernetes-Föderation ausgeliefert werden. + +## Design Dokumentation + +Ein Archiv der Designdokumente für Kubernetes-Funktionalität. Gute Ansatzpunkte sind [Kubernetes Architektur](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) und [Kubernetes Design Übersicht](https://git.k8s.io/community/contributors/design-proposals). + +{{% /capture %}} diff --git a/content/de/docs/reference/access-authn-authz/_index.md b/content/de/docs/reference/access-authn-authz/_index.md new file mode 100644 index 0000000000000..bf85bb6337583 --- /dev/null +++ b/content/de/docs/reference/access-authn-authz/_index.md @@ -0,0 +1,5 @@ +--- +title: API Zugriff +weight: 20 +toc-hide: true +--- \ No newline at end of file diff --git a/content/de/docs/reference/command-line-tools-reference/_index.md b/content/de/docs/reference/command-line-tools-reference/_index.md new file mode 100644 index 0000000000000..b5bb56510735b --- /dev/null +++ b/content/de/docs/reference/command-line-tools-reference/_index.md @@ -0,0 +1,5 @@ +--- +title: Befehlszeilen-Werkzeug Referenzinformationen +weight: 60 +toc-hide: true +--- diff --git a/content/de/docs/reference/federation/_index.html b/content/de/docs/reference/federation/_index.html new file mode 100644 index 0000000000000..e3cc29c005a7c --- /dev/null +++ b/content/de/docs/reference/federation/_index.html @@ -0,0 +1,4 @@ +--- +title: "Föderation API" +weight: 40 +--- diff --git a/content/de/docs/reference/glossary/etcd.md b/content/de/docs/reference/glossary/etcd.md new file mode 100755 index 0000000000000..cdc5820bd866d --- /dev/null +++ b/content/de/docs/reference/glossary/etcd.md @@ -0,0 +1,19 @@ +--- +title: etcd +id: etcd +date: 2018-04-12 +full_link: /docs/tasks/administer-cluster/configure-upgrade-etcd/ +short_description: > + Konsistenter und hochverfügbarer Key-Value Speicher, der als Backupspeicher von Kubernetes für alle Clusterdaten verwendet wird. + +aka: +tags: +- architecture +- storage +--- + Konsistenter und hochverfügbarer Key-Value Speicher, der als Backupspeicher von Kubernetes für alle Clusterdaten verwendet wird. + + + +Halten Sie immer einen Sicherungsplan für etcds Daten für Ihren Kubernetes-Cluster bereit. Ausführliche Informationen zu etcd finden Sie in der [etcd Dokumentation](https://github.com/coreos/etcd/blob/master/Documentation/docs.md). + diff --git a/content/de/docs/reference/glossary/index.md b/content/de/docs/reference/glossary/index.md new file mode 100755 index 0000000000000..a830aa0ad48c0 --- /dev/null +++ b/content/de/docs/reference/glossary/index.md @@ -0,0 +1,12 @@ +--- +title: Standardisiertes Glossar +layout: glossary +noedit: true +default_active_tag: fundamental +weight: 5 +card: + name: reference + weight: 10 + title: Glossary +--- + diff --git a/content/de/docs/reference/glossary/kube-apiserver.md b/content/de/docs/reference/glossary/kube-apiserver.md new file mode 100755 index 0000000000000..4dbe38937b551 --- /dev/null +++ b/content/de/docs/reference/glossary/kube-apiserver.md @@ -0,0 +1,19 @@ +--- +title: kube-apiserver +id: kube-apiserver +date: 2018-04-12 +full_link: /docs/reference/generated/kube-apiserver/ +short_description: > + Komponente auf dem Master, der die Kubernetes-API verfügbar macht. Es ist das Frontend für die Kubernetes-Steuerebene. + +aka: +tags: +- architecture +- fundamental +--- + Komponente auf dem Master, der die Kubernetes-API verfügbar macht. Es ist das Frontend für die Kubernetes-Steuerebene. + + + +Es ist für die horizontale Skalierung konzipiert, d. H. Es skaliert durch die Bereitstellung von mehr Instanzen. Mehr informationen finden Sie unter [Cluster mit hoher Verfügbarkeit erstellen](/docs/admin/high-availability/). + diff --git a/content/de/docs/reference/glossary/kube-controller-manager.md b/content/de/docs/reference/glossary/kube-controller-manager.md new file mode 100755 index 0000000000000..38a743212bffa --- /dev/null +++ b/content/de/docs/reference/glossary/kube-controller-manager.md @@ -0,0 +1,19 @@ +--- +title: kube-controller-manager +id: kube-controller-manager +date: 2018-04-12 +full_link: /docs/reference/generated/kube-controller-manager/ +short_description: > + Komponente auf dem Master, auf dem Controller ausgeführt werden. + +aka: +tags: +- architecture +- fundamental +--- + Komponente auf dem Master, auf dem {{< glossary_tooltip text="controllers" term_id="controller" >}} ausgeführt werden. + + + +Logisch gesehen ist jeder {{< glossary_tooltip text="controller" term_id="controller" >}} ein separater Prozess, aber zur Vereinfachung der Komplexität werden sie alle zu einer einzigen Binärdatei zusammengefasst und in einem einzigen Prozess ausgeführt. + diff --git a/content/de/docs/reference/glossary/kube-scheduler.md b/content/de/docs/reference/glossary/kube-scheduler.md new file mode 100755 index 0000000000000..19715863452b2 --- /dev/null +++ b/content/de/docs/reference/glossary/kube-scheduler.md @@ -0,0 +1,19 @@ +--- +title: kube-scheduler +id: kube-scheduler +date: 2018-04-12 +full_link: /docs/reference/generated/kube-scheduler/ +short_description: > + Komponente auf dem Master, die neu erstellte Pods überwacht, denen kein Node zugewiesen ist. Sie wählt den Node aus, auf dem sie ausgeführt werden sollen. + +aka: +tags: +- architecture +--- + Komponente auf dem Master, die neu erstellte Pods überwacht, denen kein Node zugewiesen ist. Sie wählt den Node aus, auf dem sie ausgeführt werden sollen. + + + +Zu den Faktoren, die bei Planungsentscheidungen berücksichtigt werden, zählen individuelle und kollektive Ressourcenanforderungen, Hardware- / Software- / Richtlinieneinschränkungen, Affinitäts- und Anti-Affinitätsspezifikationen, Datenlokalität, Interworkload-Interferenz und Deadlines. + + diff --git a/content/de/docs/reference/glossary/kubelet.md b/content/de/docs/reference/glossary/kubelet.md new file mode 100755 index 0000000000000..edd72dbe57ce6 --- /dev/null +++ b/content/de/docs/reference/glossary/kubelet.md @@ -0,0 +1,18 @@ +--- +title: Kubelet +id: kubelet +date: 2018-04-12 +full_link: /docs/reference/generated/kubelet +short_description: > + Ein Agent, der auf jedem Node im Cluster ausgeführt wird. Er stellt sicher, dass Container in einem Pod ausgeführt werden. + +aka: +tags: +- fundamental +- core-object +--- + Ein Agent, der auf jedem Node im Cluster ausgeführt wird. Er stellt sicher, dass Container in einem Pod ausgeführt werden. + + + +Das Kubelet verwendet eine Reihe von PodSpecs, die über verschiedene Mechanismen bereitgestellt werden, und stellt sicher, dass die in diesen PodSpecs beschriebenen Container ordnungsgemäß ausgeführt werden. Das kubelet verwaltet keine Container, die nicht von Kubernetes erstellt wurden. diff --git a/content/de/docs/reference/issues-security/_index.md b/content/de/docs/reference/issues-security/_index.md new file mode 100644 index 0000000000000..6ce79934c1385 --- /dev/null +++ b/content/de/docs/reference/issues-security/_index.md @@ -0,0 +1,5 @@ +--- +title: Kubernetes Probleme und Sicherheit +weight: 10 +toc-hide: true +--- \ No newline at end of file diff --git a/content/de/docs/reference/kubectl/_index.md b/content/de/docs/reference/kubectl/_index.md new file mode 100755 index 0000000000000..7b6c2d720b12a --- /dev/null +++ b/content/de/docs/reference/kubectl/_index.md @@ -0,0 +1,5 @@ +--- +title: "kubectl CLI" +weight: 60 +--- + diff --git a/content/de/docs/reference/kubectl/cheatsheet.md b/content/de/docs/reference/kubectl/cheatsheet.md new file mode 100644 index 0000000000000..a3968a213b897 --- /dev/null +++ b/content/de/docs/reference/kubectl/cheatsheet.md @@ -0,0 +1,351 @@ +--- +title: kubectl Spickzettel +content_template: templates/concept +card: + name: reference + weight: 30 +--- + +{{% capture overview %}} + +Siehe auch: [Kubectl Überblick](/docs/reference/kubectl/overview/) und [JsonPath Dokumentation](/docs/reference/kubectl/jsonpath). + +Diese Seite ist eine Übersicht über den Befehl `kubectl`. + +{{% /capture %}} + +{{% capture body %}} + +# kubectl - Spickzettel + +## Kubectl Autovervollständigung + +### BASH + +```bash +source <(kubectl completion bash) # Wenn Sie autocomplete in bash in der aktuellen Shell einrichten, sollte zuerst das bash-completion-Paket installiert werden. +echo "source <(kubectl completion bash)" >> ~/.bashrc # Fügen Sie der Bash-Shell dauerhaft Autocomplete hinzu. +``` + +Sie können auch ein Abkürzungsalias für `kubectl` verwenden, weleches auch mit Vervollständigung funktioniert: + +```bash +alias k=kubectl +complete -F __start_kubectl k +``` + +### ZSH + +```bash +source <(kubectl completion zsh) # Richten Sie Autocomplete in zsh in der aktuellen Shell ein +echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc # Fügen Sie der Zsh-Shell dauerhaft Autocomplete hinzu +``` + +## Kubectl Kontext und Konfiguration + +Legen Sie fest, welcher Kubernetes-Cluster mit `kubectl` kommuniziert und dessen Konfiguration ändert. Lesen Sie die Dokumentation [Authentifizierung mit kubeconfig über mehrere Cluster hinweg](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) für ausführliche Informationen zur Konfigurationsdatei. + +```bash +kubectl config view # Zusammengeführte kubeconfig-Einstellungen anzeigen. + +# Verwenden Sie mehrere kubeconfig-Dateien gleichzeitig und zeigen Sie die zusammengeführte Konfiguration an +KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view + +# Zeigen Sie das Passwort für den e2e-Benutzer an +kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' + +kubectl config view -o jsonpath='{.users[].name}' # eine Liste der Benutzer erhalten +kubectl config current-context # den aktuellen Kontext anzeigen +kubectl config use-context my-cluster-name # Setzen Sie den Standardkontext auf my-cluster-name + +# Fügen Sie Ihrer kubeconf einen neuen Cluster hinzu, der basic auth unterstützt +kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword + +# Legen Sie einen Kontext fest, indem Sie einen bestimmten Benutzernamen und einen bestimmten Namespace verwenden. +kubectl config set-context gce --user=cluster-admin --namespace=foo \ + && kubectl config use-context gce + +kubectl config unset users.foo # delete user foo +``` + +## Apply +`apply` verwaltet Anwendungen durch Dateien, die Kubernetes-Ressourcen definieren. Es erstellt und aktualisiert Ressourcen in einem Cluster durch Ausführen von `kubectl apply`. Dies ist die empfohlene Methode zur Verwaltung von Kubernetes-Anwendungen in der Produktion. Lesen Sie die ausführliche [Kubectl Dokumentation](https://kubectl.docs.kubernetes.io) für weitere Informationen. + +## Objekte erstellen + +Kubernetes Manifeste können in Json oder Yaml definiert werden. Die Dateierweiterungen `.yaml`, +`.yml`, und `.json` können verwendet werden. + +```bash +kubectl apply -f ./my-manifest.yaml # Ressource(n) erstellen +kubectl apply -f ./my1.yaml -f ./my2.yaml # aus mehreren Dateien erstellen +kubectl apply -f ./dir # Erstellen Sie Ressourcen in allen Manifestdateien in Verzeichnis +kubectl apply -f https://git.io/vPieo # Ressource(n) aus URL erstellen +kubectl create deployment nginx --image=nginx # Starten Sie eine einzelne Instanz von Nginx +kubectl explain pods,svc # Zeigen Sie die Dokumentation für Pod und SVC Manifeste an + +# Erstellen Sie mehrere YAML-Objekte aus stdin +cat </dev/null; printf "\n"; done + +# Prüfen Sie, welche Nodes bereit sind +JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \ + && kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True" + +# Listen Sie alle Secrets auf, die derzeit von einem Pod verwendet werden +kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq + +# Ereignisse nach Zeitstempel sortiert auflisten +kubectl get events --sort-by=.metadata.creationTimestamp +``` + +## Ressourcen aktualisieren + +Ab Version 1.11 ist das `rolling-update` veraltet (Lesen Sie [CHANGELOG-1.11.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md) für weitere Informationen), verwenden Sie stattdessen `rollout`. + +```bash +kubectl set image deployment/frontend www=image:v2 # Fortlaufende Aktualisierung der "www" Container der "Frontend"-Bereitstellung, Aktualisierung des Images +kubectl rollout undo deployment/frontend # Rollback zur vorherigen Bereitstellung +kubectl rollout status -w deployment/frontend # Beobachten Sie den fortlaufenden Aktualisierungsstatus der "Frontend"-Bereitstellung bis zum Abschluss. + +# veraltet ab Version 1.11 +kubectl rolling-update frontend-v1 -f frontend-v2.json # (veraltet) Fortlaufendes Update der Pods von Frontend-v1 +kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (veraltet) Ändern Sie den Namen der Ressource und aktualisieren Sie das Image +kubectl rolling-update frontend --image=image:v2 # (veraltet) Aktualisieren Sie das Pod-Image des Frontends +kubectl rolling-update frontend-v1 frontend-v2 --rollback # (veraltet) Bricht das laufende Rollout ab + +cat pod.json | kubectl replace -f - # Ersetzen Sie einen Pod basierend auf der in std übergebenen JSON + +# Ersetzen, löschen und Ressource neu erstellen. Dies führt zu einer temprären Unerreichbarkeit des Dienstes. +kubectl replace --force -f ./pod.json + +# Erstellen Sie einen Dienst für eien replizierten nginx Webserver, der an Port 80 und in den Containern an Port 8000 lauscht +kubectl expose rc nginx --port=80 --target-port=8000 + +# Aktualisieren Sie die Image-Version (Tag) eines Einzelcontainer-Pods auf Version 4 +kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f - + +kubectl label pods my-pod new-label=awesome # Label hinzufügen +kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq # Eine Anmerkung hinzufügen +kubectl autoscale deployment foo --min=2 --max=10 # Automatische Skalierung einer Bereitstellung "Foo" +``` + +## Ressourcen patchen + +```bash +kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # Aktualisieren Sie einen Node teilweise + +# Aktualisieren Sie das Image eines Containers; spec.containers[*].name ist erforderlich, da es sich um einen Merge-Schlüssel handelt +kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}' + +# Aktualisieren Sie das Image eines Containers mithilfe eines Json-Patches mit Positionsarrays +kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' + +# Deaktivieren Sie eine Bereitstellung von livenessProbe durch verwenden eines Json-Patches mit Positionsarrays +kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]' + +# Fügen Sie einem Positionsarray ein neues Element hinzu +kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]' +``` + +## Ressourcen bearbeiten +Bearbeiten Sie eine beliebige API-Ressource in einem Editor. + +```bash +kubectl edit svc/docker-registry # Bearbeiten Sie den Dienst docker-registry +KUBE_EDITOR="nano" kubectl edit svc/docker-registry # Verwenden Sie einen alternativen Texteditor +``` + +## Ressourcen skalieren + +```bash +kubectl scale --replicas=3 rs/foo # Skaliert ein Replikat mit dem Namen 'foo' auf 3 +kubectl scale --replicas=3 -f foo.yaml # Skaliert eine in "foo.yaml" angegebene Ressource auf 3 +kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Wenn die aktuelle Konfiguration der Replikation von mysql 2 ist, skaliert mysql auf 3 +kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Skaliert mehrere Replikationscontroller +``` + +## Ressourcen löschen + +```bash +kubectl delete -f ./pod.json # Löscht einen Pod mit dem in pod.json angegebenen Typ und Namen +kubectl delete pod,service baz foo # Löscht Pods und Services mit den gleichen Namen "baz" und "foo" +kubectl delete pods,services -l name=myLabel # Löscht Pods und Services mit dem Label name=myLabel +kubectl delete pods,services -l name=myLabel --include-uninitialized # Löscht Pods und Services, einschließlich nicht initialisierter, mit dem Label name=myLabel +kubectl -n my-ns delete po,svc --all # Löscht alle Pods und Dienste, einschließlich nicht initialisierter, im Namespace my-ns, +``` + +## Interaktion mit laufenden Pods + +```bash +kubectl logs my-pod # Pod-Logdatei ausgeben (stdout) +kubectl logs my-pod --previous # Pod-Logdatei für eine vorherige Instantiierung eines Containers ausgeben (stdout) +kubectl logs my-pod -c my-container # Pod Container-Logdatei ausgeben (stdout, multi-container case) +kubectl logs my-pod -c my-container --previous # Pod Container-Logdatei für eine vorherige Instantiierung eines Containers ausgeben (stdout, multi-container case) +kubectl logs -f my-pod # Pod-Logdatei streamen (stdout) +kubectl logs -f my-pod -c my-container # Pod Container-Logdatei streamen (stdout, multi-container case) +kubectl run -i --tty busybox --image=busybox -- sh # Pod als interaktive Shell ausführen +kubectl attach my-pod -i # An laufenden Container anhängen +kubectl port-forward my-pod 5000:6000 # Lauscht auf Port 5000 auf dem lokalen Computer und leitet den Port 6000 auf my-pod weiter +kubectl exec my-pod -- ls / # Befehl in vorhandenem Pod ausführen (1 Container) +kubectl exec my-pod -c my-container -- ls / # Befehl in vorhandenem Pod ausführen (Mehrere Container) +kubectl top pod POD_NAME --containers # Zeigt Metriken für einen bestimmten Pod und seine Container an +``` + +## Mit Nodes und Clustern interagieren + +```bash +kubectl cordon my-node # Markiert "my-node" als unplanbar +kubectl drain my-node # Entleert "my-node" zur Vorbereitung der Wartung +kubectl uncordon my-node # Markiert "my-node" als planbar +kubectl top node my-node # Metriken für einen bestimmten Node anzeigen +kubectl cluster-info # Adressen des Masters und der Services anzeigen +kubectl cluster-info dump # Ausgabe des aktuellen Clusterstatus in stdout +kubectl cluster-info dump --output-directory=/pfad/zum/cluster-status # Aktuellen Cluster-Status in /pfad/zum/cluster-status ausgeben + +# Wenn bereits ein Taint mit diesem Key und Effekt vorhanden ist, wird sein Wert wie angegeben ersetzt. +kubectl taint nodes foo dedicated=special-user:NoSchedule +``` + +### Ressourcentypen + +Liste aller unterstützten Ressourcentypen mit ihren Kurzbezeichnungen, der [API-Gruppe](/docs/concepts/overview/kubernetes-api/#api-groups), unabhängig davon ob sie im Namespace liegen, und der [Art](/docs/concepts/overview/working-with-objects/kubernetes-objects): + +```bash +kubectl api-resources +``` + +Andere Operationen zum Erkunden von API-Ressourcen: + +```bash +kubectl api-resources --namespaced=true # Alle Ressourcen im Namespace +kubectl api-resources --namespaced=false # Alle nicht im Namespace befindlichen Ressourcen +kubectl api-resources -o name # Alle Ressourcen mit einfacher Ausgabe (nur der Ressourcenname) +kubectl api-resources -o wide # Alle Ressourcen mit erweiterter Ausgabe (aka "Wide") +kubectl api-resources --verbs=list,get # Alle Ressourcen, die "list" und "get" Verben unterstützen anfordern +kubectl api-resources --api-group=extensions # Alle Ressourcen in der API-Gruppe "extensions" +``` + +### Ausgabe formatieren + +Um Details in einem bestimmten Format an Ihr Terminalfenster auszugeben, können Sie entweder das `-o` oder `--output` Flag zu einem unterstützten `kubectl` Befehl anhängens. + +Ausgabeformat | Beschreibung +--------------| ----------- +`-o=custom-columns=` | Ausgabe einer Tabelle mit einer durch Kommas getrennten Liste benutzerdefinierter Spalten +`-o=custom-columns-file=` | Drucken Sie eine Tabelle mit der benutzerdefinierten Spaltenvorlage in der `` Datei +`-o=json` | Ausgabe eines JSON-formatierten API-Objekts +`-o=jsonpath=