Skip to content

Commit

Permalink
Merge branch 'master' into fix_syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
zacharysarah authored Oct 9, 2019
2 parents 6c8b75d + 6a4c73b commit 0a6585c
Show file tree
Hide file tree
Showing 106 changed files with 2,832 additions and 531 deletions.
6 changes: 3 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Remember to delete this note before submitting your pull request.
>
> For pull requests on 1.15 Features: set Milestone to 1.15 and Base Branch to dev-1.15
> For pull requests on 1.17 Features: set Milestone to 1.17 and Base Branch to dev-1.17
>
> For pull requests on Chinese localization, set Base Branch to release-1.14
> For pull requests on Chinese localization, set Base Branch to release-1.15
>
> For pull requests on Korean Localization: set Base Branch to dev-1.14-ko.\<latest team milestone>
> For pull requests on Korean Localization: set Base Branch to dev-1.16-ko.\<latest team milestone>
>
> If you need Help on editing and submitting pull requests, visit:
> https://kubernetes.io/docs/contribute/start/#improve-existing-content.
Expand Down
2 changes: 1 addition & 1 deletion assets/sass/_base.sass
Original file line number Diff line number Diff line change
Expand Up @@ -1065,7 +1065,7 @@ dd
position: fixed
bottom: 0

#miceType
.miceType
clear: both
font-size: 11px
line-height: 18px
Expand Down
238 changes: 238 additions & 0 deletions content/de/docs/concepts/architecture/cloud-controller.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
---
title: Zugrunde liegende Konzepte des Cloud Controller Manager
content_template: templates/concept
weight: 30
---

{{% capture overview %}}
Das Konzept des Cloud Controller Managers (CCM) (nicht zu verwechseln mit der BinΓ€rdatei) wurde ursprΓΌnglich entwickelt, um Cloud-spezifischen Anbieter Code und den Kubernetes Kern unabhΓ€ngig voneinander entwickeln zu kΓΆnnen. Der Cloud Controller Manager lΓ€uft zusammen mit anderen Master Komponenten wie dem Kubernetes Controller Manager, dem API-Server und dem Scheduler auf dem Host. Es kann auch als Kubernetes Addon gestartet werden, in diesem Fall lΓ€uft er auf Kubernetes.

Das Design des Cloud Controller Managers basiert auf einem Plugin Mechanismus, der es neuen Cloud Anbietern ermΓΆglicht, sich mit Kubernetes einfach ΓΌber Plugins zu integrieren. Es gibt PlΓ€ne fΓΌr die Einbindung neuer Cloud Anbieter auf Kubernetes und fΓΌr die Migration von Cloud Anbietern vom alten Modell auf das neue CCM-Modell.

Dieses Dokument beschreibt die Konzepte hinter dem Cloud Controller Manager und gibt Details zu den damit verbundenen Funktionen.

Die Architektur eines Kubernetes Clusters ohne den Cloud Controller Manager sieht wie folgt aus:

![Pre CCM Kube Arch](/images/docs/pre-ccm-arch.png)

{{% /capture %}}


{{% capture body %}}

## Design

Im vorhergehenden Diagramm sind Kubernetes und der Cloud-Provider ΓΌber mehrere verschiedene Komponenten integriert:

* Kubelet
* Kubernetes Controller Manager
* Kubernetes API Server

CCM konsolidiert die gesamte AbhΓ€ngigkeit der Cloud Logik von den drei vorhergehenden Komponenten zu einem einzigen Integrationspunkt mit der Cloud. So sieht die neue Architektur mit dem CCM aus:

![CCM Kube Arch](/images/docs/post-ccm-arch.png)

## Komponenten des CCM

Der CCM lΓΆst einen Teil der FunktionalitΓ€t des Kubernetes Controller Managers (KCM) ab und fΓΌhrt ihn als separaten Prozess aus. Konkret trennt es die Cloud abhΓ€ngigen Controller im KCM. Der KCM verfΓΌgt ΓΌber die folgenden Cloud abhΓ€ngigen Steuerungsschleifen:

* Node Controller
* Volume Controller
* Route Controller
* Service Controller

In der Version 1.9 fΓΌhrt der CCM die folgenden Controller aus der vorhergehenden Liste aus:

* Node Controller
* Route Controller
* Service Controller

{{< note >}}
Der Volume Controller wurde bewusst nicht als Teil des CCM gewΓ€hlt. Aufgrund der KomplexitΓ€t und der bestehenden BemΓΌhungen, herstellerspezifische Volume Logik zu abstrahieren, wurde entschieden, dass der Volume Controller nicht zum CCM verschoben wird.
{{< /note >}}

Der ursprΓΌngliche Plan, Volumes mit CCM zu integrieren, sah die Verwendung von Flex-Volumes vor welche austauschbare Volumes unterstΓΌtzt. Allerdings ist eine konkurrierende Initiative namens CSI geplant, um Flex zu ersetzen.

In Anbetracht dieser Dynamik haben wir uns entschieden, eine Zwischenstopp durchzufΓΌhren um die Unterschiede zu beobachten , bis das CSI bereit ist.

## Funktionen des CCM

Der CCM erbt seine Funktionen von Komponenten des Kubernetes, die von einem Cloud Provider abhΓ€ngig sind. Dieser Abschnitt ist auf der Grundlage dieser Komponenten strukturiert.

### 1. Kubernetes Controller Manager

Die meisten Funktionen des CCM stammen aus dem KCM. Wie im vorherigen Abschnitt erwΓ€hnt, fΓΌhrt das CCM die folgenden Steuerschleifen durch:

* Node Controller
* Route Controller
* Service Controller

#### Node Controller

Der Node Controller ist fΓΌr die Initialisierung eines Knotens verantwortlich, indem er Informationen ΓΌber die im Cluster laufenden Knoten vom Cloud Provider erhΓ€lt. Der Node Controller fΓΌhrt die folgenden Funktionen aus:

1. Initialisierung eines Knoten mit Cloud-spezifischen Zonen-/Regionen Labels.
2. Initialisieren von Knoten mit Cloud-spezifischen Instanzdetails, z.B. Typ und Grâße.
3. Ermitteln der Netzwerkadressen und des Hostnamen des Knotens.
4. Falls ein Knoten nicht mehr reagiert, ΓΌberprΓΌft der Controller die Cloud, um festzustellen, ob der Knoten aus der Cloud gelΓΆscht wurde.
Wenn der Knoten aus der Cloud gelΓΆscht wurde, lΓΆscht der Controller das Kubernetes Node Objekt.

#### Route Controller

Der Route Controller ist dafΓΌr verantwortlich, Routen in der Cloud so zu konfigurieren, dass Container auf verschiedenen Knoten im Kubernetes Cluster miteinander kommunizieren kΓΆnnen. Der Route Controller ist nur auf einem Google Compute Engine Cluster anwendbar.

#### Service Controller

Der Service Controller ist verantwortlich fΓΌr das AbhΓΆren von Ereignissen zum Erstellen, Aktualisieren und LΓΆschen von Diensten. Basierend auf dem aktuellen Stand der Services in Kubernetes konfiguriert es Cloud Load Balancer (wie ELB, Google LB oder Oracle Cloud Infrastructure LB), um den Zustand der Services in Kubernetes abzubilden. DarΓΌber hinaus wird sichergestellt, dass die Service Backends fΓΌr Cloud Loadbalancer auf dem neuesten Stand sind.

### 2. Kubelet

Der Node Controller enthΓ€lt die Cloud-abhΓ€ngige FunktionalitΓ€t des Kubelets. Vor der EinfΓΌhrung des CCM war das Kubelet fΓΌr die Initialisierung eines Knotens mit cloudspezifischen Details wie IP-Adressen, Regions-/Zonenbezeichnungen und Instanztypinformationen verantwortlich. Mit der EinfΓΌhrung des CCM wurde diese Initialisierungsoperation aus dem Kubelet in das CCM verschoben.

In diesem neuen Modell initialisiert das Kubelet einen Knoten ohne cloudspezifische Informationen. Es fΓΌgt jedoch dem neu angelegten Knoten einen Taint hinzu, der den Knoten nicht verplanbar macht, bis der CCM den Knoten mit cloudspezifischen Informationen initialisiert. Dann wird der Taint entfernt.

## Plugin Mechanismus

Der Cloud Controller Manager verwendet die Go Schnittstellen, um Implementierungen aus jeder Cloud einzubinden. Konkret verwendet dieser das CloudProvider Interface, das [hier](https://github.com/kubernetes/cloud-provider/blob/9b77dc1c384685cb732b3025ed5689dd597a5971/cloud.go#L42-L62) definiert ist.

Die Implementierung der vier oben genannten geteiltent Controllern und einigen Scaffolding sowie die gemeinsame CloudProvider Schnittstelle bleiben im Kubernetes Kern. Cloud Provider spezifische Implementierungen werden außerhalb des Kerns aufgebaut und implementieren im Kern definierte Schnittstellen.

Weitere Informationen zur Entwicklung von Plugins findest du im Bereich [Entwickeln von Cloud Controller Manager](/docs/tasks/administer-cluster/developing-cloud-controller-manager/).

## Autorisierung

Dieser Abschnitt beschreibt den Zugriff, den der CCM fΓΌr die AusfΓΌhrung seiner Operationen auf verschiedene API Objekte benΓΆtigt.

### Node Controller

Der Node Controller funktioniert nur mit Node Objekten. Es benΓΆtigt vollen Zugang zu get, list, create, update, patch, watch, und delete Node Objekten.

v1/Node:

- Get
- List
- Create
- Update
- Patch
- Watch
- Delete

### Route Controller

Der Route Controller horcht auf die Erstellung von Node Objekten und konfiguriert die Routen entsprechend. Es erfordert get Zugriff auf die Node Objekte.

v1/Node:

- Get

### Service Controller

Der Service Controller hΓΆrt auf die Service Objekt Events create, update und delete und konfiguriert dann die Endpunkte fΓΌr diese Services entsprechend.

Um auf Services zuzugreifen, benΓΆtigt man list und watch Berechtigung. Um die Services zu aktualisieren, sind patch und update Zugriffsrechte erforderlich.

Um die Endpunkte fΓΌr die Dienste einzurichten, benΓΆtigt der Controller Zugriff auf create, list, get, watch und update.

v1/Service:

- List
- Get
- Watch
- Patch
- Update

### Sonstiges

Die Implementierung des Kerns des CCM erfordert den Zugriff auf die Erstellung von Ereignissen und zur GewΓ€hrleistung eines sicheren Betriebs den Zugriff auf die Erstellung von ServiceAccounts.

v1/Event:

- Create
- Patch
- Update

v1/ServiceAccount:

- Create

Die RBAC ClusterRole fΓΌr CCM sieht wie folgt aus:

```yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cloud-controller-manager
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- update
- apiGroups:
- ""
resources:
- nodes
verbs:
- '*'
- apiGroups:
- ""
resources:
- nodes/status
verbs:
- patch
- apiGroups:
- ""
resources:
- services
verbs:
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- apiGroups:
- ""
resources:
- persistentvolumes
verbs:
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- endpoints
verbs:
- create
- get
- list
- watch
- update
```
## Anbieter Implementierung
Die folgenden Cloud Anbieter haben CCMs implementiert:
* [Digital Ocean](https://github.com/digitalocean/digitalocean-cloud-controller-manager)
* [Oracle](https://github.com/oracle/oci-cloud-controller-manager)
* [Azure](https://github.com/kubernetes/cloud-provider-azure)
* [GCP](https://github.com/kubernetes/cloud-provider-gcp)
* [AWS](https://github.com/kubernetes/cloud-provider-aws)
* [BaiduCloud](https://github.com/baidu/cloud-provider-baiducloud)
* [Linode](https://github.com/linode/linode-cloud-controller-manager)
## Cluster Administration
Eine vollstΓ€ndige Anleitung zur Konfiguration und zum Betrieb des CCM findest du [hier](/docs/tasks/administer-cluster/running-cloud-controller/#cloud-controller-manager).
{{% /capture %}}
4 changes: 2 additions & 2 deletions content/de/docs/setup/minikube.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Minikube ist ein Tool, mit dem Kubernetes lokal einfach ausgefΓΌhrt werden kann.
* NodePorts
* ConfigMaps and Secrets
* Dashboards
* Container Laufzeiumgebungen: Docker, [rkt](https://github.com/rkt/rkt), [CRI-O](https://github.com/kubernetes-incubator/cri-o) und [containerd](https://github.com/containerd/containerd)
* Container Laufzeiumgebungen: Docker, [rkt](https://github.com/rkt/rkt), [CRI-O](https://cri-o.io/) und [containerd](https://github.com/containerd/containerd)
* UnterstΓΌtzung von CNI (Container Network Interface)
* Ingress

Expand Down Expand Up @@ -164,7 +164,7 @@ minikube start \

#### CRI-O

Um [CRI-O](https://github.com/kubernetes-incubator/cri-o) als Containerlaufzeitumgebung zu verwenden, fΓΌhren Sie den folgenden Befehl aus:
Um [CRI-O](https://cri-o.io/) als Containerlaufzeitumgebung zu verwenden, fΓΌhren Sie den folgenden Befehl aus:

```bash
minikube start \
Expand Down
2 changes: 1 addition & 1 deletion content/de/docs/tutorials/kubernetes-basics/_index.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ <h2>Kubernetes Grundlagen</h2>
<div class="col-md-9">
<h2>Was kann Kubernetes fΓΌr Sie tun?</h2>
<p>Bei modernen Webservices erwarten Benutzer, dass Anwendungen rund um die Uhr verfΓΌgbar sind, und Entwickler erwarten, mehrmals tΓ€glich neue Versionen dieser Anwendungen bereitzustellen (deployen).
Containerisierung hilft bei der Paketierung von Software, um diese Ziele zu erreichen, sodass Anwendungen einfach und schnell ohne Ausfallzeiten verΓΆffentlicht und aktualisiert werden kΓΆnnen. Kubernetes hilft Ihnen dabei, sicherzustellen, dass diese Containeranwendungen immer dort laufen, wo und wann Sie mΓΆchten, und hilft ihnen, die Ressourcen und Tools zu finden, die sie zum Arbeiten benΓΆtigen. Kubernetes ist eine produktionsbereite Open-Source-Plattform, die auf der gesammelten Erfahrung von Google in der Container-Orchestrierung basiert und mit den besten Ideen der Community kombiniert wird.</p>
Containerisierung hilft bei der Paketierung von Software, um diese Ziele zu erreichen, sodass Anwendungen einfach und schnell ohne Ausfallzeiten verΓΆffentlicht und aktualisiert werden kΓΆnnen. Kubernetes hilft Ihnen dabei, sicherzustellen, dass diese Containeranwendungen immer dort laufen, wo und wann Sie mΓΆchten, und hilft Ihnen, die Ressourcen und Tools zu finden, die Sie zum Arbeiten benΓΆtigen. Kubernetes ist eine produktionsbereite Open-Source-Plattform, die auf der gesammelten Erfahrung von Google in der Container-Orchestrierung basiert und mit den besten Ideen der Community kombiniert wird.</p>
</div>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Although CRI is still in its early stages, there are already several projects un



- [cri-o](https://github.com/kubernetes-incubator/cri-o): OCI conformant runtimes.
- [cri-o](https://cri-o.io/): OCI conformant runtimes.
- [rktlet](https://github.com/kubernetes-incubator/rktlet): the rkt container runtime.
- [frakti](https://github.com/kubernetes/frakti): hypervisor-based container runtimes.
- [docker CRI shim](https://github.com/kubernetes/kubernetes/tree/release-1.5/pkg/kubelet/dockershim).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ Our workflow hasn't changed for confidential advance drafts. Additionally, we'll

### Call for reviewers

The Kubernetes Blog needs more reviewers! If you're interested in contributing to the Kubernetes project and can participate on a regular, weekly basis, send an introductory email to [[email protected]]([email protected]).
The Kubernetes Blog needs more reviewers! If you're interested in contributing to the Kubernetes project and can participate on a regular, weekly basis, send an introductory email to [[email protected]](mailto:[email protected]).
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ TIM PEPPER: Also, I would maybe argue in a way that a portion of that wasn't jus

<i>Thanks to Josh Berkus and Tim Pepper for talking to the Kubernetes Podcast from Google.

[Josh Berkus](https://github.com/jberkus) hangs out in #sig-release on the [Kubernetes Slack](slack.k8s.io). He maintains a newsletter called "[Last Week in Kubernetes Development](http://lwkd.info/)", with Noah Kantrowitz. You can read him on Twitter at [@fuzzychef](https://twitter.com/fuzzychef), but he does warn you that there's a lot of politics there as well.
[Josh Berkus](https://github.com/jberkus) hangs out in #sig-release on the [Kubernetes Slack](https://slack.k8s.io). He maintains a newsletter called "[Last Week in Kubernetes Development](http://lwkd.info/)", with Noah Kantrowitz. You can read him on Twitter at [@fuzzychef](https://twitter.com/fuzzychef), but he does warn you that there's a lot of politics there as well.


[Tim Pepper](https://github.com/tpepper) is also on Slack - he's always open to folks reaching out with a question, looking for help or advice. On Twitter you'll find him at [@pythomit](https://twitter.com/pythomit), which is "Timothy P" backwards. Tim is an avid soccer fan and season ticket holder for the [Portland Timbers](https://portlandtimbers.com/) and the [Portland Thorns](https://portlandthorns.com/), so you'll get all sorts of opinions on soccer in addition to technology!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ More crucially, though, the first implementation of the IR allowed rapid prototy

## Ambassador >= v0.50: Envoy v2 APIs (ADS), Testing with KAT, and Golang

In consultation with the [Ambassador community](http://d6e.co/slack), the [Datawire](www.datawire.io) team undertook a redesign of the internals of Ambassador in 2018. This was driven by two key goals. First, we wanted to integrate Envoy's v2 configuration format, which would enable the support of features such as [SNI](https://www.getambassador.io/user-guide/sni/), [rate limiting](https://www.getambassador.io/user-guide/rate-limiting) and [gRPC authentication APIs](https://www.getambassador.io/user-guide/auth-tutorial). Second, we also wanted to do much more robust semantic validation of Envoy configuration due to its increasing complexity (particularly when operating with large-scale application deployments).
In consultation with the [Ambassador community](http://d6e.co/slack), the [Datawire](https://www.datawire.io) team undertook a redesign of the internals of Ambassador in 2018. This was driven by two key goals. First, we wanted to integrate Envoy's v2 configuration format, which would enable the support of features such as [SNI](https://www.getambassador.io/user-guide/sni/), [rate limiting](https://www.getambassador.io/user-guide/rate-limiting) and [gRPC authentication APIs](https://www.getambassador.io/user-guide/auth-tutorial). Second, we also wanted to do much more robust semantic validation of Envoy configuration due to its increasing complexity (particularly when operating with large-scale application deployments).


### Initial stages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ We build the contributor summits around you:
* docs
* code
* community management
* [Subproject OWNERs] (aka maintainers in other OSS circles)
* [Subproject OWNERs] - aka maintainers in other OSS circles.
* Special Interest Group (SIG) / Working Group (WG) [Chair or Tech Lead]
* Active Contributors
* Casual Contributors
Expand Down Expand Up @@ -57,18 +57,30 @@ Jonas Rosland, Josh Berkus, Paris Pittman, Jorge Castro, Bob Killen, Deb Giles,

## Relive Seattle Contributor Summit

πŸ“ˆ 80% growth rate since the Austin 2017 December event
πŸ“œ Event waiting list: 103
πŸŽ“ 76 contributors were on-boarded through the New Contributor Workshop
πŸŽ‰ 92% of the current contributors RSVPs attended and of those:
πŸ‘©πŸ»β€πŸš’ 25% were [Special Interest Group] or Working Group Chairs or Tech Leads
πŸ—³ 70% were eligible to vote in the last [steering committee election] (more than 50 contributions in 2018)
πŸ“Ή 20+ [Sessions]
πŸ‘€ Most watched to date: Technical Vision, Security, API Code Base Tour
🌟 Top 3 according to survey: Live API Code Review, Deflaking Unconference, Technical Vision
🎱 🎳 160 attendees for the social at [Garage] on Sunday night where we sunk eight balls and recorded strikes (out in some cases)
πŸ† Special recognition: SIG Storage, @dims, and @jordan
πŸ“ˆ 80% growth rate since the Austin 2017 December event

πŸ“œ Event waiting list: 103

πŸŽ“ 76 contributors were on-boarded through the New Contributor Workshop

πŸŽ‰ 92% of the current contributors RSVPs attended and of those:

πŸ‘©πŸ»β€πŸš’ 25% were [Special Interest Group] or Working Group Chairs or Tech Leads

πŸ—³ 70% were eligible to vote in the last [steering committee election] - more than 50 contributions in 2018

πŸ“Ή 20+ [Sessions]

πŸ‘€ Most watched to date: Technical Vision, Security, API Code Base Tour

🌟 Top 3 according to survey: Live API Code Review, Deflaking Unconference, Technical Vision

🎱 🎳 160 attendees for the social at [Garage] on Sunday night where we sunk eight balls and recorded strikes (out in some cases)

πŸ† Special recognition: SIG Storage, @dims, and @jordan

πŸ“Έ Pictures (special thanks to [rdodev])

Garage Pic
Reg Desk

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: 'kube-proxy Subtleties: Debugging an Intermittent Connection Reset'
date: 2019-03-29
---

**Author:** [Yongkun Gui]([email protected]), Google
**Author:** [Yongkun Gui](mailto:[email protected]), Google

I recently came across a bug that causes intermittent connection resets. After
some digging, I found it was caused by a subtle combination of several different
Expand Down
Loading

0 comments on commit 0a6585c

Please sign in to comment.