From c9c236c4bfdcb2d2a50c0401126d0876efff6298 Mon Sep 17 00:00:00 2001 From: Chao Wang Date: Thu, 18 Oct 2018 14:31:36 +0800 Subject: [PATCH 01/62] fix the output for rolling back a deployment (#10597) --- .../workloads/controllers/deployment.md | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/content/en/docs/concepts/workloads/controllers/deployment.md b/content/en/docs/concepts/workloads/controllers/deployment.md index 8bc7f2f73b..f911ced81b 100644 --- a/content/en/docs/concepts/workloads/controllers/deployment.md +++ b/content/en/docs/concepts/workloads/controllers/deployment.md @@ -351,18 +351,17 @@ Waiting for rollout to finish: 2 out of 3 new replicas have been updated... Press Ctrl-C to stop the above rollout status watch. For more information on stuck rollouts, [read more here](#deployment-status). -You will also see that both the number of old replicas (nginx-deployment-1564180365 and -nginx-deployment-2035384211) and new replicas (nginx-deployment-3066724191) are 2. +You will see that the number of old replicas (nginx-deployment-1564180365 and nginx-deployment-2035384211) is 2, and new replicas (nginx-deployment-3066724191) is 1. ```shell $ kubectl get rs NAME DESIRED CURRENT READY AGE nginx-deployment-1564180365 2 2 2 25s nginx-deployment-2035384211 0 0 0 36s -nginx-deployment-3066724191 2 2 0 6s +nginx-deployment-3066724191 1 1 0 6s ``` -Looking at the Pods created, you will see that the 2 Pods created by new ReplicaSet are stuck in an image pull loop. +Looking at the Pods created, you will see that 1 Pod created by new ReplicaSet is stuck in an image pull loop. ```shell $ kubectl get pods @@ -370,15 +369,12 @@ NAME READY STATUS RESTARTS AGE nginx-deployment-1564180365-70iae 1/1 Running 0 25s nginx-deployment-1564180365-jbqqo 1/1 Running 0 25s nginx-deployment-3066724191-08mng 0/1 ImagePullBackOff 0 6s -nginx-deployment-3066724191-eocby 0/1 ImagePullBackOff 0 6s ``` {{< note >}} **Note:** The Deployment controller will stop the bad rollout automatically, and will stop scaling up the new ReplicaSet. This depends on the rollingUpdate parameters (`maxUnavailable` specifically) that you have specified. -Kubernetes by default sets the value to 1 and `.spec.replicas` to 1 so if you haven't cared about setting those -parameters, your Deployment can have 100% unavailability by default! This will be fixed in Kubernetes in a future -version. +Kubernetes by default sets the value to 25%. {{< /note >}} ```shell @@ -388,12 +384,12 @@ Namespace: default CreationTimestamp: Tue, 15 Mar 2016 14:48:04 -0700 Labels: app=nginx Selector: app=nginx -Replicas: 2 updated | 3 total | 2 available | 2 unavailable +Replicas: 1 updated | 3 total | 2 available | 1 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 -RollingUpdateStrategy: 1 max unavailable, 1 max surge +RollingUpdateStrategy: 25% max unavailable, 25% max surge OldReplicaSets: nginx-deployment-1564180365 (2/2 replicas created) -NewReplicaSet: nginx-deployment-3066724191 (2/2 replicas created) +NewReplicaSet: nginx-deployment-3066724191 (1/1 replicas created) Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- @@ -404,8 +400,6 @@ Events: 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1 - 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-1564180365 to 2 - 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 2 ``` To fix this, you need to rollback to a previous revision of Deployment that is stable. From 940d089d3065f8043732b22e10450ad88dfeeef9 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 18 Oct 2018 13:56:30 -0700 Subject: [PATCH 02/62] Blog Post: Tips first KubeCon Presentation (Pt. 1) (#10509) * Blog Post: Tips first KubeCon Presentation (Pt. 1) Part 1 about experiences from my first KubeCon presentation. Pre-review and collaboration with @kbarnard10 @parispittman. * Update Tips-For-First-KubeCon-Presentation-Part-1.MD * Update and rename Tips-For-First-KubeCon-Presentation-Part-1.MD to 2018-10-18-tips-for-first-kubecon-presentation-part-1.md --- ...s-for-first-kubecon-presentation-part-1.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 content/en/blog/_posts/2018-10-18-tips-for-first-kubecon-presentation-part-1.md diff --git a/content/en/blog/_posts/2018-10-18-tips-for-first-kubecon-presentation-part-1.md b/content/en/blog/_posts/2018-10-18-tips-for-first-kubecon-presentation-part-1.md new file mode 100644 index 0000000000..3c612e384e --- /dev/null +++ b/content/en/blog/_posts/2018-10-18-tips-for-first-kubecon-presentation-part-1.md @@ -0,0 +1,75 @@ +--- +layout: blog +title: 'Tips for Your First Kubecon Presentation - Part 1' +date: 2018-10-18 +--- + +**Author**: Michael Gasch (VMware) + +First of all, let me congratulate you to this outstanding achievement. Speaking at KubeCon, especially if it's your first time, is a tremendous honor and experience. Well done! + +
{{< tweet 1044345018490662912 >}}
+ +When I was informed that my [KubeCon talk about Kubernetes Resource Management](https://www.youtube.com/watch?v=8-apJyr2gi0) was accepted for KubeCon EU in Denmark (2018), I really could not believe it. By then, the chances to get your talk accepted were around 10% (or less, don't really remember the exact number). There were over a 1,000 submissions just for that KubeCon (recall that we now have **three KubeCon events during the year** - US, EU and Asia region). The popularity of Kubernetes is ever increasing and so is the number of people trying to get a talk accepted. Once again, **outstanding achievement to get your talk in**! + +But now comes the tough part - research, write, practice, repeat, go on stage, perform :) Let me tell you that I went through several sleepless nights preparing for my first KubeCon talk. The day of the presentation, until I got on stage, was a mixture of every emotion I could have possibly gone through. Even though I had presented uncountable times before, including large industry conferences, KubeCon was very different. Different because it was the first time everything was recorded (including the presenter on stage) and I did not really know the audience, or more precisely: I was assuming everyone in the room is a Kubernetes expert and that my presentation not only had to be entertaining but also technically deep and 100% accurate. It's not seldom that maintainers and SIG (Special Interest Group) leads are in the room as well. + +Another challenge for me was squeezing a topic, that can easily fill a full-day workshop, into a 35min presentation (including Q&A). Before KubeCon, I was used to giving breakouts which were typically 60 minutes long. This doesn't say anything about the quality of the presentation but I knew how many slides I can squeeze into 60 minutes, covering important details but not killing people with "Death by PowerPoint". + +So I learned a lot going through this endless cycle of preparation, practicing, these doubts of failing and time pressure finishing your deck, and of course giving the talk. When I left Copenhagen, I took some notes based on my speaker experience during the flight, which my friend [Bjoern](https://twitter.com/bbrundert) encouraged me to share. Not all of them might apply to you, but I still hope some of them are useful for your first KubeCon talk. + +## Submitting a Good Talk + +Some of you might read these lines even though you did not submit a talk or it wasn't accepted. I found these resources (not specifically targeted at KubeCon) for writing a good proposal very useful: + +- [How to write with Style](http://www.novelr.com/2008/08/16/vonnegut-how-to-write-with-style) +- [Talk Framework](https://docs.google.com/document/d/16llwMgq38wIt19Oj-TrunrPsfczrCNgvIqioslcdb6Q/edit) by the incredible [goinggodotnet](https://twitter.com/goinggodotnet) +- [Lachie’s 7 step guide to writing a winning tech conference CFP](https://medium.com/@LachlanEvenson/lachies-7-step-guide-to-writing-a-winning-tech-conference-cfp-4fa36a0d2672) + +Believe it or not, mine went through several reviews by Justin Garrison, Liz Rice, Bill Kennedy, Emad Benjamin and Kelsey Hightower (yes, THE Kelsey Hightower)! Some of them didn't know me before, they just live by our community values to grow newcomers and thus drive this great community forward every day. + +I think, without their feedback my proposal wouldn't have been on point to be selected. Their feedback was often direct and required me to completely change the first revisions. But they were right and their feedback was useful to stay within the character limit while still standing out with the proposal. + +Feel free to reach out for professional and/or experienced speakers. They know this stuff. And I was surprised by the support and help offered. Many had their DMs in Twitter open, so ask for help and you will be helped :) Besides Twitter, related forums to ask for assistance might be [Discuss](https://discuss.kubernetes.io/) and [Reddit](https://www.reddit.com/r/kubernetes/). + +## Preparing for your Presentation + +**Tip #1 - Appreciate that you were selected** and don't be upset about the slot your presentation was scheduled in. For example, my talk was put as second last presentation of final KubeCon day (Friday). I was like, who's going to stay there and not catch his/her flight or hang out and relax after this crazy week? The session stats, where speakers can see who signed up, were slowly increasing until the week of KubeCon. I think at the beginning of the week it showed ~80 people interested in my session (there is no mandatory sign-up). I was so happy, especially since there were some interesting talks running at the same time as my presentation. + +Without spoiling (see below), the KubeCon community and attendees fully leverage the time and effort they've put into traveling to KubeCon. Rest assured that even if you have the last presentation at KubeCon, people will show up! + +**Tip #2 - Study the Masters on [Youtube](https://www.youtube.com/channel/UCvqbFHwN-nwalWPjPUKpvTA/playlists)**. Get some inspirations from great speakers (some of them already mentioned above) and top rated sessions of previous KubeCons. Observe how they present and interact with the audience, while still keeping the tough timing throughout the presentation. + +**Tip #3 - Find reviewers**. Having experienced or professional speakers review your slides is super critical. Not only to check for language/translation (see below) but also to improve the flow of your presentation and get feedback on whether the content is logically structured and not too dense (too many slides, timing). They will help you to leave out less important information while also making the presentation fit for your audience (not everyone has the level of knowledge as you in your specific area). + +**Tip #4 - Language barriers**. Nobody is perfect and the community encourages diversity. This makes us all better and is what I probably like the most about the Kubernetes community. However, make sure that the audience understands the message of your talk. For non-native speakers, it can be really hard to present in English (e.g. at the US/EU conferences), especially if you're not used to it. Add to that the tension during the talk and it can become really hard for the audience to follow. + +I am not saying that everyone has to present in perfect business English. Nobody expects that, let me be very clear. But if you feel that this could be an issue for you, reach out for help. Reviewers can help fix grammar and wording in your slide deck. Practicing and recording yourself (see below) are helpful to reflect yourself. The slides should reflect your message so people can read along if they lost you. Simple, less busy slides are definitely recommended. Make sure to add speaker notes to your presentation. Not only does this help with getting better every time you run through your presentation (memory effect and the flow). It also serves as a safety net when you think language will definitely be an issue, or when you're suddenly completely lost during the presentation on stage. + +**Tip #5 - Study the Speaker Guidelines**. Nothing to add here, take them seriously and reach out to the (fantastic) speaker support if you have questions. Also submit your presentation in time (plan ahead accordingly) to not risk any trouble with the committee. + +**Tip #6 - Practice like never before**. Practicing is probably the most important tip I can give you. I don't know how many times I practiced my talk, e.g. at home but also at some local Meetups to get some early feedback. First I was shocked with timing. Even though I had my deck down to 40min in my dry runs at home, at the Meetup I completely run out of time (50min). I was shocked, as I didn't know what to leave out. + +The feedback from these sessions helped me to trim down content as it helped me to understand what to leave out/shorten. Keep in mind to also leave room for questions as a best practice (requirement?) by the speaker guidelines. + +**Tip #7 - The Demo Gods are not always with you**. Demos can and will go wrong. Not just because of the typical suspect like slow WiFi, etc. I heard horror stories about expired certificates, daylight saving times (for those traveling through time zones on their way to KubeCon) affecting deployments, the content of a variable in your BASH script changing (e.g. when curling stuff from the web), keyboards breaking (Mac lovers, can you believe that?), hard disks crashing (even the backup disk not working), and so on. + +Never ever rely on the demo gods, especially when you're not Kelsey Hightower :) Take [video recordings](https://asciinema.org/) of your demos so you not only have a backup when the live demo breaks. But also in case you're afraid of running out of time. In order to avoid the primary and backup disks crashing (yes, it happened at that KubeCon I was told), store a copy at your trusted cloud provider. + +**Tip #8 - The right Tools for the job**. Sometimes you want to highlight something on your slide. This has two potentially issues. First, you have to constantly turn away from the audience which does not necessarily look good (if you can avoid it). Second, it might not always work depending on the (laser) pointer and room equipment (light, background). + +[This presenter](https://www.logitech.com/en-us/product/spotlight-presentation-remote) from Logitech has really served me well. It has several useful features, the "Spotlight" (that's why the name) being my favorite feature. You'll never want to go back. + +**Tip #9 - Being recorded**. I am not sure if you can opt-out from being recorded (please check with speaker support on the latest guidelines here) if you don't want to appear on Youtube for the rest of your life. But audio definitely will be recorded so chose your words (jokes) wisely. Again, practicing and reviewing helps. If you're ok with being recorded, at least think about which shirt (logos and "art") you want to be remembered by the internet ;) + +**Tip #10 - Social media**. Social media is great for promoting your session and you should definitely send out reminders on various channels for your presentation. Something that is missing almost every time in the presentation templates (if you want to use them) is placeholders for your social media account and, more importantly, for your session ID. Even if the conference does not use session IDs externally (in the schedule builder), you might still want to add a handle to every slide so people can refer to your presentation (or particular slide) on social media with a hashtag that you then can search for feedback, questions, etc. + +**Tip #11 - Be yourself**. Be authentic and don't try to sound super smart or funny (unless you are ;)). Seriously. Just be yourself and people will love you. Authenticity is key for a great presentation and the audience will smell when you try to fool them. It also makes practicing and the live performance easier as you don't have to pay attention on acting like somebody else. + +From a content perspective make sure that **you** own and develop the content and you did not copy and paste like crazy from the Kubernetes docs or other presentations. It's absolutely ok to reference other sources, but please give them credit. Again, the audience will smell if you make things up. You should know what you're speaking about (not saying that you have to be an expert, but experience is what makes your talk unique). The final proof is during Q&A and KubeCon is a sharp audience ;) + +**Tip #12 - Changes to the proposal**. The committee, based on your proposal description and details, might change the audience level. For example, I put my talk in as intermediate, but it was changed to all skill levels. This is not bad per se. Just watch out for changes and adapt your presentation accordingly or reach out to speaker support. If you were not expecting beginners or architects in your talk (because you had chosen another skill level and target group), you might lose parts of your audience. This could also negatively affect your session feedback/scores. + +## Wrapping up + +I hope some of these tips are already useful and will help you getting started to work on your presentation. In the next post we are going to cover speaker tips when you are finally at the KubeCon event. From 0b34cec1352c2bc2d98ed0aa7957b36c6b50714e Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Sat, 20 Oct 2018 04:00:01 +0800 Subject: [PATCH 03/62] update Deployment.md (#10649) both `extension.vabeta1` and `apps.v1` in deployments, when run `kubectl ` op about `deploy`, we should add apiversion --- .../workloads/controllers/deployment.md | 79 +++++++++++-------- 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/content/en/docs/concepts/workloads/controllers/deployment.md b/content/en/docs/concepts/workloads/controllers/deployment.md index f911ced81b..be407b6ce1 100644 --- a/content/en/docs/concepts/workloads/controllers/deployment.md +++ b/content/en/docs/concepts/workloads/controllers/deployment.md @@ -107,7 +107,7 @@ Notice how the values in each field correspond to the values in the Deployment s * The number of up-to-date replicas is 0 according to the `.status.updatedReplicas` field. * The number of available replicas is 0 according to the `.status.availableReplicas` field. -To see the Deployment rollout status, run `kubectl rollout status deployment/nginx-deployment`. This command returns the following output: +To see the Deployment rollout status, run `kubectl rollout status deployment.v1.apps/nginx-deployment`. This command returns the following output: ```shell Waiting for rollout to finish: 2 out of 3 new replicas have been updated... @@ -171,21 +171,21 @@ Suppose that you now want to update the nginx Pods to use the `nginx:1.9.1` imag instead of the `nginx:1.7.9` image. ```shell -$ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 --record +$ kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record deployment.apps/nginx-deployment image updated ``` Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`: ```shell -$ kubectl edit deployment/nginx-deployment +$ kubectl edit deployment.v1.apps/nginx-deployment deployment.apps/nginx-deployment edited ``` To see the rollout status, run: ```shell -$ kubectl rollout status deployment/nginx-deployment +$ kubectl rollout status deployment.v1.apps/nginx-deployment Waiting for rollout to finish: 2 out of 3 new replicas have been updated... deployment.apps/nginx-deployment successfully rolled out ``` @@ -337,15 +337,15 @@ rolled back. Suppose that you made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`: ```shell -$ kubectl set image deployment/nginx-deployment nginx=nginx:1.91 +$ kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true deployment.apps/nginx-deployment image updated ``` The rollout will be stuck. ```shell -$ kubectl rollout status deployments nginx-deployment -Waiting for rollout to finish: 2 out of 3 new replicas have been updated... +$ kubectl rollout status deployment.v1.apps/nginx-deployment +Waiting for rollout to finish: 1 out of 3 new replicas have been updated... ``` Press Ctrl-C to stop the above rollout status watch. For more information on stuck rollouts, @@ -356,7 +356,7 @@ You will see that the number of old replicas (nginx-deployment-1564180365 and ng ```shell $ kubectl get rs NAME DESIRED CURRENT READY AGE -nginx-deployment-1564180365 2 2 2 25s +nginx-deployment-1564180365 3 3 3 25s nginx-deployment-2035384211 0 0 0 36s nginx-deployment-3066724191 1 1 0 6s ``` @@ -368,6 +368,7 @@ $ kubectl get pods NAME READY STATUS RESTARTS AGE nginx-deployment-1564180365-70iae 1/1 Running 0 25s nginx-deployment-1564180365-jbqqo 1/1 Running 0 25s +nginx-deployment-1564180365-hysrc 1/1 Running 0 25s nginx-deployment-3066724191-08mng 0/1 ImagePullBackOff 0 6s ``` @@ -384,11 +385,26 @@ Namespace: default CreationTimestamp: Tue, 15 Mar 2016 14:48:04 -0700 Labels: app=nginx Selector: app=nginx -Replicas: 1 updated | 3 total | 2 available | 1 unavailable +Replicas: 3 desired | 1 updated | 4 total | 3 available | 1 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 25% max unavailable, 25% max surge -OldReplicaSets: nginx-deployment-1564180365 (2/2 replicas created) +Pod Template: + Labels: app=nginx + Containers: + nginx: + Image: nginx:1.91 + Port: 80/TCP + Host Port: 0/TCP + Environment: + Mounts: + Volumes: +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True ReplicaSetUpdated +OldReplicaSets: nginx-deployment-1564180365 (3/3 replicas created) NewReplicaSet: nginx-deployment-3066724191 (1/1 replicas created) Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message @@ -397,8 +413,9 @@ Events: 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2 - 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 1 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1 ``` @@ -409,27 +426,27 @@ To fix this, you need to rollback to a previous revision of Deployment that is s First, check the revisions of this deployment: ```shell -$ kubectl rollout history deployment/nginx-deployment +$ kubectl rollout history deployment.v1.apps/nginx-deployment deployments "nginx-deployment" REVISION CHANGE-CAUSE 1 kubectl create --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true -2 kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 --record=true -3 kubectl set image deployment/nginx-deployment nginx=nginx:1.91 --record=true +2 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true +3 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true ``` `CHANGE-CAUSE` is copied from the Deployment annotation `kubernetes.io/change-cause` to its revisions upon creation. You could specify the`CHANGE-CAUSE` message by: -* Annotating the Deployment with `kubectl annotate deploy nginx-deployment kubernetes.io/change-cause="image updated to 1.9.1"` +* Annotating the Deployment with `kubectl annotate deployment.v1.apps/nginx-deployment kubernetes.io/change-cause="image updated to 1.9.1"` * Append the `--record` flag to save the `kubectl` command that is making changes to the resource. * Manually editing the manifest of the resource. To further see the details of each revision, run: ```shell -$ kubectl rollout history deployment/nginx-deployment --revision=2 +$ kubectl rollout history deployment.v1.apps/nginx-deployment --revision=2 deployments "nginx-deployment" revision 2 Labels: app=nginx pod-template-hash=1159050644 - Annotations: kubernetes.io/change-cause=kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 --record=true + Annotations: kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true Containers: nginx: Image: nginx:1.9.1 @@ -446,14 +463,14 @@ deployments "nginx-deployment" revision 2 Now you've decided to undo the current rollout and rollback to the previous revision: ```shell -$ kubectl rollout undo deployment/nginx-deployment +$ kubectl rollout undo deployment.v1.apps/nginx-deployment deployment.apps/nginx-deployment ``` Alternatively, you can rollback to a specific revision by specify that in `--to-revision`: ```shell -$ kubectl rollout undo deployment/nginx-deployment --to-revision=2 +$ kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2 deployment.apps/nginx-deployment ``` @@ -473,7 +490,7 @@ Namespace: default CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500 Labels: app=nginx Annotations: deployment.kubernetes.io/revision=4 - kubernetes.io/change-cause=kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 --record=true + kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true Selector: app=nginx Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable StrategyType: RollingUpdate @@ -516,7 +533,7 @@ Events: You can scale a Deployment by using the following command: ```shell -$ kubectl scale deployment nginx-deployment --replicas=10 +$ kubectl scale deployment.v1.apps/nginx-deployment --replicas=10 deployment.apps/nginx-deployment scaled ``` @@ -525,7 +542,7 @@ in your cluster, you can setup an autoscaler for your Deployment and choose the Pods you want to run based on the CPU utilization of your existing Pods. ```shell -$ kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80 +$ kubectl autoscale deployment.v1.apps/nginx-deployment --min=10 --max=15 --cpu-percent=80 deployment.apps/nginx-deployment scaled ``` @@ -547,7 +564,7 @@ nginx-deployment 10 10 10 10 50s You update to a new image which happens to be unresolvable from inside the cluster. ```shell -$ kubectl set image deploy/nginx-deployment nginx=nginx:sometag +$ kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:sometag deployment.apps/nginx-deployment image updated ``` @@ -601,21 +618,21 @@ nginx-2142116321 3 3 3 1m Pause by running the following command: ```shell -$ kubectl rollout pause deployment/nginx-deployment +$ kubectl rollout pause deployment.v1.apps/nginx-deployment deployment.apps/nginx-deployment paused ``` Then update the image of the Deployment: ```shell -$ kubectl set image deploy/nginx-deployment nginx=nginx:1.9.1 +$ kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 deployment.apps/nginx-deployment image updated ``` Notice that no new rollout started: ```shell -$ kubectl rollout history deploy/nginx-deployment +$ kubectl rollout history deployment.v1.apps/nginx-deployment deployments "nginx" REVISION CHANGE-CAUSE 1 @@ -628,7 +645,7 @@ nginx-2142116321 3 3 3 2m You can make as many updates as you wish, for example, update the resources that will be used: ```shell -$ kubectl set resources deployment nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi +$ kubectl set resources deployment.v1.apps/nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi deployment.apps/nginx-deployment resource requirements updated ``` @@ -638,7 +655,7 @@ the Deployment will not have any effect as long as the Deployment is paused. Eventually, resume the Deployment and observe a new ReplicaSet coming up with all the new updates: ```shell -$ kubectl rollout resume deploy/nginx-deployment +$ kubectl rollout resume deployment.v1.apps/nginx-deployment deployment.apps/nginx-deployment resumed $ kubectl get rs -w NAME DESIRED CURRENT READY AGE @@ -696,7 +713,7 @@ You can check if a Deployment has completed by using `kubectl rollout status`. I successfully, `kubectl rollout status` returns a zero exit code. ```shell -$ kubectl rollout status deploy/nginx-deployment +$ kubectl rollout status deployment.v1.apps/nginx-deployment Waiting for rollout to finish: 2 of 3 updated replicas are available... deployment.apps/nginx-deployment successfully rolled out $ echo $? @@ -724,7 +741,7 @@ The following `kubectl` command sets the spec with `progressDeadlineSeconds` to lack of progress for a Deployment after 10 minutes: ```shell -$ kubectl patch deployment/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}' +$ kubectl patch deployment.v1.apps/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}' deployment.apps/nginx-deployment patched ``` Once the deadline has been exceeded, the Deployment controller adds a DeploymentCondition with the following @@ -829,7 +846,7 @@ You can check if a Deployment has failed to progress by using `kubectl rollout s returns a non-zero exit code if the Deployment has exceeded the progression deadline. ```shell -$ kubectl rollout status deploy/nginx-deployment +$ kubectl rollout status deployment.v1.apps/nginx-deployment Waiting for rollout to finish: 2 out of 3 new replicas have been updated... error: deployment "nginx" exceeded its progress deadline $ echo $? From 776485e2f74fcc3a575eddc19c45d912c8781dbd Mon Sep 17 00:00:00 2001 From: likeXXxx Date: Tue, 23 Oct 2018 02:25:26 +0800 Subject: [PATCH 04/62] fix a typo (#10695) * fix a typo * fix a typo --- .../manage-resources/cpu-default-namespace.md | 2 +- .../manage-resources/memory-default-namespace.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md b/content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md index 725083d688..53edcd7f25 100644 --- a/content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md +++ b/content/en/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace.md @@ -68,7 +68,7 @@ kubectl get pod default-cpu-demo --output=yaml --namespace=default-cpu-example The output shows that the Pod's Container has a CPU request of 500 millicpus and a CPU limit of 1 cpu. These are the default values specified by the LimitRange. -```shel +```shell containers: - image: nginx imagePullPolicy: Always diff --git a/content/en/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md b/content/en/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md index ab43f8a34c..94f07c040c 100644 --- a/content/en/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md +++ b/content/en/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md @@ -70,7 +70,7 @@ kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example The output shows that the Pod's Container has a memory request of 256 MiB and a memory limit of 512 MiB. These are the default values specified by the LimitRange. -```shel +```shell containers: - image: nginx imagePullPolicy: Always From f82237f061a5a8dd909f135a4051dba7e17f4e7b Mon Sep 17 00:00:00 2001 From: takonomura Date: Tue, 23 Oct 2018 04:40:19 +0900 Subject: [PATCH 05/62] Fix a broken link in /docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha/ (#10693) --- .../docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md index 2c8baf8d8b..9e08a7262b 100644 --- a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md +++ b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md @@ -21,7 +21,7 @@ Before proceeding: - You need to have a `kubeadm` HA cluster running version 1.11 or higher. - Make sure you read the [release notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md) carefully. - Make sure to back up any important components, such as app-level state stored in a database. `kubeadm upgrade` does not touch your workloads, only components internal to Kubernetes, but backups are always a best practice. -- Check the prerequisites for [Upgrading/downgrading kubeadm clusters between v1.11 to v1.12](/docs/tasks/administer-cluster/kubeadm-upgrade-1-12/). +- Check the prerequisites for [Upgrading/downgrading kubeadm clusters between v1.11 to v1.12](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-12/). {{< note >}} **Note**: All commands on any control plane or etcd node should be From 1046a70d43bb1e43020c9feeb7ae13df87ccfa2f Mon Sep 17 00:00:00 2001 From: Yuexiao Wang <20082558+yuexiao-wang@users.noreply.github.com> Date: Tue, 23 Oct 2018 09:31:36 +0800 Subject: [PATCH 06/62] remove redundant for Jaguar (#10694) Signed-off-by: yuexiao-wang --- .../en/docs/concepts/cluster-administration/networking.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/content/en/docs/concepts/cluster-administration/networking.md b/content/en/docs/concepts/cluster-administration/networking.md index 924b72fd76..e1e16ea47a 100644 --- a/content/en/docs/concepts/cluster-administration/networking.md +++ b/content/en/docs/concepts/cluster-administration/networking.md @@ -277,11 +277,6 @@ Weave Net runs as a [CNI plug-in](https://www.weave.works/docs/net/latest/cni-pl or stand-alone. In either version, it doesn't require any configuration or extra code to run, and in both cases, the network provides one IP address per pod - as is standard for Kubernetes. -### Jaguar - -[Jaguar](https://gitlab.com/sdnlab/jaguar) is an open source solution for Kubernetes's network based on OpenDaylight. -Jaguar provides overlay network using vxlan and Jaguar CNIPlugin provides one IP address per pod. - {{% /capture %}} {{% capture whatsnext %}} From 712f463ba1de22dda04e63514ca9656f0fa8a17a Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Tue, 23 Oct 2018 16:54:29 +0530 Subject: [PATCH 07/62] Remove docs for migration from TPRs to CRDs (#10707) * Add sttts as a reviewer to CRD docs * Remove docs for migration to CRDs as TPRs are not relevant anymore TPRs were removed in 1.8 --- .../custom-resource-definitions.md | 1 + .../migrate-third-party-resource.md | 174 ------------------ 2 files changed, 1 insertion(+), 174 deletions(-) delete mode 100644 content/en/docs/tasks/access-kubernetes-api/custom-resources/migrate-third-party-resource.md diff --git a/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions.md b/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions.md index 892f9f55e6..887bc30552 100644 --- a/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions.md +++ b/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions.md @@ -3,6 +3,7 @@ title: Extend the Kubernetes API with CustomResourceDefinitions reviewers: - deads2k - enisoc +- sttts content_template: templates/task weight: 20 --- diff --git a/content/en/docs/tasks/access-kubernetes-api/custom-resources/migrate-third-party-resource.md b/content/en/docs/tasks/access-kubernetes-api/custom-resources/migrate-third-party-resource.md deleted file mode 100644 index 853add8c39..0000000000 --- a/content/en/docs/tasks/access-kubernetes-api/custom-resources/migrate-third-party-resource.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: Migrate a ThirdPartyResource to CustomResourceDefinition -reviewers: -- enisoc -- deads2k -content_template: templates/task -weight: 50 ---- - -{{% capture overview %}} -This page shows how to migrate data stored in a ThirdPartyResource (TPR) to a -[CustomResourceDefinition](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#customresourcedefinition-v1beta1-apiextensions) (CRD). - -Kubernetes does not automatically migrate existing TPRs. -This is due to API changes introduced as part of -[graduating to beta](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/thirdpartyresources.md) -under a new name and API group. -Instead, both TPR and CRD are available and operate independently in Kubernetes 1.7. -Users must migrate each TPR one by one to preserve their data before upgrading to Kubernetes 1.8. - -The simplest way to migrate is to stop all clients that use a given TPR, then delete the TPR and -start from scratch with a CRD. -This page describes an optional process that eases the transition by migrating existing TPR data for -you **on a best-effort basis**. -{{% /capture %}} - -{{% capture prerequisites %}} -{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} - -* Make sure your Kubernetes cluster has a **master version of exactly 1.7.x** (any patch release), - as this is the only version that supports both TPR and CRD. -* If you use a TPR-based custom controller, check with the author of the controller first. - Some or all of these steps may be unnecessary if the custom controller handles the migration for - you. -* Be familiar with the concept of [custom resources](/docs/concepts/api-extension/custom-resources/), - which were known as *third-party resources* until Kubernetes 1.7. -* Be familiar with [CustomResourceDefinitions](/docs/concepts/api-extension/custom-resources/#customresourcedefinitions), - which are a simple way to implement custom resources. -* **Before performing a migration on real data, conduct a dry run by going through these steps in a test cluster.** -{{% /capture %}} - -{{% capture steps %}} -## Migrate TPR data - -1. **Rewrite the TPR definition** - - Clients that access the REST API for your custom resource should not need any changes. - However, you will need to rewrite your TPR definition as a CRD. - - Make sure you specify values for the CRD fields that match what the server used to fill in for - you with TPR. - - For example, if your ThirdPartyResource looks like this: - - - apiVersion: extensions/v1beta1 - kind: ThirdPartyResource - metadata: - name: cron-tab.stable.example.com - description: "A specification of a Pod to run on a cron style schedule" - versions: - - name: v1 - - - A matching CustomResourceDefinition could look like this: - - ```yaml - apiVersion: apiextensions.k8s.io/v1beta1 - kind: CustomResourceDefinition - metadata: - name: crontabs.stable.example.com - spec: - scope: Namespaced - group: stable.example.com - versions: - - name: v1 - served: true - storage: true - names: - kind: CronTab - plural: crontabs - singular: crontab - ``` - -1. **Install the CustomResourceDefinition** - - While the source TPR is still active, install the matching CRD with `kubectl create`. - Existing TPR data remains accessible because TPRs take precedence over CRDs when both try - to serve the same resource. - - After you create the CRD, make sure the *Established* condition goes to True. - You can check it with a command like this: - - ```shell - kubectl get crd -o 'custom-columns=NAME:{.metadata.name},ESTABLISHED:{.status.conditions[?(@.type=="Established")].status}' - ``` - - The output should look like this: - - ```console - NAME ESTABLISHED - crontabs.stable.example.com True - ``` - -1. **Stop all clients that use the TPR** - - The API server attempts to prevent TPR data for the resource from changing while it - copies objects to the CRD, but it can't guarantee consistency in all cases, such as with - [multiple masters](/docs/admin/high-availability/). - Stopping clients, such as TPR-based custom controllers, helps to avoid inconsistencies in - the copied data. - - In addition, clients that watch TPR data do not receive any more events once the migration - begins. - You must restart them after the migration completes so they start watching CRD data instead. - -1. **Back up TPR data** - - In case the data migration fails, save a copy of existing data for the resource: - - ```shell - kubectl get crontabs --all-namespaces -o yaml > crontabs.yaml - ``` - - You should also save a copy of the TPR definition if you don't have one already: - - ```shell - kubectl get thirdpartyresource cron-tab.stable.example.com -o yaml --export > tpr.yaml - ``` - -1. **Delete the TPR definition** - - Normally, when you delete a TPR definition, the API server tries to clean up any objects stored - in that resource. - Because a matching CRD exists, the server copies objects to the CRD instead of deleting them. - - ```shell - kubectl delete thirdpartyresource cron-tab.stable.example.com - ``` - -1. **Verify the new CRD data** - - It can take up to 10 seconds for the TPR controller to notice when you delete the TPR definition - and to initiate the migration. The TPR data remains accessible during this time. - - Once the migration completes, the resource begins serving through the CRD. - Check that all your objects were correctly copied: - - ```shell - kubectl get crontabs --all-namespaces -o yaml - ``` - - If the copy failed, you can quickly revert to the set of objects that existed just before the - migration by recreating the TPR definition: - - ```shell - kubectl create -f tpr.yaml - ``` - -1. **Restart clients** - - After verifying the CRD data, restart any clients you stopped before the migration, such as - custom controllers and other watchers. - These clients now access CRD data when they make requests on the same API endpoints - that the TPR previously served. -{{% /capture %}} - -{{% capture whatsnext %}} -* Learn more about [custom resources](/docs/concepts/api-extension/custom-resources/). -* Learn more about [using CustomResourceDefinitions](/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/). -* See [CustomResourceDefinition](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#customresourcedefinition-v1beta1-apiextensions). -{{% /capture %}} - - From d565f7de6acfd0c76055d62f59319a6908f26f73 Mon Sep 17 00:00:00 2001 From: LiuDui <1693291525@qq.com> Date: Tue, 23 Oct 2018 19:32:44 +0800 Subject: [PATCH 08/62] Remove excess Spaces (#10706) --- content/en/docs/concepts/cluster-administration/federation.md | 2 +- content/en/docs/concepts/policy/pod-security-policy.md | 2 +- .../services-networking/connect-applications-service.md | 2 +- content/en/docs/concepts/services-networking/service.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/concepts/cluster-administration/federation.md b/content/en/docs/concepts/cluster-administration/federation.md index eaa33d4c60..16fc92d1f7 100644 --- a/content/en/docs/concepts/cluster-administration/federation.md +++ b/content/en/docs/concepts/cluster-administration/federation.md @@ -37,7 +37,7 @@ why you might want multiple clusters are: * Low latency: Having clusters in multiple regions minimises latency by serving users from the cluster that is closest to them. * Fault isolation: It might be better to have multiple small clusters rather - than a single large cluster for fault isolation (for example: multiple + than a single large cluster for fault isolation (for example: multiple clusters in different availability zones of a cloud provider). * Scalability: There are scalability limits to a single kubernetes cluster (this should not be the case for most users. For more details: diff --git a/content/en/docs/concepts/policy/pod-security-policy.md b/content/en/docs/concepts/policy/pod-security-policy.md index cd5ca8294a..eb51921e56 100644 --- a/content/en/docs/concepts/policy/pod-security-policy.md +++ b/content/en/docs/concepts/policy/pod-security-policy.md @@ -460,7 +460,7 @@ root filesystem (i.e. no writable layer). This specifies a whiltelist of Flexvolume drivers that are allowed to be used by flexvolume. An empty list or nil means there is no restriction on the drivers. -Please make sure [`volumes`](#volumes-and-file-systems) field contains the +Please make sure [`volumes`](#volumes-and-file-systems) field contains the `flexVolume` volume type; no Flexvolume driver is allowed otherwise. For example: diff --git a/content/en/docs/concepts/services-networking/connect-applications-service.md b/content/en/docs/concepts/services-networking/connect-applications-service.md index 730ec739c5..0de0619a79 100644 --- a/content/en/docs/concepts/services-networking/connect-applications-service.md +++ b/content/en/docs/concepts/services-networking/connect-applications-service.md @@ -208,7 +208,7 @@ Till now we have only accessed the nginx server from within the cluster. Before * An nginx server configured to use the certificates * A [secret](/docs/concepts/configuration/secret/) that makes the certificates accessible to pods -You can acquire all these from the [nginx https example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/https-nginx/). This requires having go and make tools installed. If you don't want to install those, then follow the manual steps later. In short: +You can acquire all these from the [nginx https example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/https-nginx/). This requires having go and make tools installed. If you don't want to install those, then follow the manual steps later. In short: ```shell $ make keys secret KEY=/tmp/nginx.key CERT=/tmp/nginx.crt SECRET=/tmp/secret.json diff --git a/content/en/docs/concepts/services-networking/service.md b/content/en/docs/concepts/services-networking/service.md index 9423fc26f9..5574c561af 100644 --- a/content/en/docs/concepts/services-networking/service.md +++ b/content/en/docs/concepts/services-networking/service.md @@ -196,7 +196,7 @@ having working [readiness probes](/docs/tasks/configure-pod-container/configure- In this mode, kube-proxy watches Kubernetes Services and Endpoints, calls `netlink` interface to create ipvs rules accordingly and syncs ipvs rules with Kubernetes -Services and Endpoints periodically, to make sure ipvs status is +Services and Endpoints periodically, to make sure ipvs status is consistent with the expectation. When Service is accessed, traffic will be redirected to one of the backend Pods. From 1f1ab6576e5da77deb9dd61a02acd39c2568f924 Mon Sep 17 00:00:00 2001 From: Rui Cao Date: Tue, 23 Oct 2018 22:19:32 +0800 Subject: [PATCH 09/62] Fix typo: assoications -> associations (#10708) Signed-off-by: Rui Cao --- content/en/docs/concepts/services-networking/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/services-networking/service.md b/content/en/docs/concepts/services-networking/service.md index 5574c561af..f57f1c534a 100644 --- a/content/en/docs/concepts/services-networking/service.md +++ b/content/en/docs/concepts/services-networking/service.md @@ -940,7 +940,7 @@ Kubernetes supports SCTP as a `protocol` value in `Service`, `Endpoint`, `Networ The support of multihomed SCTP associations requires that the CNI plugin can support the assignment of multiple interfaces and IP addresses to a `Pod`. -NAT for multihomed SCTP assoications requires special logic in the corresponding kernel modules. +NAT for multihomed SCTP associations requires special logic in the corresponding kernel modules. #### Service with type=LoadBalancer From f0bcb80dd4e509aa4e6c44b18445fe0703ce5f59 Mon Sep 17 00:00:00 2001 From: Karen Bradshaw Date: Tue, 23 Oct 2018 10:23:35 -0400 Subject: [PATCH 10/62] [WIP] css updates for ol,ul,li (#10684) --- sass/_base.sass | 3 +++ static/css/case-study-styles.css | 4 ++-- static/css/case-study-styles.css.map | 14 +++++++------- static/css/styles.css | 4 ++-- static/css/styles.css.map | 14 +++++++------- 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/sass/_base.sass b/sass/_base.sass index b078336a96..daa7107b62 100644 --- a/sass/_base.sass +++ b/sass/_base.sass @@ -915,6 +915,9 @@ dd ul li list-style: disc + ol ul li + list-style: none + ol li list-style: decimal diff --git a/static/css/case-study-styles.css b/static/css/case-study-styles.css index 5ceb84710c..39d66cd772 100644 --- a/static/css/case-study-styles.css +++ b/static/css/case-study-styles.css @@ -1,2 +1,2 @@ -html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}hr{background-color:#999}h2{margin-bottom:15px !important}.subhead{padding-bottom:2% !important;padding-top:0% !important}.details{margin-left:1.9%;padding-right:5%;font-size:16px !important;padding-bottom:2% !important}.section1{margin-bottom:3%}.section1 .cols{width:80% !important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52% !important;font-weight:300 !important}.section1 .cols .col2{width:46% !important}.banner2text{width:63%;padding-top:10%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial !important}body footer{background-color:#585858 !important}.section1{float:left !important}.banner1{padding-left:11.9% !important}.banner2{float:initial !important;padding-bottom:2% !important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial !important}@media screen and (max-width: 910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0% !important;padding-top:0% !important}.banner3{width:100% !important}}@media screen and (max-width: 780px){.section1 .cols{width:100% !important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100% !important;margin-left:0% !important}.fullcol{width:90% !important;margin-left:5% !important}.banner1{padding-left:10% !important;margin-bottom:6% !important}.banner2text{padding-top:60% !important;padding-bottom:2% !important}}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} -/*# sourceMappingURL=case-study-styles.css.map */ +html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol ul li{list-style:none}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}hr{background-color:#999}h2{margin-bottom:15px !important}.subhead{padding-bottom:2% !important;padding-top:0% !important}.details{margin-left:1.9%;padding-right:5%;font-size:16px !important;padding-bottom:2% !important}.section1{margin-bottom:3%}.section1 .cols{width:80% !important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52% !important;font-weight:300 !important}.section1 .cols .col2{width:46% !important}.banner2text{width:63%;padding-top:10%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial !important}body footer{background-color:#585858 !important}.section1{float:left !important}.banner1{padding-left:11.9% !important}.banner2{float:initial !important;padding-bottom:2% !important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial !important}@media screen and (max-width: 910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0% !important;padding-top:0% !important}.banner3{width:100% !important}}@media screen and (max-width: 780px){.section1 .cols{width:100% !important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100% !important;margin-left:0% !important}.fullcol{width:90% !important;margin-left:5% !important}.banner1{padding-left:10% !important;margin-bottom:6% !important}.banner2text{padding-top:60% !important;padding-bottom:2% !important}}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} +/*# sourceMappingURL=case-study-styles.css.map */ diff --git a/static/css/case-study-styles.css.map b/static/css/case-study-styles.css.map index a4a6e24a6e..2cb6d0766a 100644 --- a/static/css/case-study-styles.css.map +++ b/static/css/case-study-styles.css.map @@ -1,7 +1,7 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["../../sass/_reset.sass","../../sass/_skin.sass","../../sass/_size.sass","../../sass/_base.sass","../../sass/_case-studies.sass","../../sass/_tablet.sass","../../sass/_desktop.sass"], -"names": [], -"file": "case-study-styles.css" -} +{ +"version": 3, +"mappings": "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", +"sources": ["../../sass/_reset.sass","../../sass/_skin.sass","../../sass/_size.sass","../../sass/_base.sass","../../sass/_case-studies.sass","../../sass/_tablet.sass","../../sass/_desktop.sass"], +"names": [], +"file": "case-study-styles.css" +} diff --git a/static/css/styles.css b/static/css/styles.css index 22c3a6702a..2cb5ddd886 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -1,2 +1,2 @@ -html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} -/*# sourceMappingURL=styles.css.map */ +html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol ul li{list-style:none}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} +/*# sourceMappingURL=styles.css.map */ diff --git a/static/css/styles.css.map b/static/css/styles.css.map index 7706f071e3..94ce9810ff 100644 --- a/static/css/styles.css.map +++ b/static/css/styles.css.map @@ -1,7 +1,7 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["../../sass/_reset.sass","../../sass/_skin.sass","../../sass/_size.sass","../../sass/_base.sass","../../sass/_tablet.sass","../../sass/_desktop.sass"], -"names": [], -"file": "styles.css" -} +{ +"version": 3, +"mappings": "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", +"sources": ["../../sass/_reset.sass","../../sass/_skin.sass","../../sass/_size.sass","../../sass/_base.sass","../../sass/_tablet.sass","../../sass/_desktop.sass"], +"names": [], +"file": "styles.css" +} From e8e61870c91748308a3b77bd5d5a4b5638424147 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Tue, 23 Oct 2018 07:34:32 -0700 Subject: [PATCH 11/62] content/en/docs/setup/multiple-zones: Fix "pods in some pods" typo (#10664) The previous version is from cbbf1fa6 (Multizone: docs, 2016-03-16, #140). --- content/en/docs/setup/multiple-zones.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/multiple-zones.md b/content/en/docs/setup/multiple-zones.md index e050489730..5256d703b0 100644 --- a/content/en/docs/setup/multiple-zones.md +++ b/content/en/docs/setup/multiple-zones.md @@ -58,7 +58,7 @@ There are some important limitations of the multizone support: * We assume that the different zones are located close to each other in the network, so we don't perform any zone-aware routing. In particular, traffic -that goes via services might cross zones (even if pods in some pods backing that service +that goes via services might cross zones (even if some pods backing that service exist in the same zone as the client), and this may incur additional latency and cost. * Volume zone-affinity will only work with a `PersistentVolume`, and will not From 809741c478c14b6fdfff71b61b89c56e08a303be Mon Sep 17 00:00:00 2001 From: "David T. Crosby" Date: Tue, 23 Oct 2018 09:39:31 -0600 Subject: [PATCH 12/62] Update overview.md (#10665) --- content/en/docs/reference/kubectl/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/kubectl/overview.md b/content/en/docs/reference/kubectl/overview.md index c51c24af3f..ca50170576 100644 --- a/content/en/docs/reference/kubectl/overview.md +++ b/content/en/docs/reference/kubectl/overview.md @@ -68,7 +68,7 @@ Operation | Syntax | Description `edit` | `kubectl edit (-f FILENAME \| TYPE NAME \| TYPE/NAME) [flags]` | Edit and update the definition of one or more resources on the server by using the default editor. `exec` | `kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]` | Execute a command against a container in a pod, `explain` | `kubectl explain [--include-extended-apis=true] [--recursive=false] [flags]` | Get documentation of various resources. For instance pods, nodes, services, etc. -`expose` | `kubectl expose (-f FILENAME \| TYPE NAME \| TYPE/NAME) [--port=port] [--protocol=TCP\|UDP] [--target-port=number-or-name] [--name=name] [----external-ip=external-ip-of-service] [--type=type] [flags]` | Expose a replication controller, service, or pod as a new Kubernetes service. +`expose` | `kubectl expose (-f FILENAME \| TYPE NAME \| TYPE/NAME) [--port=port] [--protocol=TCP\|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]` | Expose a replication controller, service, or pod as a new Kubernetes service. `get` | `kubectl get (-f FILENAME \| TYPE [NAME \| /NAME \| -l label]) [--watch] [--sort-by=FIELD] [[-o \| --output]=OUTPUT_FORMAT] [flags]` | List one or more resources. `label` | `kubectl label (-f FILENAME \| TYPE NAME \| TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]` | Add or update the labels of one or more resources. `logs` | `kubectl logs POD [-c CONTAINER] [--follow] [flags]` | Print the logs for a container in a pod. From e8362f9401ae3df1dcf63ab4c9c22595934e78fb Mon Sep 17 00:00:00 2001 From: Xinzhao Xu Date: Tue, 23 Oct 2018 23:41:30 +0800 Subject: [PATCH 13/62] reference: fix dead links in extensible-admission-controllers (#10672) --- .../access-authn-authz/extensible-admission-controllers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md b/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md index bdee25dc86..518e57ef89 100644 --- a/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md +++ b/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md @@ -33,9 +33,9 @@ This page describes how to use Admission Webhooks and Initializers. Admission webhooks are HTTP callbacks that receive admission requests and do something with them. You can define two types of admission webhooks, -[validating admission Webhook](/docs/reference/access-authn-authz/admission-controllers/#validatingadmissionwebhook-alpha-in-1-8-beta-in-1-9) +[validating admission Webhook](/docs/reference/access-authn-authz/admission-controllers/#validatingadmissionwebhook) and -[mutating admission webhook](/docs/reference/access-authn-authz/admission-controllers/#mutatingadmissionwebhook-beta-in-1-9). +[mutating admission webhook](/docs/reference/access-authn-authz/admission-controllers/#mutatingadmissionwebhook). With validating admission Webhooks, you may reject requests to enforce custom admission policies. With mutating admission Webhooks, you may change requests to enforce custom defaults. From 255d95da31d59f997ac1f174384f67a5ca024e55 Mon Sep 17 00:00:00 2001 From: Chao Wang Date: Tue, 23 Oct 2018 23:44:29 +0800 Subject: [PATCH 14/62] fix a clerical error in audit truncate description (#10651) --- content/en/docs/tasks/debug-application-cluster/audit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/debug-application-cluster/audit.md b/content/en/docs/tasks/debug-application-cluster/audit.md index c4440d247c..d970f5ad86 100644 --- a/content/en/docs/tasks/debug-application-cluster/audit.md +++ b/content/en/docs/tasks/debug-application-cluster/audit.md @@ -191,7 +191,7 @@ and in the logs to monitor the state of the auditing subsystem. ### Truncate -Both log and webhook backends support batching. As an example, the following is the list of flags +Both log and webhook backends support truncating. As an example, the following is the list of flags available for the log backend: - `audit-log-truncate-enabled` whether event and batch truncating is enabled. From 6705b17ebc329965a561d330783670b3226e9480 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Tue, 23 Oct 2018 14:30:38 -0400 Subject: [PATCH 15/62] Update instructions for viewing rbac denials in the log (#10674) --- content/en/docs/reference/access-authn-authz/rbac.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/en/docs/reference/access-authn-authz/rbac.md b/content/en/docs/reference/access-authn-authz/rbac.md index bf009af587..ca674e9343 100644 --- a/content/en/docs/reference/access-authn-authz/rbac.md +++ b/content/en/docs/reference/access-authn-authz/rbac.md @@ -898,7 +898,8 @@ The RBAC authorizer will attempt to authorize requests first. If it denies an AP the ABAC authorizer is then run. This means that any request allowed by *either* the RBAC or ABAC policies is allowed. -When run with a log level of 2 or higher (`--v=2`), you can see RBAC denials in the apiserver log (prefixed with `RBAC DENY:`). +When the apiserver is run with a log level of 5 or higher for the RBAC component (`--vmodule=rbac*=5` or `--v=5`), +you can see RBAC denials in the apiserver log (prefixed with `RBAC DENY:`). You can use that information to determine which roles need to be granted to which users, groups, or service accounts. Once you have [granted roles to service accounts](#service-account-permissions) and workloads are running with no RBAC denial messages in the server logs, you can remove the ABAC authorizer. From 60293a77174162a7d7102ef3a3f62ac87054d34a Mon Sep 17 00:00:00 2001 From: SataQiu <1527062125@qq.com> Date: Wed, 24 Oct 2018 06:06:24 +0800 Subject: [PATCH 16/62] fix some typos (#10704) * fix some typos * s/they/there --- .../en/blog/_posts/2017-04-00-Rbac-Support-In-Kubernetes.md | 2 +- content/en/blog/_posts/2018-05-04-Announcing-Kubeflow-0.1.md | 2 +- content/en/blog/_posts/2018-05-05-hugo-migration.md | 2 +- content/en/blog/_posts/2018-06-06-4-years-of-k8s.md | 2 +- .../en/blog/_posts/2018-06-07-dynamic-ingress-kubernetes.md | 2 +- .../en/blog/_posts/2018-06-28-Airflow-Kubernetes-Operator.md | 4 ++-- content/en/blog/_posts/2018-10-08-support-for-azure-vmss.md | 4 ++-- content/en/docs/concepts/storage/persistent-volumes.md | 2 +- content/en/docs/contribute/intermediate.md | 2 +- content/en/docs/setup/on-premises-metal/krib.md | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/content/en/blog/_posts/2017-04-00-Rbac-Support-In-Kubernetes.md b/content/en/blog/_posts/2017-04-00-Rbac-Support-In-Kubernetes.md index 0641951b25..26d8b40186 100644 --- a/content/en/blog/_posts/2017-04-00-Rbac-Support-In-Kubernetes.md +++ b/content/en/blog/_posts/2017-04-00-Rbac-Support-In-Kubernetes.md @@ -23,7 +23,7 @@ Based on where the Kubernetes community is focusing their development efforts, g **Basic Concepts** -The are a few basic ideas behind RBAC that are foundational in understanding it. At its core, RBAC is a way of granting users granular access to [Kubernetes API resources](https://kubernetes.io/docs/api-reference/v1.6/). +There are a few basic ideas behind RBAC that are foundational in understanding it. At its core, RBAC is a way of granting users granular access to [Kubernetes API resources](https://kubernetes.io/docs/api-reference/v1.6/). [![](https://1.bp.blogspot.com/-v6KLs1tT_xI/WOa0anGP4sI/AAAAAAAABBo/KIgYfp8PjusuykUVTfgu9-2uKj_wXo4lwCLcB/s400/rbac1.png)](https://1.bp.blogspot.com/-v6KLs1tT_xI/WOa0anGP4sI/AAAAAAAABBo/KIgYfp8PjusuykUVTfgu9-2uKj_wXo4lwCLcB/s1600/rbac1.png) diff --git a/content/en/blog/_posts/2018-05-04-Announcing-Kubeflow-0.1.md b/content/en/blog/_posts/2018-05-04-Announcing-Kubeflow-0.1.md index d7483c2318..2b23ac523b 100644 --- a/content/en/blog/_posts/2018-05-04-Announcing-Kubeflow-0.1.md +++ b/content/en/blog/_posts/2018-05-04-Announcing-Kubeflow-0.1.md @@ -94,7 +94,7 @@ If you’d like to try out Kubeflow, we have a number of options for you: 1. You can use sample walkthroughs hosted on [Katacoda](https://www.katacoda.com/kubeflow) 2. You can follow a guided tutorial with existing models from the [examples repository](https://github.com/kubeflow/examples). These include the [Github Issue Summarization](https://github.com/kubeflow/examples/tree/master/github_issue_summarization), [MNIST](https://github.com/kubeflow/examples/tree/master/mnist) and [Reinforcement Learning with Agents](https://github.com/kubeflow/examples/tree/master/agents). -3. You can start a cluster on your own and try your own model. Any Kubernetes conformant cluster will support Kubeflow including those from contributors [Caicloud](https://www.prnewswire.com/news-releases/caicloud-releases-its-kubernetes-based-cluster-as-a-service-product-claas-20-and-the-first-tensorflow-as-a-service-taas-11-while-closing-6m-series-a-funding-300418071.html), [Canonical](https://jujucharms.com/canonical-kubernetes/), [Google](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-container-cluster), [Heptio](https://heptio.com/products/kubernetes-subscription/), [Mesosphere](https://github.com/mesosphere/dcos-kubernetes-quickstart), [Microsoft](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough), [IBM](https://console.bluemix.net/docs/containers/cs_tutorials.html#cs_cluster_tutorial), [Red Hat/Openshift ](https://docs.openshift.com/container-platform/3.3/install_config/install/quick_install.html#install-config-install-quick-install)and [Weaveworks](https://www.weave.works/product/cloud/). +3. You can start a cluster on your own and try your own model. Any Kubernetes conformant cluster will support Kubeflow including those from contributors [Caicloud](https://www.prnewswire.com/news-releases/caicloud-releases-its-kubernetes-based-cluster-as-a-service-product-claas-20-and-the-first-tensorflow-as-a-service-taas-11-while-closing-6m-series-a-funding-300418071.html), [Canonical](https://jujucharms.com/canonical-kubernetes/), [Google](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-container-cluster), [Heptio](https://heptio.com/products/kubernetes-subscription/), [Mesosphere](https://github.com/mesosphere/dcos-kubernetes-quickstart), [Microsoft](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough), [IBM](https://console.bluemix.net/docs/containers/cs_tutorials.html#cs_cluster_tutorial), [Red Hat/Openshift ](https://docs.openshift.com/container-platform/3.3/install_config/install/quick_install.html#install-config-install-quick-install)and [Weaveworks](https://www.weave.works/product/cloud/). There were also a number of sessions at KubeCon + CloudNativeCon EU 2018 covering Kubeflow. The links to the talks are here; the associated videos will be posted in the coming days. diff --git a/content/en/blog/_posts/2018-05-05-hugo-migration.md b/content/en/blog/_posts/2018-05-05-hugo-migration.md index 2ac271684b..194cf7b519 100644 --- a/content/en/blog/_posts/2018-05-05-hugo-migration.md +++ b/content/en/blog/_posts/2018-05-05-hugo-migration.md @@ -20,7 +20,7 @@ If you encounter any site weirdness or broken formatting, please [open an issue] ### Multilingual support is coming -Our initial search focused on finding a language selector that would play well with Jekyll. The projects we found weren't well-supported, and a prototype of one plugin made it clear that a Jekyll implementation would create technical debt that drained resources away from the quality of the docs. +Our initial search focused on finding a language selector that would play well with Jekyll. The projects we found weren't well-supported, and a prototype of one plugin made it clear that a Jekyll implementation would create technical debt that drained resources away from the quality of the docs. We chose Hugo after months of research and conversations with other open source translation projects. (Special thanks to [Andreas Jaeger](https://twitter.com/jaegerandi?lang=da) and his experience at OpenStack). Hugo's [multilingual support](https://gohugo.io/content-management/multilingual/) is built in and easy. diff --git a/content/en/blog/_posts/2018-06-06-4-years-of-k8s.md b/content/en/blog/_posts/2018-06-06-4-years-of-k8s.md index dc71dd0d39..7e6f60383a 100644 --- a/content/en/blog/_posts/2018-06-06-4-years-of-k8s.md +++ b/content/en/blog/_posts/2018-06-06-4-years-of-k8s.md @@ -23,6 +23,6 @@ The version of Kubernetes at that point was really just a shadow of what it was
-But, however raw, that modest start was enough to pique the interest of a community that started strong and has only gotten stronger. Over the past four years Kubernetes has exceeded the expectations of all of us that were there early on. We owe the Kubernetes community a huge debt. The success the project has seen is based not just on code and technology but also the way that an amazing group of people have come together to create something special. The best expression of this is the [set of Kubernetes values](https://github.com/kubernetes/steering/blob/master/values.md) that Sarah Novotny helped curate. +But, however raw, that modest start was enough to pique the interest of a community that started strong and has only gotten stronger. Over the past four years Kubernetes has exceeded the expectations of all of us that were there early on. We owe the Kubernetes community a huge debt. The success the project has seen is based not just on code and technology but also the way that an amazing group of people have come together to create something special. The best expression of this is the [set of Kubernetes values](https://github.com/kubernetes/steering/blob/master/values.md) that Sarah Novotny helped curate. Here is to another 4 years and beyond! 🎉🎉🎉 diff --git a/content/en/blog/_posts/2018-06-07-dynamic-ingress-kubernetes.md b/content/en/blog/_posts/2018-06-07-dynamic-ingress-kubernetes.md index 43f771257a..ccddbdfb77 100644 --- a/content/en/blog/_posts/2018-06-07-dynamic-ingress-kubernetes.md +++ b/content/en/blog/_posts/2018-06-07-dynamic-ingress-kubernetes.md @@ -64,7 +64,7 @@ In this example, the “test” service uses Ambassador annotations to dynamical ![kubeflow-ambassador](/images/blog/2018-06-01-dynamic-ingress-kubernetes/kubeflow-ambassador.png) -With Ambassador, Kubeflow manages routing easily with Kubernetes annotations. Kubeflow configures a single ingress object that directs traffic to Ambassador, then creates services with Ambassador annotations as needed to direct traffic to specific backends. For example, when deploying TensorFlow services, Kubeflow creates and and annotates a K8s service so that the model will be served at https:///models//. Kubeflow can also use the Envoy Proxy to do the actual L7 routing. Using Ambassador, Kubeflow takes advantage of additional routing configuration like URL rewriting and method-based routing. +With Ambassador, Kubeflow manages routing easily with Kubernetes annotations. Kubeflow configures a single ingress object that directs traffic to Ambassador, then creates services with Ambassador annotations as needed to direct traffic to specific backends. For example, when deploying TensorFlow services, Kubeflow creates and annotates a K8s service so that the model will be served at https:///models//. Kubeflow can also use the Envoy Proxy to do the actual L7 routing. Using Ambassador, Kubeflow takes advantage of additional routing configuration like URL rewriting and method-based routing. If you’re interested in using Ambassador with Kubeflow, the standard Kubeflow install automatically installs and configures Ambassador. diff --git a/content/en/blog/_posts/2018-06-28-Airflow-Kubernetes-Operator.md b/content/en/blog/_posts/2018-06-28-Airflow-Kubernetes-Operator.md index 48add086c1..bb77bd1e5a 100644 --- a/content/en/blog/_posts/2018-06-28-Airflow-Kubernetes-Operator.md +++ b/content/en/blog/_posts/2018-06-28-Airflow-Kubernetes-Operator.md @@ -135,7 +135,7 @@ production_task = KubernetesPodOperator(namespace='default', # Launching a test deployment -Since the Kubernetes Operator is not yet released, we haven't released an official [helm](https://helm.sh/) chart or operator (however both are currently in progress). However, we are including instructions for a basic deployment below and are actively looking for foolhardy beta testers to try this new feature. To try this system out please follow these steps: +Since the Kubernetes Operator is not yet released, we haven't released an official [helm](https://helm.sh/) chart or operator (however both are currently in progress). However, we are including instructions for a basic deployment below and are actively looking for foolhardy beta testers to try this new feature. To try this system out please follow these steps: ## Step 1: Set your kubeconfig to point to a kubernetes cluster @@ -157,7 +157,7 @@ Before we move on, let's discuss what these commands are doing: ### sed -ie "s/KubernetesExecutor/LocalExecutor/g" scripts/ci/kubernetes/kube/configmaps.yaml -The Kubernetes Executor is another Airflow feature that allows for dynamic allocation of tasks as idempotent pods. The reason we are switching this to the LocalExecutor is simply to introduce one feature at a time. You are more then welcome to skip this step if you would like to try the Kubernetes Executor, however we will go into more detail in a future article. +The Kubernetes Executor is another Airflow feature that allows for dynamic allocation of tasks as idempotent pods. The reason we are switching this to the LocalExecutor is simply to introduce one feature at a time. You are more then welcome to skip this step if you would like to try the Kubernetes Executor, however we will go into more detail in a future article. ### ./scripts/ci/kubernetes/Docker/build.sh diff --git a/content/en/blog/_posts/2018-10-08-support-for-azure-vmss.md b/content/en/blog/_posts/2018-10-08-support-for-azure-vmss.md index 79875cc21d..64bae6d87b 100644 --- a/content/en/blog/_posts/2018-10-08-support-for-azure-vmss.md +++ b/content/en/blog/_posts/2018-10-08-support-for-azure-vmss.md @@ -89,7 +89,7 @@ acs-engine deploy --subscription-id \ API model file provides various configurations which acs-engine uses to create a cluster. The API model here [[5]](https://github.com/Azure/acs-engine/blob/master/examples/kubernetes-vmss/kubernetes.json) gives a good starting configuration to setup the VMSS cluster. -Once a VMSS cluster is created, here are some of the steps you can run to understand more about the cluster setup. Here is the output of kubectl get nodes from a cluster created using the above command: +Once a VMSS cluster is created, here are some of the steps you can run to understand more about the cluster setup. Here is the output of kubectl get nodes from a cluster created using the above command: ``` $ kubectl get nodes @@ -170,7 +170,7 @@ The decision to make a scale up is based on pods which remain unscheduled and a Cluster Autoscaler is available as an add-on with acs-engine. The following link [[15]](https://github.com/Azure/acs-engine/tree/master/examples/addons/cluster-autoscaler) has an example configuration file used to deploy autoscaler with acs-engine. The following link [[8]](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/azure/README.md) provides details on manual step by step way to do the same. -In acs-engine case we use the the regular command line to deploy: +In acs-engine case we use the regular command line to deploy: ``` acs-engine deploy --subscription-id \ diff --git a/content/en/docs/concepts/storage/persistent-volumes.md b/content/en/docs/concepts/storage/persistent-volumes.md index 688a142f66..2baa9d7f8b 100644 --- a/content/en/docs/concepts/storage/persistent-volumes.md +++ b/content/en/docs/concepts/storage/persistent-volumes.md @@ -8,7 +8,7 @@ title: Persistent Volumes feature: title: Storage orchestration description: > - Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker. + Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker. content_template: templates/concept weight: 20 diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index 499e699d56..dbc3293e23 100644 --- a/content/en/docs/contribute/intermediate.md +++ b/content/en/docs/contribute/intermediate.md @@ -643,7 +643,7 @@ your question to the `#kubernetes-users` channel in [Kubernetes slack](http://slack.k8s.io/). You can also search resources like [Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes) -for answers to similar questions. +for answers to similar questions. You can also open issues for Kubernetes functionality in https://github.com/kubernetes/kubernetes. diff --git a/content/en/docs/setup/on-premises-metal/krib.md b/content/en/docs/setup/on-premises-metal/krib.md index 10dcbe99bf..e37376e464 100644 --- a/content/en/docs/setup/on-premises-metal/krib.md +++ b/content/en/docs/setup/on-premises-metal/krib.md @@ -83,7 +83,7 @@ You can add servers into your cluster by adding the cluster Profile to the serve ### Cleanup your cluster (for developers) -You can reset your cluster and wipe out all configuration and TLS certificates using the the `krib-reset-cluster` Workflow on any of the servers in the cluster. +You can reset your cluster and wipe out all configuration and TLS certificates using the `krib-reset-cluster` Workflow on any of the servers in the cluster. {{< caution >}} **Caution:** When running the reset Workflow, be sure not to accidentally target your production cluster! From 0e46d4682d1388385a376a24cc0ed4d989ae5e00 Mon Sep 17 00:00:00 2001 From: Stephan Fabel <1530330+sfabel@users.noreply.github.com> Date: Wed, 24 Oct 2018 00:07:37 +0200 Subject: [PATCH 17/62] remove "recommended" from Minikube description (#10701) Now that there are multiple predictable and stable upstream solutions to deploy Kubernetes, we should not express an opinion as to which one to recommend without also mentioning the reasons for it. --- content/en/docs/setup/pick-right-solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/pick-right-solution.md b/content/en/docs/setup/pick-right-solution.md index 882563a57c..1686f43f4c 100644 --- a/content/en/docs/setup/pick-right-solution.md +++ b/content/en/docs/setup/pick-right-solution.md @@ -32,7 +32,7 @@ a Kubernetes cluster from scratch. ## Local-machine Solutions -* [Minikube](/docs/setup/minikube/) is the recommended method for creating a local, single-node Kubernetes cluster for development and testing. Setup is completely automated and doesn't require a cloud provider account. +* [Minikube](/docs/setup/minikube/) is a method for creating a local, single-node Kubernetes cluster for development and testing. Setup is completely automated and doesn't require a cloud provider account. * [microk8s](https://microk8s.io/) provides a single command installation of the latest Kubernetes release on a local machine for development and testing. Setup is quick, fast (~30 sec) and supports many plugins including Istio with a single command. From 8eaf56e8f11db309af4855fdeb74da27173c6bc5 Mon Sep 17 00:00:00 2001 From: "Claudia J.Kang" Date: Wed, 24 Oct 2018 07:56:57 +0900 Subject: [PATCH 18/62] Update l10n READMEs link (#10669) * New link about Localizing Kubernetes Documentation This commit adds a link about Localizing Kubernetes Documentation in README.md's Contributing to the docs section. Fixed : #10485, #10622 Signed-off-by: Claudia J. Kang * Update l10n guide about adding l10n README files. This commit adds a link process about the l10n README files in localization.md. Fixed : #10485, #10622 Signed-off-by: Claudia J. Kang --- README.md | 1 + content/en/docs/contribute/localization.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b92d82f7aa..9824646028 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ For more information about contributing to the Kubernetes documentation, see: * [Staging Your Documentation Changes](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally) * [Using Page Templates](http://kubernetes.io/docs/contribute/style/page-templates/) * [Documentation Style Guide](http://kubernetes.io/docs/contribute/style/style-guide/) +* [Localizing Kubernetes Documentation](https://kubernetes.io/docs/contribute/localization/) ## Running the site locally using Docker diff --git a/content/en/docs/contribute/localization.md b/content/en/docs/contribute/localization.md index 90d3c51ccf..716f2279d2 100644 --- a/content/en/docs/contribute/localization.md +++ b/content/en/docs/contribute/localization.md @@ -100,7 +100,7 @@ Provide guidance to localization contributors in the localized `README-**.md` fi - A point of contact for the localization project - Any information specific to the localization -After you create the localized README, add a link to the file from the main English file, [`README.md`] and include contact information in English. You can provide a GitHub ID, email address, [Slack channel](https://slack.com/), or other method of contact. +After you create the localized README, add a link to the file from the main English file, [`README.md`'s Localizing Kubernetes Documentation] and include contact information in English. You can provide a GitHub ID, email address, [Slack channel](https://slack.com/), or other method of contact. ## Translating documents From da3fbcf3ed1a767901dd1e8fd8596a6f54953a98 Mon Sep 17 00:00:00 2001 From: Martin Hoefling Date: Wed, 24 Oct 2018 05:25:19 +0200 Subject: [PATCH 19/62] Fix incorrect naming of the flag (#10713) The flag is called --resolv-conf. --- content/en/docs/setup/independent/kubelet-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/independent/kubelet-integration.md b/content/en/docs/setup/independent/kubelet-integration.md index 926d26e1a9..cd56d6c4b4 100644 --- a/content/en/docs/setup/independent/kubelet-integration.md +++ b/content/en/docs/setup/independent/kubelet-integration.md @@ -70,7 +70,7 @@ For more details on the ComponentConfig have a look at [this section](#configure Some hosts require specific kubelet configurations, due to differences in hardware, operating system, networking, or other host-specific parameters. The following list provides a few examples. -- The path to the DNS resolution file, as specified by the `--resolve-conf` kubelet +- The path to the DNS resolution file, as specified by the `--resolv-conf` kubelet configuration flag, may differ among operating systems, or depending on whether you are using `systemd-resolved`. If this path is wrong, DNS resolution will fail on the Node whose kubelet is configured incorrectly. From 9cd91a59e506ef346b228817b8f832801870686d Mon Sep 17 00:00:00 2001 From: James George Date: Wed, 24 Oct 2018 18:55:14 +0530 Subject: [PATCH 20/62] Fixes :+1: (#10688) --- sass/_base.sass | 3 +- static/css/case-study-styles.css | 2046 +++++++++++++++++++++++++++++- static/css/styles.css | 1948 +++++++++++++++++++++++++++- 3 files changed, 3992 insertions(+), 5 deletions(-) diff --git a/sass/_base.sass b/sass/_base.sass index daa7107b62..0ea6413527 100644 --- a/sass/_base.sass +++ b/sass/_base.sass @@ -558,7 +558,8 @@ section #vendorStrip line-height: 44px max-width: 100% - overflow-x: scroll + overflow-x: auto + -webkit-overflow-scrolling: touch ul float: none diff --git a/static/css/case-study-styles.css b/static/css/case-study-styles.css index 39d66cd772..2747d92683 100644 --- a/static/css/case-study-styles.css +++ b/static/css/case-study-styles.css @@ -1,2 +1,2044 @@ -html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol ul li{list-style:none}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}hr{background-color:#999}h2{margin-bottom:15px !important}.subhead{padding-bottom:2% !important;padding-top:0% !important}.details{margin-left:1.9%;padding-right:5%;font-size:16px !important;padding-bottom:2% !important}.section1{margin-bottom:3%}.section1 .cols{width:80% !important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52% !important;font-weight:300 !important}.section1 .cols .col2{width:46% !important}.banner2text{width:63%;padding-top:10%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0% !important;float:initial !important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial !important}body footer{background-color:#585858 !important}.section1{float:left !important}.banner1{padding-left:11.9% !important}.banner2{float:initial !important;padding-bottom:2% !important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial !important}@media screen and (max-width: 910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0% !important;padding-top:0% !important}.banner3{width:100% !important}}@media screen and (max-width: 780px){.section1 .cols{width:100% !important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100% !important;margin-left:0% !important}.fullcol{width:90% !important;margin-left:5% !important}.banner1{padding-left:10% !important;margin-bottom:6% !important}.banner2text{padding-top:60% !important;padding-bottom:2% !important}}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} -/*# sourceMappingURL=case-study-styles.css.map */ +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +*, .button { + box-sizing: border-box; + font-family: "Roboto", sans-serif; + background: none; + margin: 0; + border: 0; } + +body { + font-family: "Roboto", sans-serif; } + +h1, h2, h5, p { + font-weight: 300; } + +h3, h4 { + font-weight: 400; } + +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +h1 { + font-size: 32px; + line-height: 40px; } + +h2 { + font-size: 28px; + line-height: 60px; } + +h3 { + font-size: 24px; + line-height: 32px; } + +h4 { + font-size: 20px; + line-height: 40px; } + +h5 { + font-size: 16px; + line-height: 36px; } + +p { + font-size: 14px; + line-height: 22px; } + +section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + +header { + height: 80px; } + +.nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + +#hamburger { + width: 50px; + height: 50px; } + +#mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + +#hero { + padding-top: 80px; } + +#docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + +#vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + +body { + background-color: white; } + +section { + position: relative; + background-color: white; } + +section main, header main, footer main { + position: relative; + margin: auto; } + +p { + font-size: 14px; + font-weight: 400; } + +.button { + display: inline-block; + border-radius: 6px; + padding: 0 20px; + line-height: 40px; + color: white; + background-color: #3371e3; + text-decoration: none; } + +#cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 8888; + background-color: transparent; + box-shadow: 0 0 0 transparent; + overflow: hidden; + transition: 0.3s; + text-align: center; } + +.logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(/images/nav_logo.svg); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } + +#docs .flyout-button { + position: fixed; + top: 20px; + left: 20px; + width: 50px; + height: 50px; + background-image: url(/images/toc_icon.png); + background-position: center center; + background-repeat: no-repeat; + background-size: auto; + border-radius: 50%; + transition: 0.3s; + z-index: 99999; } + +#docs.open-nav .flyout-button { + display: none; } + +#docs .logo { + position: absolute; + top: 40px; + left: 50%; + transform: translate(-50%, -50%); + display: block; + width: 45px; + height: 44px; + background-image: url(/images/favicon.png); } + +#docs.flip-nav .flyout-button { + background-image: url(/images/toc_icon_grey.png); } + +.nav-buttons { + float: right; } + +#viewDocs, #tryKubernetes { + display: none; } + +#viewDocs { + border: 2px solid white; + background-color: transparent; + transition: 0.3s; } + #viewDocs:hover { + background-color: white; + color: #303030; } + +#tryKubernetes { + width: 0; + padding: 0 0; + border: 1px solid transparent; + background-color: transparent; + text-align: center; + white-space: nowrap; + vertical-align: middle; + overflow: hidden; + transition: 0.3s; } + +#hamburger { + display: inline-block; + position: relative; + vertical-align: middle; + padding: 0; + border: 0; + background: none; } + #hamburger div, #hamburger:before, #hamburger:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: #3371e3; + transition: 0.3s; + content: ""; } + #hamburger div { + top: calc(50% - 1px); } + #hamburger:before { + top: 24%; } + #hamburger:after { + bottom: 24%; } + #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { + background-color: white; } + +#mainNav h5 { + color: #3371e3; + font-weight: normal; } + +#mainNav main { + white-space: nowrap; + overflow: hidden; + clear: both; } + +#mainNav .nav-box { + float: left; + white-space: normal; } + +#mainNav h3 a { + color: #3371e3; + text-decoration: none; } + +ul.global-nav { + display: none; } + ul.global-nav li { + display: inline-block; + margin-right: 14px; } + ul.global-nav li a { + color: #fff; + font-weight: 400; + padding: 0; + position: relative; } + ul.global-nav li a.active:after { + position: absolute; + width: 100%; + height: 2px; + content: ''; + bottom: -4px; + left: 0; + background: #fff; } + ul.global-nav li a .ui-icon { + filter: brightness(0) invert(1); } + ul.global-nav li ul { + display: none; + position: fixed; + top: 40px; + text-align: left; } + ul.global-nav li ul li { + display: block; + height: 28px; } + ul.global-nav li ul li a { + background: #303030; + color: #fff; + padding: 7px; } + ul.global-nav li ul li:last-child a { + border-radius: 7px; } + ul.global-nav li:hover ul { + display: block; } + +.flip-nav ul.global-nav li a, .open-nav ul.global-nav li a { + color: #303030; } + .flip-nav ul.global-nav li a .ui-icon, .open-nav ul.global-nav li a .ui-icon { + filter: brightness(0); } + +.flip-nav ul.global-nav li ul li a { + background: #fff; + color: #303030; } + +.flip-nav ul.global-nav li a.active:after, .flip-nav ul.global-nav li ul li a.active:after, .open-nav ul.global-nav li a.active:after { + background: #3371e3; } + +.flip-nav header { + background-color: white; } + +.open-nav body { + overflow: hidden; } + +.open-nav #cellophane { + display: block; + z-index: 9998; } + +.open-nav header { + background-color: #e8e8e8; + z-index: 9999; } + +.open-nav #hamburger div { + opacity: 0; } + +.open-nav #hamburger:before, .open-nav #hamburger:after { + left: 12px; + transform-origin: 0 1px; } + +.open-nav #hamburger:before { + transform: rotate(45deg); } + +.open-nav #hamburger:after { + transform: rotate(-45deg); } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + width: auto; + padding: 0 20px; + background-color: #3371e3; + border-color: #3371e3; } + +.flip-nav header, .open-nav header { + box-shadow: 0 1px 2px #4c4c4c; } + +.flip-nav #viewDocs, .open-nav #viewDocs { + border-color: #303030; + color: #303030; } + .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { + border-color: #3371e3; + background-color: #3371e3; + color: white; } + +.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { + background-color: #303030; } + +#hero { + background-image: url(/images/texture.png); + background-color: #303030; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; } + #hero.bot-bar:after { + display: block; + margin-bottom: -20px; + height: 8px; + width: 100%; + background-color: rgba(255, 255, 255, 0.1); + content: ''; } + #hero.no-sub h5 { + display: none; } + #hero.no-sub h1 { + margin-bottom: 20px; } + +#home #hero:after { + display: none; } + +#vendorStrip { + position: relative; + background-color: rgba(255, 255, 255, 0.1); + font-weight: 100; + white-space: nowrap; + text-align: center; } + #vendorStrip li a { + color: rgba(255, 255, 255, 0.5); } + #vendorStrip li a.YAH { + color: white; + position: relative; } + +footer { + width: 100%; + background-image: url(/images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav a { + width: 100%; + text-align: center; + display: inline-block; + margin: 10px 0; + font-size: 24px; + font-weight: 300; + color: white; + text-decoration: none; } + footer .social { + margin: 20px 0; } + footer .social div { + text-align: center; + margin-bottom: 20px; } + footer .social div:last-child { + margin: 30px 0; } + footer .social span { + display: block; + margin-bottom: 8px; } + footer .social input { + text-align: center; } + +#search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + +.social a { + display: inline-block; + background-image: url(/images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + .social a.button { + background-image: none; + width: auto; + height: auto; } + .social a.button:hover { + color: #3371e3; } + +a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + +a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + +a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + +a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + +a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + +a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + +#viewDocs { + display: none; } + +section { + background-color: white; } + +#hero { + background-color: #303030; } + #hero h5 { + margin: 20px 0; + line-height: 28px; } + +#vendorStrip { + position: relative; } + #vendorStrip ul { + float: left; } + #vendorStrip li { + display: inline-block; + height: 100%; } + #vendorStrip a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; } + #vendorStrip li + li { + margin-left: 0; } + +#docs #vendorStrip { + line-height: 44px; + max-width: 100%; + overflow-x: scroll; } + #docs #vendorStrip ul { + float: none; } + #docs #vendorStrip #searchBox { + float: none; + display: block; + width: 80%; + margin: 0 auto; + height: 44px; + line-height: 44px; + position: relative; } + #docs #vendorStrip #searchBox:before { + position: absolute; + width: 15px; + height: 15px; + content: ''; + right: 8px; + top: 7px; + background-image: url(/images/search-icon.svg); + background-repeat: no-repeat; + background-size: 100% 100%; + z-index: 1; } + #docs #vendorStrip #search { + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-size: 16px; + vertical-align: top; + background: #fff; + border: none; + border-radius: 4px; + position: relative; } + +#encyclopedia { + position: relative; + padding: 50px 20px 20px 20px; + overflow: hidden; + font-size: 14px; } + #encyclopedia > div { + height: 100%; } + +#docsToc { + position: fixed; + background-color: white; + top: 0; + left: 0; + width: 0; + height: 100vh; + overflow: hidden; + padding: 50px 0; + z-index: 999999; + transition: 0.3s; } + #docsToc .yah > .title { + background-color: #f7f7f7; + border-left: 3px solid #3371e3; + padding: 7.5px 10px 7.5px 18px; + margin-left: -3px; + color: #3371e3; } + +.open-toc body { + overflow: hidden; } + +.open-toc #docsToc { + padding: 50px 20px; + width: 400px; + max-width: 100vw; + overflow-y: auto; } + +.pi-accordion > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; } + +.pi-accordion > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; } + +.pi-accordion .item { + overflow: hidden; } + +.pi-accordion .title { + color: #303030; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; } + .pi-accordion .title:hover { + color: #3371e3; } + +.pi-accordion a.item > .title { + color: black; } + .pi-accordion a.item > .title:hover { + color: #3371e3; } + +.pi-accordion div.item > .title:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent #3371e3; + transform: rotate(0deg); + transition: 0.3s; } + +.pi-accordion .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; } + +.pi-accordion .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; } + +.pi-accordion .item.on > .title:before { + transform: rotate(90deg); } + +.pi-accordion .item.on > .wrapper > .content { + opacity: 1; } + +dt { + margin-bottom: 8px; } + +dd { + margin-bottom: 16px; } + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; } + .pi-pushmenu.on { + opacity: 1; } + .pi-pushmenu .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); } + .pi-pushmenu .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; } + .pi-pushmenu.on .sled { + width: 400px; + max-width: 100vw; } + .pi-pushmenu .top-bar { + height: 0; + line-height: 60px; + background-color: #444; } + .pi-pushmenu ul { + margin-top: 25px; } + .pi-pushmenu li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; } + .pi-pushmenu a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-family: "Roboto", sans-serif; + font-size: 20px; + color: #3371e3; } + .pi-pushmenu .button { + background: none; + padding: 0; } + .pi-pushmenu ul ul { + padding: 0 20px; } + .pi-pushmenu ul ul li { + min-height: 40px; } + .pi-pushmenu ul ul a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: #555555; } + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; } + .push-menu-close-button:before, .push-menu-close-button:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; } + .push-menu-close-button:before { + transform: rotate(45deg); } + .push-menu-close-button:after { + transform: rotate(-45deg); } + +#docsContent { + position: relative; + float: right; + width: 100%; } + #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { + margin-top: 30px; } + #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + #docsContent h1, #docsContent h2 { + border-bottom: 1px solid #cccccc; } + #docsContent h1 { + font-size: 32px; + padding-right: 60px; } + #docsContent h2 { + font-size: 28px; } + #docsContent h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + #docsContent h4 { + font-size: 20px; + margin-bottom: 0px; } + #docsContent h5, #docsContent h6 { + font-size: 16px; + font-weight: 500; } + #docsContent p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + #docsContent p + p { + margin-top: 10px; } + #docsContent code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + #docsContent a code { + color: #3371e3; + text-decoration: underline; } + #docsContent pre .pi, #docsContent pre .s { + margin: 0; + padding: 0; } + #docsContent .highlight code span, #docsContent code, #docsContent pre code { + font-family: "Roboto Mono", monospace; } + #docsContent code, #docsContent pre code { + color: #303030; } + #docsContent pre code { + padding: 0; } + #docsContent pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + #docsContent h1 code, #docsContent h2 code, #docsContent h3 code, #docsContent h4 code, #docsContent h5 code, #docsContent h6 code { + font-size: inherit; + background-color: transparent; } + #docsContent .includecode { + table-layout: fixed; } + #docsContent .includecode, #docsContent .includecode th, #docsContent .includecode td { + padding: 0 !important; } + #docsContent .includecode th { + text-align: right !important; + padding: 10px !important; } + #docsContent .includecode th a, #docsContent .includecode th a code { + color: white !important; + background-color: transparent !important; } + #docsContent .includecode pre { + margin: 0 !important; } + #docsContent ul li { + list-style: disc; } + #docsContent ol ul li { + list-style: none; } + #docsContent ol li { + list-style: decimal; } + #docsContent ul, #docsContent ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + #docsContent ul ul, #docsContent ol ol, #docsContent ul ol, #docsContent ol ul { + margin: 0.75em 0; } + #docsContent li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + #docsContent table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + #docsContent thead, #docsContent tr:nth-child(even) { + background-color: #f7f7f7; } + #docsContent thead { + background-color: #555; + color: white; } + #docsContent th, #docsContent td { + padding: 8px; + text-align: left; + margin: 0; } + #docsContent th { + font-weight: normal; } + #docsContent td { + font-size: 0.85em; } + #docsContent #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + #docsContent #markdown-toc, #docsContent #TableOfContents { + margin-bottom: 20px; } + #docsContent #markdown-toc ul, #docsContent #markdown-toc li, #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disc; + color: #3371e3; } + #docsContent #markdown-toc ul, #docsContent #TableOfContents ul { + padding: 0 15px; + margin: 0; } + #docsContent #markdown-toc li, #docsContent #TableOfContents li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + #docsContent #markdown-toc a, #docsContent #TableOfContents a { + position: relative; + color: #3371e3; + font-weight: 700; } + #docsContent img { + max-width: 100%; } + #docsContent #TableOfContents > ul > li { + list-style: none; } + #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disk; } + +.fixed footer { + position: fixed; + bottom: 0; } + +#miceType { + clear: both; + font-size: 11px; + line-height: 18px; + color: #aaa; } + +html.search #docsContent { + position: relative; + float: none; + width: 90%; + max-width: 850px; + margin: 0 auto; } + html.search #docsContent #editPageButton { + display: none; } + html.search #docsContent table { + border: 0; + margin-bottom: 0; } + html.search #docsContent td { + padding: 0; } + html.search #docsContent h1 { + margin-bottom: 0; + border-bottom: 0; + padding-bottom: 0; + padding-left: 8px; } + +#home.flip-nav .logo, #home.open-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#home #hero { + margin-bottom: 0; + padding-bottom: 1px; } + #home #hero main { + padding: 0 10px; + margin-bottom: 30px; } + #home #hero #vendorStrip { + display: none; } + +#oceanNodes { + padding-top: 60px; + padding-bottom: 60px; } + #oceanNodes a { + color: #3371e3; } + #oceanNodes main { + margin-bottom: 60px; + min-height: 160px; } + #oceanNodes .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; } + #oceanNodes .image-wrapper img { + width: 100%; + max-width: 160px; } + #oceanNodes main:first-child .image-wrapper { + max-width: 100%; } + #oceanNodes main:first-child .image-wrapper img { + max-width: 491px; } + #oceanNodes h3 { + margin-bottom: 30px; } + +#video { + height: 200px; } + +#video { + width: 100%; + position: relative; + background-position: center center; + background-size: cover; } + #video > .light-text { + display: none; + position: absolute; + top: 50%; + left: 75%; + width: 525px; + padding-right: 80px; + transform: translate(-50%, -50%); + color: white; } + #video h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; } + #video p { + margin-bottom: 20px; } + #video #desktopKCButton { + position: relative; + font-size: 18px; + background-color: #303030; + border-radius: 8px; + color: #ffffff; + padding: 20px 10px 20px 10px; } + #video #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: #3371e3; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; } + #video #desktopShowVideoButton:before { + content: ""; + position: absolute; + position: absolute; + top: 50%; + left: 40px; + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent #3371e3; } + #video #mobileShowVideoButton { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; } + #video #mobileShowVideoButton:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; } + +#videoPlayer { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.9); + display: none; } + #videoPlayer iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80vw; + height: 45vw; + max-width: 142.22222vh; + max-height: 80vh; } + #videoPlayer #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; } + #videoPlayer #closeButton:before, #videoPlayer #closeButton:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; } + #videoPlayer #closeButton:before { + transform: rotate(45deg); } + #videoPlayer #closeButton:after { + transform: rotate(-45deg); } + #videoPlayer #closeButton:hover { + border-color: white; } + +#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-image: url(/images/cncf-color.png); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; } + +#kubeweekly { + background-color: #f7f7f7; + padding-top: 60px; + padding-bottom: 140px; + background-size: auto; + font-family: "Roboto Mono", monospace !important; + font-size: 24px; + font-weight: bold; } + #kubeweekly h5 { + font-size: 20px; } + +.subscribe-button { + border-radius: 6px; + padding: 0 20px; + line-height: 31px; + color: white; + background-color: blue; + text-decoration: none; + font-size: 14px; } + +#features { + padding-top: 140px; + background-color: #f7f7f7; + background-image: url(/images/wheel.png); + background-position: center 60px; + background-repeat: no-repeat; + background-size: auto; } + +.feature-box { + width: 100%; + overflow: hidden; + clear: both; } + .feature-box h4 { + line-height: normal; + margin-bottom: 15px; } + .feature-box > div:first-child { + float: left; } + .feature-box > div:last-child { + float: right; } + +#features h3 { + margin-bottom: 20px; } + +#features .feature-box { + margin-bottom: 0; } + #features .feature-box > div { + width: 100%; + margin-bottom: 40px; } + +#community.open-nav .logo, #community.flip-nav .logo, .gridPage.open-nav .logo, .gridPage.flip-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#community #hero, .gridPage #hero { + padding-bottom: 20px; } + +#community #mainContent, .gridPage #mainContent { + padding: 20px 0; } + #community #mainContent main, .gridPage #mainContent main { + max-width: none; } + #community #mainContent a, .gridPage #mainContent a { + color: #3371e3; } + #community #mainContent .content, .gridPage #mainContent .content { + margin-bottom: 30px; + padding: 30px 0; } + #community #mainContent .content h1, #community #mainContent .content h2, #community #mainContent .content h3, #community #mainContent .content h4, #community #mainContent .content h5, #community #mainContent .content h6, #community #mainContent .content p, .gridPage #mainContent .content h1, .gridPage #mainContent .content h2, .gridPage #mainContent .content h3, .gridPage #mainContent .content h4, .gridPage #mainContent .content h5, .gridPage #mainContent .content h6, .gridPage #mainContent .content p { + line-height: normal; + max-width: 1200px; + padding: 0 20px; + margin: 0 auto 20px; } + #community #mainContent .content:nth-child(even), .gridPage #mainContent .content:nth-child(even) { + background-color: #f7f7f7; } + #community #mainContent .company-logos, .gridPage #mainContent .company-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .company-logos img, .gridPage #mainContent .company-logos img { + width: auto; + margin: 10px; + background-color: #f7f7f7; } + #community #mainContent .partner-logos, .gridPage #mainContent .partner-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .partner-logos img, .gridPage #mainContent .partner-logos img { + width: auto; + margin: 10px; + background-color: #ffffff; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.24), 0 0 5px rgba(0, 0, 0, 0.12); } + #community #mainContent #calendarMeetings, .gridPage #mainContent #calendarMeetings { + position: relative; + width: 80vw; + height: 60vw; + max-width: 1200px; + max-height: 900px; + margin: 20px auto; } + #community #mainContent #calendarEvents, .gridPage #mainContent #calendarEvents { + position: relative; + width: 80vw; + height: 30vw; + max-width: 1200px; + max-height: 450px; + margin: 20px auto; } + #community #mainContent iframe, .gridPage #mainContent iframe { + position: absolute; + border: 0; + width: 100%; + height: 100%; } + +.ui-icon { + display: inline-block !important; } + +#feature-state-dialog-link { + text-decoration: none !important; + padding: 5px !important; } + #feature-state-dialog-link a:visited { + color: #454545 !important; } + #feature-state-dialog-link a code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +#feature-state-dialog { + background: #fff !important; + border: 1px solid #ddd !important; + padding: 0.5em 1em !important; } + #feature-state-dialog ul, #feature-state-dialog li { + list-style: disc !important; + margin: 4px 12px !important; } + #feature-state-dialog p { + margin: 8px 0px !important; } + #feature-state-dialog code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +.ui-dialog { + background: #f7f7f7 !important; + padding: 0.5em; } + +.ui-dialog-content { + position: relative; + float: right; + width: 100%; } + .ui-dialog-content * + h2, .ui-dialog-content * + h3, .ui-dialog-content * + h4, .ui-dialog-content * + h5, .ui-dialog-content * + h6 { + margin-top: 30px; } + .ui-dialog-content h1, .ui-dialog-content h2, .ui-dialog-content h3, .ui-dialog-content h4, .ui-dialog-content h5, .ui-dialog-content h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + .ui-dialog-content h1:before, .ui-dialog-content h2:before, .ui-dialog-content h3:before, .ui-dialog-content h4:before, .ui-dialog-content h5:before, .ui-dialog-content h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + .ui-dialog-content h1, .ui-dialog-content h2 { + border-bottom: 1px solid #cccccc; } + .ui-dialog-content h1 { + font-size: 32px; + padding-right: 60px; } + .ui-dialog-content h2 { + font-size: 28px; } + .ui-dialog-content h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + .ui-dialog-content h4 { + font-size: 20px; + margin-bottom: 0px; } + .ui-dialog-content h5, .ui-dialog-content h6 { + font-size: 16px; + font-weight: 500; } + .ui-dialog-content p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + .ui-dialog-content p + p { + margin-top: 10px; } + .ui-dialog-content code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + .ui-dialog-content a code { + color: #3371e3; + text-decoration: underline; } + .ui-dialog-content pre .pi, .ui-dialog-content pre .s { + margin: 0; + padding: 0; } + .ui-dialog-content .highlight code span, .ui-dialog-content code, .ui-dialog-content pre code { + font-family: "Roboto Mono", monospace; } + .ui-dialog-content code, .ui-dialog-content pre code { + color: #303030; } + .ui-dialog-content pre code { + padding: 0; } + .ui-dialog-content pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + .ui-dialog-content h1 code, .ui-dialog-content h2 code, .ui-dialog-content h3 code, .ui-dialog-content h4 code, .ui-dialog-content h5 code, .ui-dialog-content h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + .ui-dialog-content .includecode { + table-layout: fixed; } + .ui-dialog-content .includecode, .ui-dialog-content .includecode th, .ui-dialog-content .includecode td { + padding: 0 !important; } + .ui-dialog-content .includecode th { + text-align: right !important; + padding: 10px !important; } + .ui-dialog-content .includecode th a, .ui-dialog-content .includecode th a code { + color: white !important; + background-color: transparent !important; } + .ui-dialog-content .includecode pre { + margin: 0 !important; } + .ui-dialog-content ul li { + list-style: disc; } + .ui-dialog-content ol li { + list-style: decimal; } + .ui-dialog-content ul, .ui-dialog-content ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + .ui-dialog-content ul ul, .ui-dialog-content ol ol, .ui-dialog-content ul ol, .ui-dialog-content ol ul { + margin: 0.75em 0; } + .ui-dialog-content li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + .ui-dialog-content table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + .ui-dialog-content thead, .ui-dialog-content tr:nth-child(even) { + background-color: #f7f7f7; } + .ui-dialog-content thead { + background-color: #555; + color: white; } + .ui-dialog-content th, .ui-dialog-content td { + padding: 8px; + text-align: left; + margin: 0; } + .ui-dialog-content th { + font-weight: normal; } + .ui-dialog-content td { + font-size: 0.85em; } + .ui-dialog-content #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + .ui-dialog-content #markdown-toc { + margin-bottom: 20px; } + .ui-dialog-content #markdown-toc ul, .ui-dialog-content #markdown-toc li { + list-style: disc; + color: #3371e3; } + .ui-dialog-content #markdown-toc ul { + padding: 0 15px; + margin: 0; } + .ui-dialog-content #markdown-toc li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + .ui-dialog-content #markdown-toc a { + position: relative; + color: #3371e3; + font-weight: 700; } + .ui-dialog-content img { + max-width: 100%; } + .ui-dialog-content a { + text-decoration: underline; } + +.ui-dialog-buttonpane { + background: #f7f7f7 !important; } + +.ui-widget-header { + background: transparent !important; + background-color: transparent !important; + border: 0px !important; } + +.ui-tabs ul, .ui-tabs ol, .ui-tabs li { + padding: 0px !important; + list-style: none !important; + margin-bottom: 0px !important; + margin-left: 4px !important; } + +.ui-tabs-panel ul li { + list-style: disc !important; } + +.ui-tabs-panel ol li { + list-style: decimal !important; } + +.ui-widget-content { + border: 0px !important; } + .ui-widget-content table { + margin: 0px !important; } + +.ui-tabs .ui-tabs-panel { + border: 1px solid #ccc !important; } + +.ui-tabs-anchor { + text-decoration: none !important; } + +#talkToUs h3, #talkToUs h4 { + text-align: center; } + +#talkToUs h3 { + margin-bottom: 15px; } + +#talkToUs h4 { + line-height: normal; + margin-bottom: 50px; } + #talkToUs h4 br { + display: none; } + +#talkToUs #bigSocial { + overflow: hidden; } + #talkToUs #bigSocial div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; } + #talkToUs #bigSocial div:nth-child(1) { + background-image: url(/images/twitter_icon.png); } + #talkToUs #bigSocial div:nth-child(2) { + background-image: url(/images/github_icon.png); } + #talkToUs #bigSocial div:nth-child(3) { + background-image: url(/images/slack_icon.png); } + #talkToUs #bigSocial div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); } + #talkToUs #bigSocial div + div { + margin-top: 20px; + margin-left: 0; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; } + #talkToUs #bigSocial a, #talkToUs #bigSocial p { + text-align: center; + width: 100%; } + +#home #talkToUs main { + padding: 30px 0; } + +#home #talkToUs h5 { + font-size: 20px; } + +#home #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; } + #home #caseStudiesWrapper img { + padding-bottom: 1rem; } + #home #caseStudiesWrapper div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + margin-bottom: 60px; + padding-right: 1rem; + background-position: top center; } + #home #caseStudiesWrapper p { + font-size: 20px; } + #home #caseStudiesWrapper a { + position: absolute; + bottom: -30px; + left: 50%; + transform: translateX(-50%); + color: #3371e3; + font-weight: 400; } + +/* Google Search */ +.cse .gsc-control-cse, .gsc-control-cse { + padding: 0; } + +.gsc-control-cse table, .gsc-control-cse-en table { + margin: 0px !important; } + +.gsc-above-wrapper-area { + border-bottom: 0; } + +/* Bing Search */ +#bing-results-container { + margin-top: 30px; + margin-left: 20px; } + +.bing-result { + margin-bottom: 20px; } + +.bing-result-name a { + font-size: 16px; + color: #0000CC; } + +.bing-result-url { + color: #008000; + font-size: 13px; } + +.bing-result-snippet { + color: #000; + font-size: 11px; } + +#bing-pagination-container { + margin: 10px; + margin-left: 20px; } + +.bing-page-anchor { + text-decoration: none !important; + cursor: pointer; + color: #0000CC; + margin-right: 8px; } + +hr { + background-color: #999999; } + +h2 { + margin-bottom: 15px !important; } + +.subhead { + padding-bottom: 2% !important; + padding-top: 0% !important; } + +.details { + margin-left: 1.9%; + padding-right: 5%; + font-size: 16px !important; + padding-bottom: 2% !important; } + +.section1 { + margin-bottom: 3%; } + .section1 .cols { + width: 80% !important; + margin-left: 6.8%; + padding-top: 1.5%; } + .section1 .cols .col1 { + width: 52% !important; + font-weight: 300 !important; } + .section1 .cols .col2 { + width: 46% !important; } + +.banner2text { + width: 63%; + padding-top: 10%; + padding-left: 0% !important; + float: initial !important; + text-align: center; + margin: 0 auto; + position: relative; } + +.banner3text, .banner4text, .banner5text { + width: 63%; + padding-left: 0% !important; + float: initial !important; + text-align: center; + margin: 0 auto; + position: relative; } + +.fullcol { + float: initial !important; } + +body footer { + background-color: #585858 !important; } + +.section1 { + float: left !important; } + +.banner1 { + padding-left: 11.9% !important; } + +.banner2 { + float: initial !important; + padding-bottom: 2% !important; } + +footer { + padding: 0% 7%; } + +.banner4, .banner3, .banner5 { + float: initial !important; } + +@media screen and (max-width: 910px) { + .banner2text { + width: 47%; + padding-top: 45%; } + .details { + margin-left: 0%; + margin-bottom: 3%; } + .subhead { + padding-bottom: 0% !important; + padding-top: 0% !important; } + .banner3 { + width: 100% !important; } } + +@media screen and (max-width: 780px) { + .section1 .cols { + width: 100% !important; + margin-left: 0%; + padding-top: 5%; } + .section1 .cols .col1, .section1 .cols .col2 { + width: 100% !important; + margin-left: 0% !important; } + .fullcol { + width: 90% !important; + margin-left: 5% !important; } + .banner1 { + padding-left: 10% !important; + margin-bottom: 6% !important; } + .banner2text { + padding-top: 60% !important; + padding-bottom: 2% !important; } } + +@media screen and (min-width: 750px) { + h1 { + font-size: 32px; + line-height: 40px; } + h2 { + font-size: 28px; + line-height: 60px; } + h3 { + font-size: 24px; + line-height: 32px; } + h4 { + font-size: 20px; + line-height: 40px; } + h5 { + font-size: 16px; + line-height: 36px; } + p { + font-size: 14px; + line-height: 22px; } + section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + header { + height: 80px; } + .nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + #hamburger { + width: 50px; + height: 50px; } + #mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + .open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + #hero { + padding-top: 80px; } + #docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + #vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + p { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; } + h1 { + font-size: 36px; + line-height: 44px; } + h3 { + font-size: 28px; + line-height: 36px; } + h4 { + font-size: 24px; + line-height: 40px; } + #home #viewDocs, #home #tryKubernetes { + display: inline-block; } + #vendorStrip { + display: block; + text-align: center; } + #vendorStrip img { + max-height: 24px; + vertical-align: middle; + margin: 0 30px; } + #docs #vendorStrip li a { + font-size: 1em; + font-weight: normal; } + #docs #vendorStrip li li + li { + margin-left: 60px; } + #oceanNodes h3 { + text-align: left; + margin-bottom: 18px; } + #oceanNodes main { + position: relative; + clear: both; + display: table; + height: 160px; } + #oceanNodes main .content { + display: table-cell; + position: relative; + vertical-align: middle; } + #oceanNodes main .image-wrapper { + position: absolute; + top: 50%; + max-width: 25%; + max-height: 100%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(odd) { + padding-right: 210px; } + #oceanNodes main:nth-child(odd) .image-wrapper { + right: 0; } + #oceanNodes main:nth-child(even) { + padding-left: 210px; } + #oceanNodes main:nth-child(even) .image-wrapper { + left: 0; } + #oceanNodes main:nth-child(1) { + padding-right: 0; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: center; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: relative; + display: block; + float: none; + max-width: 100%; + transform: none; } + #oceanNodes main:nth-child(1) .content { + display: block; } + #oceanNodes main img { + width: 100%; } + #video { + height: 400px; + display: block; } + #video > .light-text { + display: block; } + #mobileShowVideoButton { + display: none; } + #features { + padding-bottom: 60px; } + #features .feature-box { + margin-bottom: 30px; } + #features .feature-box:last-child { + margin-bottom: 0; } + #features h3 { + margin-bottom: 40px; } + #features .feature-box > div { + width: 45%; + margin-bottom: 0; } + #talkToUs #bigSocial div { + width: calc(50% - 15px); } + #talkToUs #bigSocial div + div { + margin-top: 0; } + #talkToUs #bigSocial div:nth-child(2) { + margin-left: 20px; } + #talkToUs #bigSocial div:nth-child(3) { + margin-top: 20px; } + #talkToUs #bigSocial div:nth-child(4) { + margin-top: 20px; + margin-left: 20px; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-weight: 400; + text-decoration: none; } + footer nav { + text-align: center; } + footer nav a { + width: 30%; + padding: 0 20px; } + footer .social { + text-align: center; } + footer .social div { + display: inline-block; } + footer .social div:last-child { + display: block; + margin: 0; } + footer .social span { + display: inline-block; + margin-right: 10px; } + footer .social input { + text-align: left; } + #home #caseStudiesWrapper div { + width: 48%; } } + +@media screen and (min-width: 1025px) { + #hamburger { + display: none; } + ul.global-nav { + display: inline-block; } + #docs #vendorStrip #searchBox:before { + top: 15px; } + #vendorStrip { + height: 44px; + line-height: 44px; } + #vendorStrip li a.YAH:after { + content: ""; + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 4px; + background-color: #3371e3; } + #vendorStrip #searchBox { + float: right; } + #home #hero #vendorStrip { + display: block; } + #docs #hero h1, #docs #hero h5 { + text-align: left; } + #docs #hero #vendorStrip ul { + float: left; } + #docs #hero #vendorStrip #searchBox { + float: right; + width: 250px; } + #docs #hero #vendorStrip #search { + vertical-align: middle; } + #docs .flyout-button { + display: none; } + #docs .logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(../images/nav_logo.svg); } + #docs.flip-nav .logo, #docs.open-nav .logo { + background-image: url(../images/nav_logo2.svg); } + #encyclopedia { + padding: 50px 50px 100px 100px; + clear: both; } + #docsToc { + position: relative; + float: left; + padding: 0 20px; + left: 0; + width: 350px; + z-index: auto; } + #docsToc .push-menu-close-button { + display: none; } + #docsContent { + width: calc(100% - 400px); } + #docsContent #editPageButton { + right: -25px; } + section main, header main, footer main { + max-width: 1200px; } + header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5, + #community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5 { + padding-left: 100px; + padding-right: 100px; } + #vendorStrip { + padding-right: 10px; } + #home section main, #home header main, #home footer main { + max-width: 1000px; } + #oceanNodes main { + position: relative; + max-width: 830px; } + #oceanNodes main:nth-child(1) { + max-width: 1000px; + padding-right: 475px; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: left; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: absolute; + max-width: 48%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(1) .image-wrapper img { + max-width: 425px; } + #video { + height: 550px; + position: relative; + background-position: center center; + background-size: cover; } + #talkToUs h4 br { + display: block; } + #talkToUs #bigSocial div { + width: calc(25% - 18px); } + #talkToUs #bigSocial div + div { + margin-left: 20px; } + footer { + width: 100%; + background-image: url(../images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav { + overflow: hidden; + margin-bottom: 20px; } + footer nav a { + width: 16.65%; + float: left; + font-size: 24px; + font-weight: 300; + white-space: nowrap; } + footer .social { + padding: 0 30px; + max-width: 1200px; } + footer .social div { + float: left; } + footer .social div:last-child { + float: right; } + #search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + .social a { + display: inline-block; + background-image: url(../images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + #community #hero, .gridPage #hero { + text-align: left; } + #community #hero h1, .gridPage #hero h1 { + padding: 20px 100px; } + #community #tryKubernetes, .gridPage #tryKubernetes { + width: auto; + background-color: #3371e3; + padding: 0 20px; } + #bigSocial div { + width: calc(25% - 18px); } + #home #caseStudiesWrapper div { + width: 24%; + min-height: 260px; } } + +@media screen and (min-width: 1300px) { + #vendorStrip { + padding-right: 100px; } } + +@media screen and (min-width: 456px) { + #vendorStrip li + li { + margin-left: 20px; } } diff --git a/static/css/styles.css b/static/css/styles.css index 2cb5ddd886..a48e6900d6 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -1,2 +1,1946 @@ -html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:"Roboto",sans-serif;background:none;margin:0;border:0}body{font-family:"Roboto",sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:none}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%, -50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0 0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:none}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:normal}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:"";bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon,.open-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:auto;padding:0 20px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,0.1);content:""}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,0.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,0.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:bold}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px;max-width:100%;overflow-x:scroll}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:"";right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:none;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px !important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:"Roboto",sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:none;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0px}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:"Roboto Mono",monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0 !important}#docsContent .includecode th{text-align:right !important;padding:10px !important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff !important;background-color:transparent !important}#docsContent .includecode pre{margin:0 !important}#docsContent ul li{list-style:disc}#docsContent ol ul li{list-style:none}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:normal}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%, -50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px 20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%, -50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,0.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80vw;height:45vw;max-width:142.2222222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#kubeweekly{background-color:#f7f7f7;padding-top:60px;padding-bottom:140px;background-size:auto;font-family:"Roboto Mono",monospace !important;font-size:24px;font-weight:bold}#kubeweekly h5{font-size:20px}.subscribe-button{border-radius:6px;padding:0 20px;line-height:31px;color:#fff;background-color:blue;text-decoration:none;font-size:14px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,0.24),0 0 5px rgba(0,0,0,0.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block !important}#feature-state-dialog-link{text-decoration:none !important;padding:5px !important}#feature-state-dialog-link a:visited{color:#454545 !important}#feature-state-dialog-link a code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}#feature-state-dialog{background:#fff !important;border:1px solid #ddd !important;padding:.5em 1em !important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc !important;margin:4px 12px !important}#feature-state-dialog p{margin:8px 0px !important}#feature-state-dialog code{display:inline-block !important;box-sizing:border-box !important;background-color:#f7f7f7 !important;color:#303030 !important;font-family:"Roboto Mono",monospace !important;vertical-align:baseline !important;font-size:14px !important;font-weight:bold !important;padding:0px 4px !important}.ui-dialog{background:#f7f7f7 !important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0px}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:"Roboto Mono",monospace;vertical-align:baseline;font-size:14px;font-weight:bold;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:"Roboto Mono",monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0 !important}.ui-dialog-content .includecode th{text-align:right !important;padding:10px !important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff !important;background-color:transparent !important}.ui-dialog-content .includecode pre{margin:0 !important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:normal}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7 !important}.ui-widget-header{background:transparent !important;background-color:transparent !important;border:0px !important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0px !important;list-style:none !important;margin-bottom:0px !important;margin-left:4px !important}.ui-tabs-panel ul li{list-style:disc !important}.ui-tabs-panel ol li{list-style:decimal !important}.ui-widget-content{border:0px !important}.ui-widget-content table{margin:0px !important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc !important}.ui-tabs-anchor{text-decoration:none !important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper img{padding-bottom:1rem}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;margin-bottom:60px;padding-right:1rem;background-position:top center}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0px !important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none !important;cursor:pointer;color:#00c;margin-right:8px}@media screen and (min-width: 750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20% / 3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:normal}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table;height:160px}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width: 1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1000px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1000px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width: 1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width: 456px){#vendorStrip li+li{margin-left:20px}} -/*# sourceMappingURL=styles.css.map */ +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +*, .button { + box-sizing: border-box; + font-family: "Roboto", sans-serif; + background: none; + margin: 0; + border: 0; } + +body { + font-family: "Roboto", sans-serif; } + +h1, h2, h5, p { + font-weight: 300; } + +h3, h4 { + font-weight: 400; } + +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +h1 { + font-size: 32px; + line-height: 40px; } + +h2 { + font-size: 28px; + line-height: 60px; } + +h3 { + font-size: 24px; + line-height: 32px; } + +h4 { + font-size: 20px; + line-height: 40px; } + +h5 { + font-size: 16px; + line-height: 36px; } + +p { + font-size: 14px; + line-height: 22px; } + +section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + +header { + height: 80px; } + +.nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + +#hamburger { + width: 50px; + height: 50px; } + +#mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + +#hero { + padding-top: 80px; } + +#docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + +#vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + +body { + background-color: white; } + +section { + position: relative; + background-color: white; } + +section main, header main, footer main { + position: relative; + margin: auto; } + +p { + font-size: 14px; + font-weight: 400; } + +.button { + display: inline-block; + border-radius: 6px; + padding: 0 20px; + line-height: 40px; + color: white; + background-color: #3371e3; + text-decoration: none; } + +#cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 8888; + background-color: transparent; + box-shadow: 0 0 0 transparent; + overflow: hidden; + transition: 0.3s; + text-align: center; } + +.logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(/images/nav_logo.svg); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } + +#docs .flyout-button { + position: fixed; + top: 20px; + left: 20px; + width: 50px; + height: 50px; + background-image: url(/images/toc_icon.png); + background-position: center center; + background-repeat: no-repeat; + background-size: auto; + border-radius: 50%; + transition: 0.3s; + z-index: 99999; } + +#docs.open-nav .flyout-button { + display: none; } + +#docs .logo { + position: absolute; + top: 40px; + left: 50%; + transform: translate(-50%, -50%); + display: block; + width: 45px; + height: 44px; + background-image: url(/images/favicon.png); } + +#docs.flip-nav .flyout-button { + background-image: url(/images/toc_icon_grey.png); } + +.nav-buttons { + float: right; } + +#viewDocs, #tryKubernetes { + display: none; } + +#viewDocs { + border: 2px solid white; + background-color: transparent; + transition: 0.3s; } + #viewDocs:hover { + background-color: white; + color: #303030; } + +#tryKubernetes { + width: 0; + padding: 0 0; + border: 1px solid transparent; + background-color: transparent; + text-align: center; + white-space: nowrap; + vertical-align: middle; + overflow: hidden; + transition: 0.3s; } + +#hamburger { + display: inline-block; + position: relative; + vertical-align: middle; + padding: 0; + border: 0; + background: none; } + #hamburger div, #hamburger:before, #hamburger:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: #3371e3; + transition: 0.3s; + content: ""; } + #hamburger div { + top: calc(50% - 1px); } + #hamburger:before { + top: 24%; } + #hamburger:after { + bottom: 24%; } + #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { + background-color: white; } + +#mainNav h5 { + color: #3371e3; + font-weight: normal; } + +#mainNav main { + white-space: nowrap; + overflow: hidden; + clear: both; } + +#mainNav .nav-box { + float: left; + white-space: normal; } + +#mainNav h3 a { + color: #3371e3; + text-decoration: none; } + +ul.global-nav { + display: none; } + ul.global-nav li { + display: inline-block; + margin-right: 14px; } + ul.global-nav li a { + color: #fff; + font-weight: 400; + padding: 0; + position: relative; } + ul.global-nav li a.active:after { + position: absolute; + width: 100%; + height: 2px; + content: ''; + bottom: -4px; + left: 0; + background: #fff; } + ul.global-nav li a .ui-icon { + filter: brightness(0) invert(1); } + ul.global-nav li ul { + display: none; + position: fixed; + top: 40px; + text-align: left; } + ul.global-nav li ul li { + display: block; + height: 28px; } + ul.global-nav li ul li a { + background: #303030; + color: #fff; + padding: 7px; } + ul.global-nav li ul li:last-child a { + border-radius: 7px; } + ul.global-nav li:hover ul { + display: block; } + +.flip-nav ul.global-nav li a, .open-nav ul.global-nav li a { + color: #303030; } + .flip-nav ul.global-nav li a .ui-icon, .open-nav ul.global-nav li a .ui-icon { + filter: brightness(0); } + +.flip-nav ul.global-nav li ul li a { + background: #fff; + color: #303030; } + +.flip-nav ul.global-nav li a.active:after, .flip-nav ul.global-nav li ul li a.active:after, .open-nav ul.global-nav li a.active:after { + background: #3371e3; } + +.flip-nav header { + background-color: white; } + +.open-nav body { + overflow: hidden; } + +.open-nav #cellophane { + display: block; + z-index: 9998; } + +.open-nav header { + background-color: #e8e8e8; + z-index: 9999; } + +.open-nav #hamburger div { + opacity: 0; } + +.open-nav #hamburger:before, .open-nav #hamburger:after { + left: 12px; + transform-origin: 0 1px; } + +.open-nav #hamburger:before { + transform: rotate(45deg); } + +.open-nav #hamburger:after { + transform: rotate(-45deg); } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + width: auto; + padding: 0 20px; + background-color: #3371e3; + border-color: #3371e3; } + +.flip-nav header, .open-nav header { + box-shadow: 0 1px 2px #4c4c4c; } + +.flip-nav #viewDocs, .open-nav #viewDocs { + border-color: #303030; + color: #303030; } + .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { + border-color: #3371e3; + background-color: #3371e3; + color: white; } + +.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { + background-color: #303030; } + +#hero { + background-image: url(/images/texture.png); + background-color: #303030; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; } + #hero.bot-bar:after { + display: block; + margin-bottom: -20px; + height: 8px; + width: 100%; + background-color: rgba(255, 255, 255, 0.1); + content: ''; } + #hero.no-sub h5 { + display: none; } + #hero.no-sub h1 { + margin-bottom: 20px; } + +#home #hero:after { + display: none; } + +#vendorStrip { + position: relative; + background-color: rgba(255, 255, 255, 0.1); + font-weight: 100; + white-space: nowrap; + text-align: center; } + #vendorStrip li a { + color: rgba(255, 255, 255, 0.5); } + #vendorStrip li a.YAH { + color: white; + position: relative; } + +footer { + width: 100%; + background-image: url(/images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav a { + width: 100%; + text-align: center; + display: inline-block; + margin: 10px 0; + font-size: 24px; + font-weight: 300; + color: white; + text-decoration: none; } + footer .social { + margin: 20px 0; } + footer .social div { + text-align: center; + margin-bottom: 20px; } + footer .social div:last-child { + margin: 30px 0; } + footer .social span { + display: block; + margin-bottom: 8px; } + footer .social input { + text-align: center; } + +#search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + +.social a { + display: inline-block; + background-image: url(/images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + .social a.button { + background-image: none; + width: auto; + height: auto; } + .social a.button:hover { + color: #3371e3; } + +a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + +a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + +a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + +a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + +a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + +a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + +#viewDocs { + display: none; } + +section { + background-color: white; } + +#hero { + background-color: #303030; } + #hero h5 { + margin: 20px 0; + line-height: 28px; } + +#vendorStrip { + position: relative; } + #vendorStrip ul { + float: left; } + #vendorStrip li { + display: inline-block; + height: 100%; } + #vendorStrip a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; } + #vendorStrip li + li { + margin-left: 0; } + +#docs #vendorStrip { + line-height: 44px; + max-width: 100%; + overflow-x: scroll; } + #docs #vendorStrip ul { + float: none; } + #docs #vendorStrip #searchBox { + float: none; + display: block; + width: 80%; + margin: 0 auto; + height: 44px; + line-height: 44px; + position: relative; } + #docs #vendorStrip #searchBox:before { + position: absolute; + width: 15px; + height: 15px; + content: ''; + right: 8px; + top: 7px; + background-image: url(/images/search-icon.svg); + background-repeat: no-repeat; + background-size: 100% 100%; + z-index: 1; } + #docs #vendorStrip #search { + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-size: 16px; + vertical-align: top; + background: #fff; + border: none; + border-radius: 4px; + position: relative; } + +#encyclopedia { + position: relative; + padding: 50px 20px 20px 20px; + overflow: hidden; + font-size: 14px; } + #encyclopedia > div { + height: 100%; } + +#docsToc { + position: fixed; + background-color: white; + top: 0; + left: 0; + width: 0; + height: 100vh; + overflow: hidden; + padding: 50px 0; + z-index: 999999; + transition: 0.3s; } + #docsToc .yah > .title { + background-color: #f7f7f7; + border-left: 3px solid #3371e3; + padding: 7.5px 10px 7.5px 18px; + margin-left: -3px; + color: #3371e3; } + +.open-toc body { + overflow: hidden; } + +.open-toc #docsToc { + padding: 50px 20px; + width: 400px; + max-width: 100vw; + overflow-y: auto; } + +.pi-accordion > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; } + +.pi-accordion > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; } + +.pi-accordion .item { + overflow: hidden; } + +.pi-accordion .title { + color: #303030; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; } + .pi-accordion .title:hover { + color: #3371e3; } + +.pi-accordion a.item > .title { + color: black; } + .pi-accordion a.item > .title:hover { + color: #3371e3; } + +.pi-accordion div.item > .title:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent #3371e3; + transform: rotate(0deg); + transition: 0.3s; } + +.pi-accordion .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; } + +.pi-accordion .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; } + +.pi-accordion .item.on > .title:before { + transform: rotate(90deg); } + +.pi-accordion .item.on > .wrapper > .content { + opacity: 1; } + +dt { + margin-bottom: 8px; } + +dd { + margin-bottom: 16px; } + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; } + .pi-pushmenu.on { + opacity: 1; } + .pi-pushmenu .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); } + .pi-pushmenu .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; } + .pi-pushmenu.on .sled { + width: 400px; + max-width: 100vw; } + .pi-pushmenu .top-bar { + height: 0; + line-height: 60px; + background-color: #444; } + .pi-pushmenu ul { + margin-top: 25px; } + .pi-pushmenu li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; } + .pi-pushmenu a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-family: "Roboto", sans-serif; + font-size: 20px; + color: #3371e3; } + .pi-pushmenu .button { + background: none; + padding: 0; } + .pi-pushmenu ul ul { + padding: 0 20px; } + .pi-pushmenu ul ul li { + min-height: 40px; } + .pi-pushmenu ul ul a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: #555555; } + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; } + .push-menu-close-button:before, .push-menu-close-button:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; } + .push-menu-close-button:before { + transform: rotate(45deg); } + .push-menu-close-button:after { + transform: rotate(-45deg); } + +#docsContent { + position: relative; + float: right; + width: 100%; } + #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { + margin-top: 30px; } + #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + #docsContent h1, #docsContent h2 { + border-bottom: 1px solid #cccccc; } + #docsContent h1 { + font-size: 32px; + padding-right: 60px; } + #docsContent h2 { + font-size: 28px; } + #docsContent h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + #docsContent h4 { + font-size: 20px; + margin-bottom: 0px; } + #docsContent h5, #docsContent h6 { + font-size: 16px; + font-weight: 500; } + #docsContent p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + #docsContent p + p { + margin-top: 10px; } + #docsContent code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + #docsContent a code { + color: #3371e3; + text-decoration: underline; } + #docsContent pre .pi, #docsContent pre .s { + margin: 0; + padding: 0; } + #docsContent .highlight code span, #docsContent code, #docsContent pre code { + font-family: "Roboto Mono", monospace; } + #docsContent code, #docsContent pre code { + color: #303030; } + #docsContent pre code { + padding: 0; } + #docsContent pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + #docsContent h1 code, #docsContent h2 code, #docsContent h3 code, #docsContent h4 code, #docsContent h5 code, #docsContent h6 code { + font-size: inherit; + background-color: transparent; } + #docsContent .includecode { + table-layout: fixed; } + #docsContent .includecode, #docsContent .includecode th, #docsContent .includecode td { + padding: 0 !important; } + #docsContent .includecode th { + text-align: right !important; + padding: 10px !important; } + #docsContent .includecode th a, #docsContent .includecode th a code { + color: white !important; + background-color: transparent !important; } + #docsContent .includecode pre { + margin: 0 !important; } + #docsContent ul li { + list-style: disc; } + #docsContent ol ul li { + list-style: none; } + #docsContent ol li { + list-style: decimal; } + #docsContent ul, #docsContent ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + #docsContent ul ul, #docsContent ol ol, #docsContent ul ol, #docsContent ol ul { + margin: 0.75em 0; } + #docsContent li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + #docsContent table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + #docsContent thead, #docsContent tr:nth-child(even) { + background-color: #f7f7f7; } + #docsContent thead { + background-color: #555; + color: white; } + #docsContent th, #docsContent td { + padding: 8px; + text-align: left; + margin: 0; } + #docsContent th { + font-weight: normal; } + #docsContent td { + font-size: 0.85em; } + #docsContent #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + #docsContent #markdown-toc, #docsContent #TableOfContents { + margin-bottom: 20px; } + #docsContent #markdown-toc ul, #docsContent #markdown-toc li, #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disc; + color: #3371e3; } + #docsContent #markdown-toc ul, #docsContent #TableOfContents ul { + padding: 0 15px; + margin: 0; } + #docsContent #markdown-toc li, #docsContent #TableOfContents li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + #docsContent #markdown-toc a, #docsContent #TableOfContents a { + position: relative; + color: #3371e3; + font-weight: 700; } + #docsContent img { + max-width: 100%; } + #docsContent #TableOfContents > ul > li { + list-style: none; } + #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disk; } + +.fixed footer { + position: fixed; + bottom: 0; } + +#miceType { + clear: both; + font-size: 11px; + line-height: 18px; + color: #aaa; } + +html.search #docsContent { + position: relative; + float: none; + width: 90%; + max-width: 850px; + margin: 0 auto; } + html.search #docsContent #editPageButton { + display: none; } + html.search #docsContent table { + border: 0; + margin-bottom: 0; } + html.search #docsContent td { + padding: 0; } + html.search #docsContent h1 { + margin-bottom: 0; + border-bottom: 0; + padding-bottom: 0; + padding-left: 8px; } + +#home.flip-nav .logo, #home.open-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#home #hero { + margin-bottom: 0; + padding-bottom: 1px; } + #home #hero main { + padding: 0 10px; + margin-bottom: 30px; } + #home #hero #vendorStrip { + display: none; } + +#oceanNodes { + padding-top: 60px; + padding-bottom: 60px; } + #oceanNodes a { + color: #3371e3; } + #oceanNodes main { + margin-bottom: 60px; + min-height: 160px; } + #oceanNodes .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; } + #oceanNodes .image-wrapper img { + width: 100%; + max-width: 160px; } + #oceanNodes main:first-child .image-wrapper { + max-width: 100%; } + #oceanNodes main:first-child .image-wrapper img { + max-width: 491px; } + #oceanNodes h3 { + margin-bottom: 30px; } + +#video { + height: 200px; } + +#video { + width: 100%; + position: relative; + background-position: center center; + background-size: cover; } + #video > .light-text { + display: none; + position: absolute; + top: 50%; + left: 75%; + width: 525px; + padding-right: 80px; + transform: translate(-50%, -50%); + color: white; } + #video h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; } + #video p { + margin-bottom: 20px; } + #video #desktopKCButton { + position: relative; + font-size: 18px; + background-color: #303030; + border-radius: 8px; + color: #ffffff; + padding: 20px 10px 20px 10px; } + #video #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: #3371e3; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; } + #video #desktopShowVideoButton:before { + content: ""; + position: absolute; + position: absolute; + top: 50%; + left: 40px; + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent #3371e3; } + #video #mobileShowVideoButton { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; } + #video #mobileShowVideoButton:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; } + +#videoPlayer { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.9); + display: none; } + #videoPlayer iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80vw; + height: 45vw; + max-width: 142.22222vh; + max-height: 80vh; } + #videoPlayer #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; } + #videoPlayer #closeButton:before, #videoPlayer #closeButton:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; } + #videoPlayer #closeButton:before { + transform: rotate(45deg); } + #videoPlayer #closeButton:after { + transform: rotate(-45deg); } + #videoPlayer #closeButton:hover { + border-color: white; } + +#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-image: url(/images/cncf-color.png); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; } + +#kubeweekly { + background-color: #f7f7f7; + padding-top: 60px; + padding-bottom: 140px; + background-size: auto; + font-family: "Roboto Mono", monospace !important; + font-size: 24px; + font-weight: bold; } + #kubeweekly h5 { + font-size: 20px; } + +.subscribe-button { + border-radius: 6px; + padding: 0 20px; + line-height: 31px; + color: white; + background-color: blue; + text-decoration: none; + font-size: 14px; } + +#features { + padding-top: 140px; + background-color: #f7f7f7; + background-image: url(/images/wheel.png); + background-position: center 60px; + background-repeat: no-repeat; + background-size: auto; } + +.feature-box { + width: 100%; + overflow: hidden; + clear: both; } + .feature-box h4 { + line-height: normal; + margin-bottom: 15px; } + .feature-box > div:first-child { + float: left; } + .feature-box > div:last-child { + float: right; } + +#features h3 { + margin-bottom: 20px; } + +#features .feature-box { + margin-bottom: 0; } + #features .feature-box > div { + width: 100%; + margin-bottom: 40px; } + +#community.open-nav .logo, #community.flip-nav .logo, .gridPage.open-nav .logo, .gridPage.flip-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#community #hero, .gridPage #hero { + padding-bottom: 20px; } + +#community #mainContent, .gridPage #mainContent { + padding: 20px 0; } + #community #mainContent main, .gridPage #mainContent main { + max-width: none; } + #community #mainContent a, .gridPage #mainContent a { + color: #3371e3; } + #community #mainContent .content, .gridPage #mainContent .content { + margin-bottom: 30px; + padding: 30px 0; } + #community #mainContent .content h1, #community #mainContent .content h2, #community #mainContent .content h3, #community #mainContent .content h4, #community #mainContent .content h5, #community #mainContent .content h6, #community #mainContent .content p, .gridPage #mainContent .content h1, .gridPage #mainContent .content h2, .gridPage #mainContent .content h3, .gridPage #mainContent .content h4, .gridPage #mainContent .content h5, .gridPage #mainContent .content h6, .gridPage #mainContent .content p { + line-height: normal; + max-width: 1200px; + padding: 0 20px; + margin: 0 auto 20px; } + #community #mainContent .content:nth-child(even), .gridPage #mainContent .content:nth-child(even) { + background-color: #f7f7f7; } + #community #mainContent .company-logos, .gridPage #mainContent .company-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .company-logos img, .gridPage #mainContent .company-logos img { + width: auto; + margin: 10px; + background-color: #f7f7f7; } + #community #mainContent .partner-logos, .gridPage #mainContent .partner-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .partner-logos img, .gridPage #mainContent .partner-logos img { + width: auto; + margin: 10px; + background-color: #ffffff; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.24), 0 0 5px rgba(0, 0, 0, 0.12); } + #community #mainContent #calendarMeetings, .gridPage #mainContent #calendarMeetings { + position: relative; + width: 80vw; + height: 60vw; + max-width: 1200px; + max-height: 900px; + margin: 20px auto; } + #community #mainContent #calendarEvents, .gridPage #mainContent #calendarEvents { + position: relative; + width: 80vw; + height: 30vw; + max-width: 1200px; + max-height: 450px; + margin: 20px auto; } + #community #mainContent iframe, .gridPage #mainContent iframe { + position: absolute; + border: 0; + width: 100%; + height: 100%; } + +.ui-icon { + display: inline-block !important; } + +#feature-state-dialog-link { + text-decoration: none !important; + padding: 5px !important; } + #feature-state-dialog-link a:visited { + color: #454545 !important; } + #feature-state-dialog-link a code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +#feature-state-dialog { + background: #fff !important; + border: 1px solid #ddd !important; + padding: 0.5em 1em !important; } + #feature-state-dialog ul, #feature-state-dialog li { + list-style: disc !important; + margin: 4px 12px !important; } + #feature-state-dialog p { + margin: 8px 0px !important; } + #feature-state-dialog code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +.ui-dialog { + background: #f7f7f7 !important; + padding: 0.5em; } + +.ui-dialog-content { + position: relative; + float: right; + width: 100%; } + .ui-dialog-content * + h2, .ui-dialog-content * + h3, .ui-dialog-content * + h4, .ui-dialog-content * + h5, .ui-dialog-content * + h6 { + margin-top: 30px; } + .ui-dialog-content h1, .ui-dialog-content h2, .ui-dialog-content h3, .ui-dialog-content h4, .ui-dialog-content h5, .ui-dialog-content h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + .ui-dialog-content h1:before, .ui-dialog-content h2:before, .ui-dialog-content h3:before, .ui-dialog-content h4:before, .ui-dialog-content h5:before, .ui-dialog-content h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + .ui-dialog-content h1, .ui-dialog-content h2 { + border-bottom: 1px solid #cccccc; } + .ui-dialog-content h1 { + font-size: 32px; + padding-right: 60px; } + .ui-dialog-content h2 { + font-size: 28px; } + .ui-dialog-content h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + .ui-dialog-content h4 { + font-size: 20px; + margin-bottom: 0px; } + .ui-dialog-content h5, .ui-dialog-content h6 { + font-size: 16px; + font-weight: 500; } + .ui-dialog-content p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + .ui-dialog-content p + p { + margin-top: 10px; } + .ui-dialog-content code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + .ui-dialog-content a code { + color: #3371e3; + text-decoration: underline; } + .ui-dialog-content pre .pi, .ui-dialog-content pre .s { + margin: 0; + padding: 0; } + .ui-dialog-content .highlight code span, .ui-dialog-content code, .ui-dialog-content pre code { + font-family: "Roboto Mono", monospace; } + .ui-dialog-content code, .ui-dialog-content pre code { + color: #303030; } + .ui-dialog-content pre code { + padding: 0; } + .ui-dialog-content pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + .ui-dialog-content h1 code, .ui-dialog-content h2 code, .ui-dialog-content h3 code, .ui-dialog-content h4 code, .ui-dialog-content h5 code, .ui-dialog-content h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + .ui-dialog-content .includecode { + table-layout: fixed; } + .ui-dialog-content .includecode, .ui-dialog-content .includecode th, .ui-dialog-content .includecode td { + padding: 0 !important; } + .ui-dialog-content .includecode th { + text-align: right !important; + padding: 10px !important; } + .ui-dialog-content .includecode th a, .ui-dialog-content .includecode th a code { + color: white !important; + background-color: transparent !important; } + .ui-dialog-content .includecode pre { + margin: 0 !important; } + .ui-dialog-content ul li { + list-style: disc; } + .ui-dialog-content ol li { + list-style: decimal; } + .ui-dialog-content ul, .ui-dialog-content ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + .ui-dialog-content ul ul, .ui-dialog-content ol ol, .ui-dialog-content ul ol, .ui-dialog-content ol ul { + margin: 0.75em 0; } + .ui-dialog-content li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + .ui-dialog-content table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + .ui-dialog-content thead, .ui-dialog-content tr:nth-child(even) { + background-color: #f7f7f7; } + .ui-dialog-content thead { + background-color: #555; + color: white; } + .ui-dialog-content th, .ui-dialog-content td { + padding: 8px; + text-align: left; + margin: 0; } + .ui-dialog-content th { + font-weight: normal; } + .ui-dialog-content td { + font-size: 0.85em; } + .ui-dialog-content #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + .ui-dialog-content #markdown-toc { + margin-bottom: 20px; } + .ui-dialog-content #markdown-toc ul, .ui-dialog-content #markdown-toc li { + list-style: disc; + color: #3371e3; } + .ui-dialog-content #markdown-toc ul { + padding: 0 15px; + margin: 0; } + .ui-dialog-content #markdown-toc li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + .ui-dialog-content #markdown-toc a { + position: relative; + color: #3371e3; + font-weight: 700; } + .ui-dialog-content img { + max-width: 100%; } + .ui-dialog-content a { + text-decoration: underline; } + +.ui-dialog-buttonpane { + background: #f7f7f7 !important; } + +.ui-widget-header { + background: transparent !important; + background-color: transparent !important; + border: 0px !important; } + +.ui-tabs ul, .ui-tabs ol, .ui-tabs li { + padding: 0px !important; + list-style: none !important; + margin-bottom: 0px !important; + margin-left: 4px !important; } + +.ui-tabs-panel ul li { + list-style: disc !important; } + +.ui-tabs-panel ol li { + list-style: decimal !important; } + +.ui-widget-content { + border: 0px !important; } + .ui-widget-content table { + margin: 0px !important; } + +.ui-tabs .ui-tabs-panel { + border: 1px solid #ccc !important; } + +.ui-tabs-anchor { + text-decoration: none !important; } + +#talkToUs h3, #talkToUs h4 { + text-align: center; } + +#talkToUs h3 { + margin-bottom: 15px; } + +#talkToUs h4 { + line-height: normal; + margin-bottom: 50px; } + #talkToUs h4 br { + display: none; } + +#talkToUs #bigSocial { + overflow: hidden; } + #talkToUs #bigSocial div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; } + #talkToUs #bigSocial div:nth-child(1) { + background-image: url(/images/twitter_icon.png); } + #talkToUs #bigSocial div:nth-child(2) { + background-image: url(/images/github_icon.png); } + #talkToUs #bigSocial div:nth-child(3) { + background-image: url(/images/slack_icon.png); } + #talkToUs #bigSocial div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); } + #talkToUs #bigSocial div + div { + margin-top: 20px; + margin-left: 0; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; } + #talkToUs #bigSocial a, #talkToUs #bigSocial p { + text-align: center; + width: 100%; } + +#home #talkToUs main { + padding: 30px 0; } + +#home #talkToUs h5 { + font-size: 20px; } + +#home #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; } + #home #caseStudiesWrapper img { + padding-bottom: 1rem; } + #home #caseStudiesWrapper div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + margin-bottom: 60px; + padding-right: 1rem; + background-position: top center; } + #home #caseStudiesWrapper p { + font-size: 20px; } + #home #caseStudiesWrapper a { + position: absolute; + bottom: -30px; + left: 50%; + transform: translateX(-50%); + color: #3371e3; + font-weight: 400; } + +/* Google Search */ +.cse .gsc-control-cse, .gsc-control-cse { + padding: 0; } + +.gsc-control-cse table, .gsc-control-cse-en table { + margin: 0px !important; } + +.gsc-above-wrapper-area { + border-bottom: 0; } + +/* Bing Search */ +#bing-results-container { + margin-top: 30px; + margin-left: 20px; } + +.bing-result { + margin-bottom: 20px; } + +.bing-result-name a { + font-size: 16px; + color: #0000CC; } + +.bing-result-url { + color: #008000; + font-size: 13px; } + +.bing-result-snippet { + color: #000; + font-size: 11px; } + +#bing-pagination-container { + margin: 10px; + margin-left: 20px; } + +.bing-page-anchor { + text-decoration: none !important; + cursor: pointer; + color: #0000CC; + margin-right: 8px; } + +@media screen and (min-width: 750px) { + h1 { + font-size: 32px; + line-height: 40px; } + h2 { + font-size: 28px; + line-height: 60px; } + h3 { + font-size: 24px; + line-height: 32px; } + h4 { + font-size: 20px; + line-height: 40px; } + h5 { + font-size: 16px; + line-height: 36px; } + p { + font-size: 14px; + line-height: 22px; } + section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + header { + height: 80px; } + .nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + #hamburger { + width: 50px; + height: 50px; } + #mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + .open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + #hero { + padding-top: 80px; } + #docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + #vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + p { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; } + h1 { + font-size: 36px; + line-height: 44px; } + h3 { + font-size: 28px; + line-height: 36px; } + h4 { + font-size: 24px; + line-height: 40px; } + #home #viewDocs, #home #tryKubernetes { + display: inline-block; } + #vendorStrip { + display: block; + text-align: center; } + #vendorStrip img { + max-height: 24px; + vertical-align: middle; + margin: 0 30px; } + #docs #vendorStrip li a { + font-size: 1em; + font-weight: normal; } + #docs #vendorStrip li li + li { + margin-left: 60px; } + #oceanNodes h3 { + text-align: left; + margin-bottom: 18px; } + #oceanNodes main { + position: relative; + clear: both; + display: table; + height: 160px; } + #oceanNodes main .content { + display: table-cell; + position: relative; + vertical-align: middle; } + #oceanNodes main .image-wrapper { + position: absolute; + top: 50%; + max-width: 25%; + max-height: 100%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(odd) { + padding-right: 210px; } + #oceanNodes main:nth-child(odd) .image-wrapper { + right: 0; } + #oceanNodes main:nth-child(even) { + padding-left: 210px; } + #oceanNodes main:nth-child(even) .image-wrapper { + left: 0; } + #oceanNodes main:nth-child(1) { + padding-right: 0; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: center; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: relative; + display: block; + float: none; + max-width: 100%; + transform: none; } + #oceanNodes main:nth-child(1) .content { + display: block; } + #oceanNodes main img { + width: 100%; } + #video { + height: 400px; + display: block; } + #video > .light-text { + display: block; } + #mobileShowVideoButton { + display: none; } + #features { + padding-bottom: 60px; } + #features .feature-box { + margin-bottom: 30px; } + #features .feature-box:last-child { + margin-bottom: 0; } + #features h3 { + margin-bottom: 40px; } + #features .feature-box > div { + width: 45%; + margin-bottom: 0; } + #talkToUs #bigSocial div { + width: calc(50% - 15px); } + #talkToUs #bigSocial div + div { + margin-top: 0; } + #talkToUs #bigSocial div:nth-child(2) { + margin-left: 20px; } + #talkToUs #bigSocial div:nth-child(3) { + margin-top: 20px; } + #talkToUs #bigSocial div:nth-child(4) { + margin-top: 20px; + margin-left: 20px; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-weight: 400; + text-decoration: none; } + footer nav { + text-align: center; } + footer nav a { + width: 30%; + padding: 0 20px; } + footer .social { + text-align: center; } + footer .social div { + display: inline-block; } + footer .social div:last-child { + display: block; + margin: 0; } + footer .social span { + display: inline-block; + margin-right: 10px; } + footer .social input { + text-align: left; } + #home #caseStudiesWrapper div { + width: 48%; } } + +@media screen and (min-width: 1025px) { + #hamburger { + display: none; } + ul.global-nav { + display: inline-block; } + #docs #vendorStrip #searchBox:before { + top: 15px; } + #vendorStrip { + height: 44px; + line-height: 44px; } + #vendorStrip li a.YAH:after { + content: ""; + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 4px; + background-color: #3371e3; } + #vendorStrip #searchBox { + float: right; } + #home #hero #vendorStrip { + display: block; } + #docs #hero h1, #docs #hero h5 { + text-align: left; } + #docs #hero #vendorStrip ul { + float: left; } + #docs #hero #vendorStrip #searchBox { + float: right; + width: 250px; } + #docs #hero #vendorStrip #search { + vertical-align: middle; } + #docs .flyout-button { + display: none; } + #docs .logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(../images/nav_logo.svg); } + #docs.flip-nav .logo, #docs.open-nav .logo { + background-image: url(../images/nav_logo2.svg); } + #encyclopedia { + padding: 50px 50px 100px 100px; + clear: both; } + #docsToc { + position: relative; + float: left; + padding: 0 20px; + left: 0; + width: 350px; + z-index: auto; } + #docsToc .push-menu-close-button { + display: none; } + #docsContent { + width: calc(100% - 400px); } + #docsContent #editPageButton { + right: -25px; } + section main, header main, footer main { + max-width: 1200px; } + header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5, + #community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5 { + padding-left: 100px; + padding-right: 100px; } + #vendorStrip { + padding-right: 10px; } + #home section main, #home header main, #home footer main { + max-width: 1000px; } + #oceanNodes main { + position: relative; + max-width: 830px; } + #oceanNodes main:nth-child(1) { + max-width: 1000px; + padding-right: 475px; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: left; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: absolute; + max-width: 48%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(1) .image-wrapper img { + max-width: 425px; } + #video { + height: 550px; + position: relative; + background-position: center center; + background-size: cover; } + #talkToUs h4 br { + display: block; } + #talkToUs #bigSocial div { + width: calc(25% - 18px); } + #talkToUs #bigSocial div + div { + margin-left: 20px; } + footer { + width: 100%; + background-image: url(../images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav { + overflow: hidden; + margin-bottom: 20px; } + footer nav a { + width: 16.65%; + float: left; + font-size: 24px; + font-weight: 300; + white-space: nowrap; } + footer .social { + padding: 0 30px; + max-width: 1200px; } + footer .social div { + float: left; } + footer .social div:last-child { + float: right; } + #search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + .social a { + display: inline-block; + background-image: url(../images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + #community #hero, .gridPage #hero { + text-align: left; } + #community #hero h1, .gridPage #hero h1 { + padding: 20px 100px; } + #community #tryKubernetes, .gridPage #tryKubernetes { + width: auto; + background-color: #3371e3; + padding: 0 20px; } + #bigSocial div { + width: calc(25% - 18px); } + #home #caseStudiesWrapper div { + width: 24%; + min-height: 260px; } } + +@media screen and (min-width: 1300px) { + #vendorStrip { + padding-right: 100px; } } + +@media screen and (min-width: 456px) { + #vendorStrip li + li { + margin-left: 20px; } } From 91e8ad433f4557645b8c8dbfd622240b3d70fd1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B0=B8=E4=BF=A1?= Date: Wed, 24 Oct 2018 21:26:08 +0800 Subject: [PATCH 21/62] typo fix about further (#10723) Signed-off-by: Yongxin Li --- content/en/docs/tasks/run-application/scale-stateful-set.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/run-application/scale-stateful-set.md b/content/en/docs/tasks/run-application/scale-stateful-set.md index 22ba15927b..c47fd8f47d 100644 --- a/content/en/docs/tasks/run-application/scale-stateful-set.md +++ b/content/en/docs/tasks/run-application/scale-stateful-set.md @@ -21,7 +21,7 @@ This task shows how to scale a StatefulSet. Scaling a StatefulSet refers to incr * StatefulSets are only available in Kubernetes version 1.5 or later. To check your version of Kubernetes, run `kubectl version`. -* Not all stateful applications scale nicely. If you are unsure about whether to scale your StatefulSets, see [StatefulSet concepts](/docs/concepts/workloads/controllers/statefulset/) or [StatefulSet tutorial](/docs/tutorials/stateful-application/basic-stateful-set/) for futher information. +* Not all stateful applications scale nicely. If you are unsure about whether to scale your StatefulSets, see [StatefulSet concepts](/docs/concepts/workloads/controllers/statefulset/) or [StatefulSet tutorial](/docs/tutorials/stateful-application/basic-stateful-set/) for further information. * You should perform scaling only when you are confident that your stateful application cluster is completely healthy. From b30e28e2c64a9311e87695a344a2f85641cd0e66 Mon Sep 17 00:00:00 2001 From: James George Date: Thu, 25 Oct 2018 22:38:58 +0530 Subject: [PATCH 22/62] Minor UI fix (#10729) * Fixes :+1: * Minor fix :+1: --- static/css/case-study-styles.css | 3 ++- static/css/styles.css | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/static/css/case-study-styles.css b/static/css/case-study-styles.css index 2747d92683..39fcd22428 100644 --- a/static/css/case-study-styles.css +++ b/static/css/case-study-styles.css @@ -571,7 +571,8 @@ section { #docs #vendorStrip { line-height: 44px; max-width: 100%; - overflow-x: scroll; } + overflow-x: auto; + -webkit-overflow-scrolling: touch; } #docs #vendorStrip ul { float: none; } #docs #vendorStrip #searchBox { diff --git a/static/css/styles.css b/static/css/styles.css index a48e6900d6..641c0c581b 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -571,7 +571,8 @@ section { #docs #vendorStrip { line-height: 44px; max-width: 100%; - overflow-x: scroll; } + overflow-x: auto; + -webkit-overflow-scrolling: touch; } #docs #vendorStrip ul { float: none; } #docs #vendorStrip #searchBox { From bf9cdf7a608192e564dfd75044bfd8d0a71b2a3b Mon Sep 17 00:00:00 2001 From: William Zhang Date: Fri, 26 Oct 2018 01:17:35 +0800 Subject: [PATCH 23/62] Enable volume limit feature by default (#10728) Signed-off-by: William Zhang --- .../reference/command-line-tools-reference/feature-gates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index ec632df097..5ea38f8b94 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -38,7 +38,7 @@ different Kubernetes components. | `APIListChunking` | `true` | Beta | 1.9 | | | `APIResponseCompression` | `false` | Alpha | 1.7 | | | `AppArmor` | `true` | Beta | 1.4 | | -| `AttachVolumeLimit` | `false` | Alpha | 1.11 | | +| `AttachVolumeLimit` | `true` | Alpha | 1.11 | | | `BlockVolume` | `false` | Alpha | 1.9 | | | `CPUManager` | `false` | Alpha | 1.8 | 1.9 | | `CPUManager` | `true` | Beta | 1.10 | | From 8f2bb3d6adf267bfc3f283d979207be95b2c4248 Mon Sep 17 00:00:00 2001 From: meirlaker Date: Thu, 25 Oct 2018 13:50:40 -0400 Subject: [PATCH 24/62] Fix typo: update --> updated (#10726) --- content/en/docs/tasks/run-application/configure-pdb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/run-application/configure-pdb.md b/content/en/docs/tasks/run-application/configure-pdb.md index 42e7e86fbf..7c291da37d 100644 --- a/content/en/docs/tasks/run-application/configure-pdb.md +++ b/content/en/docs/tasks/run-application/configure-pdb.md @@ -191,7 +191,7 @@ zk-pdb 2 1 7s ``` The non-zero value for `ALLOWED-DISRUPTIONS` means that the disruption controller has seen the pods, -counted the matching pods, and update the status of the PDB. +counted the matching pods, and updated the status of the PDB. You can get more information about the status of a PDB with this command: From 04163e9a7c45aa447581bc567e9c86e555f7dab1 Mon Sep 17 00:00:00 2001 From: MengZeLee Date: Fri, 26 Oct 2018 02:02:31 +0800 Subject: [PATCH 25/62] removing toc shortcode. (#10720) --- .../concepts/architecture/cloud-controller.md | 29 +++++---- .../architecture/master-node-communication.md | 5 +- .../en/docs/concepts/architecture/nodes.md | 11 ++-- .../concepts/cluster-administration/addons.md | 3 +- .../cluster-administration/certificates.md | 11 ++-- .../cluster-administration/cloud-providers.md | 11 ++-- .../kubelet-garbage-collection.md | 1 - .../cluster-administration/logging.md | 1 - .../manage-deployment.md | 1 - .../cluster-administration/networking.md | 17 +++-- .../concepts/configuration/assign-pod-node.md | 17 +++-- .../en/docs/concepts/configuration/secret.md | 7 +-- .../configuration/taint-and-toleration.md | 1 - .../container-environment-variables.md | 3 - .../containers/container-lifecycle-hooks.md | 3 - content/en/docs/concepts/containers/images.md | 1 - .../docs/concepts/containers/runtime-class.md | 1 - .../compute-storage-net/network-plugins.md | 1 - .../docs/concepts/overview/kubernetes-api.md | 1 - .../overview/working-with-objects/labels.md | 3 +- .../overview/working-with-objects/names.md | 3 +- .../working-with-objects/namespaces.md | 1 - .../concepts/policy/pod-security-policy.md | 17 +++-- .../docs/concepts/policy/resource-quotas.md | 1 - .../connect-applications-service.md | 2 - .../concepts/services-networking/service.md | 8 +-- .../concepts/storage/dynamic-provisioning.md | 3 - .../concepts/storage/persistent-volumes.md | 3 +- .../storage/volume-snapshot-classes.md | 3 +- .../docs/concepts/storage/volume-snapshots.md | 5 +- content/en/docs/concepts/storage/volumes.md | 19 +++--- .../workloads/controllers/cron-jobs.md | 5 +- .../workloads/controllers/daemonset.md | 3 +- .../controllers/jobs-run-to-completion.md | 13 ++-- .../workloads/controllers/ttlafterfinished.md | 3 +- .../concepts/workloads/pods/disruptions.md | 4 -- .../workloads/pods/init-containers.md | 4 -- .../concepts/workloads/pods/pod-overview.md | 3 - .../en/docs/concepts/workloads/pods/pod.md | 1 - .../docs/concepts/workloads/pods/podpreset.md | 9 +-- content/en/docs/contribute/localization.md | 1 - .../contribute/style/content-organization.md | 6 +- .../docs/contribute/style/page-templates.md | 62 +++++++++---------- .../access-cluster.md | 19 +++--- .../configure-cloud-provider-firewall.md | 1 - .../web-ui-dashboard.md | 1 - .../administer-cluster/cluster-management.md | 1 - .../configure-multiple-schedulers.md | 1 - .../configure-upgrade-etcd.md | 1 - .../cpu-management-policies.md | 7 +-- .../developing-cloud-controller-manager.md | 1 - ...aranteed-scheduling-critical-addon-pods.md | 3 +- .../highly-available-master.md | 1 - .../namespaces-walkthrough.md | 1 - .../administer-cluster/out-of-resource.md | 13 ++-- .../reserve-compute-resources.md | 1 - .../running-cloud-controller.md | 1 - .../tasks/administer-cluster/static-pod.md | 3 +- .../tasks/administer-federation/events.md | 1 - .../tasks/administer-federation/secret.md | 1 - .../configure-service-account.md | 5 +- .../translate-compose-kubernetes.md | 47 +++++++------- .../tasks/debug-application-cluster/audit.md | 1 - .../core-metrics-pipeline.md | 1 - .../tasks/debug-application-cluster/crictl.md | 3 +- .../debug-application-introspection.md | 1 - .../debug-application.md | 1 - .../debug-cluster.md | 1 - .../debug-service.md | 1 - .../events-stackdriver.md | 1 - .../logging-stackdriver.md | 5 +- .../troubleshooting.md | 3 +- .../set-up-cluster-federation-kubefed.md | 23 ++++--- .../coarse-parallel-processing-work-queue.md | 4 +- .../fine-parallel-processing-work-queue.md | 1 - .../job/parallel-processing-expansion.md | 1 - .../docs/tasks/manage-gpus/scheduling-gpus.md | 3 +- .../horizontal-pod-autoscale-walkthrough.md | 1 - .../horizontal-pod-autoscale.md | 3 +- .../rolling-update-replication-controller.md | 1 - .../tasks/tls/managing-tls-in-a-cluster.md | 1 - 81 files changed, 183 insertions(+), 289 deletions(-) diff --git a/content/en/docs/concepts/architecture/cloud-controller.md b/content/en/docs/concepts/architecture/cloud-controller.md index c2eb94f6cf..191b954645 100644 --- a/content/en/docs/concepts/architecture/cloud-controller.md +++ b/content/en/docs/concepts/architecture/cloud-controller.md @@ -18,7 +18,6 @@ Here's the architecture of a Kubernetes cluster without the cloud controller man {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -46,16 +45,16 @@ The CCM breaks away some of the functionality of Kubernetes controller manager ( In version 1.9, the CCM runs the following controllers from the preceding list: * Node controller -* Route controller +* Route controller * Service controller -Additionally, it runs another controller called the PersistentVolumeLabels controller. This controller is responsible for setting the zone and region labels on PersistentVolumes created in GCP and AWS clouds. +Additionally, it runs another controller called the PersistentVolumeLabels controller. This controller is responsible for setting the zone and region labels on PersistentVolumes created in GCP and AWS clouds. {{< note >}} -**Note:** Volume controller was deliberately chosen to not be a part of CCM. Due to the complexity involved and due to the existing efforts to abstract away vendor specific volume logic, it was decided that volume controller will not be moved to CCM. +**Note:** Volume controller was deliberately chosen to not be a part of CCM. Due to the complexity involved and due to the existing efforts to abstract away vendor specific volume logic, it was decided that volume controller will not be moved to CCM. {{< /note >}} -The original plan to support volumes using CCM was to use Flex volumes to support pluggable volumes. However, a competing effort known as CSI is being planned to replace Flex. +The original plan to support volumes using CCM was to use Flex volumes to support pluggable volumes. However, a competing effort known as CSI is being planned to replace Flex. Considering these dynamics, we decided to have an intermediate stop gap measure until CSI becomes ready. @@ -68,7 +67,7 @@ The CCM inherits its functions from components of Kubernetes that are dependent The majority of the CCM's functions are derived from the KCM. As mentioned in the previous section, the CCM runs the following control loops: * Node controller -* Route controller +* Route controller * Service controller * PersistentVolumeLabels controller @@ -92,7 +91,7 @@ The Service controller is responsible for listening to service create, update, a #### PersistentVolumeLabels controller -The PersistentVolumeLabels controller applies labels on AWS EBS/GCE PD volumes when they are created. This removes the need for users to manually set the labels on these volumes. +The PersistentVolumeLabels controller applies labels on AWS EBS/GCE PD volumes when they are created. This removes the need for users to manually set the labels on these volumes. These labels are essential for the scheduling of pods as these volumes are constrained to work only within the region/zone that they are in. Any Pod using these volumes needs to be scheduled in the same region/zone. @@ -100,7 +99,7 @@ The PersistentVolumeLabels controller was created specifically for the CCM; that ### 2. Kubelet -The Node controller contains the cloud-dependent functionality of the kubelet. Prior to the introduction of the CCM, the kubelet was responsible for initializing a node with cloud-specific details such as IP addresses, region/zone labels and instance type information. The introduction of the CCM has moved this initialization operation from the kubelet into the CCM. +The Node controller contains the cloud-dependent functionality of the kubelet. Prior to the introduction of the CCM, the kubelet was responsible for initializing a node with cloud-specific details such as IP addresses, region/zone labels and instance type information. The introduction of the CCM has moved this initialization operation from the kubelet into the CCM. In this new model, the kubelet initializes a node without cloud-specific information. However, it adds a taint to the newly created node that makes the node unschedulable until the CCM initializes the node with cloud-specific information. It then removes this taint. @@ -118,13 +117,13 @@ For more information about developing plugins, see [Developing Cloud Controller ## Authorization -This section breaks down the access required on various API objects by the CCM to perform its operations. +This section breaks down the access required on various API objects by the CCM to perform its operations. ### Node Controller The Node controller only works with Node objects. It requires full access to get, list, create, update, patch, watch, and delete Node objects. -v1/Node: +v1/Node: - Get - List @@ -136,17 +135,17 @@ v1/Node: ### Route controller -The route controller listens to Node object creation and configures routes appropriately. It requires get access to Node objects. +The route controller listens to Node object creation and configures routes appropriately. It requires get access to Node objects. -v1/Node: +v1/Node: - Get ### Service controller -The service controller listens to Service object create, update and delete events and then configures endpoints for those Services appropriately. +The service controller listens to Service object create, update and delete events and then configures endpoints for those Services appropriately. -To access Services, it requires list, and watch access. To update Services, it requires patch and update access. +To access Services, it requires list, and watch access. To update Services, it requires patch and update access. To set up endpoints for the Services, it requires access to create, list, get, watch, and update. @@ -249,7 +248,7 @@ rules: ## Vendor Implementations -The following cloud providers have implemented CCMs: +The following cloud providers have implemented CCMs: * [Digital Ocean](https://github.com/digitalocean/digitalocean-cloud-controller-manager) * [Oracle](https://github.com/oracle/oci-cloud-controller-manager) diff --git a/content/en/docs/concepts/architecture/master-node-communication.md b/content/en/docs/concepts/architecture/master-node-communication.md index 9c1064cfcc..0314197bc4 100644 --- a/content/en/docs/concepts/architecture/master-node-communication.md +++ b/content/en/docs/concepts/architecture/master-node-communication.md @@ -18,7 +18,6 @@ cloud provider). {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -67,9 +66,9 @@ The connections from the apiserver to the kubelet are used for: * Fetching logs for pods. * Attaching (through kubectl) to running pods. - * Providing the kubelet's port-forwarding functionality. + * Providing the kubelet's port-forwarding functionality. -These connections terminate at the kubelet's HTTPS endpoint. By default, +These connections terminate at the kubelet's HTTPS endpoint. By default, the apiserver does not verify the kubelet's serving certificate, which makes the connection subject to man-in-the-middle attacks, and **unsafe** to run over untrusted and/or public networks. diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index 222a21c020..f5bb11bf37 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -18,7 +18,6 @@ architecture design doc for more details. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -76,18 +75,18 @@ the `Terminating` or `Unknown` state. In cases where Kubernetes cannot deduce fr permanently left a cluster, the cluster administrator may need to delete the node object by hand. Deleting the node object from Kubernetes causes all the Pod objects running on the node to be deleted from the apiserver, and frees up their names. -In version 1.12, `TaintNodesByCondition` feature is promoted to beta,so node lifecycle controller automatically creates +In version 1.12, `TaintNodesByCondition` feature is promoted to beta,so node lifecycle controller automatically creates [taints](/docs/concepts/configuration/taint-and-toleration/) that represent conditions. Similarly the scheduler ignores conditions when considering a Node; instead it looks at the Node's taints and a Pod's tolerations. Now users can choose between the old scheduling model and a new, more flexible scheduling model. -A Pod that does not have any tolerations gets scheduled according to the old model. But a Pod that +A Pod that does not have any tolerations gets scheduled according to the old model. But a Pod that tolerates the taints of a particular Node can be scheduled on that Node. {{< caution >}} -**Caution:** Enabling this feature creates a small delay between the -time when a condition is observed and when a taint is created. This delay is usually less than one second, but it can increase the number of Pods that are successfully scheduled but rejected by the kubelet. +**Caution:** Enabling this feature creates a small delay between the +time when a condition is observed and when a taint is created. This delay is usually less than one second, but it can increase the number of Pods that are successfully scheduled but rejected by the kubelet. {{< /caution >}} ### Capacity @@ -127,7 +126,7 @@ a node from the following content: Kubernetes creates a node object internally (the representation), and validates the node by health checking based on the `metadata.name` field. If the node is valid -- that is, if all necessary services are running -- it is eligible to run a pod. Otherwise, it is -ignored for any cluster activity until it becomes valid. +ignored for any cluster activity until it becomes valid. {{< note >}} **Note:** Kubernetes keeps the object for the invalid node and keeps checking to see whether it becomes valid. diff --git a/content/en/docs/concepts/cluster-administration/addons.md b/content/en/docs/concepts/cluster-administration/addons.md index fc6bf0b6c5..dd12e76074 100644 --- a/content/en/docs/concepts/cluster-administration/addons.md +++ b/content/en/docs/concepts/cluster-administration/addons.md @@ -14,7 +14,6 @@ Add-ons in each section are sorted alphabetically - the ordering does not imply {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -30,7 +29,7 @@ Add-ons in each section are sorted alphabetically - the ordering does not imply * [Flannel](https://github.com/coreos/flannel/blob/master/Documentation/kubernetes.md) is an overlay network provider that can be used with Kubernetes. * [Knitter](https://github.com/ZTE/Knitter/) is a network solution supporting multiple networking in Kubernetes. * [Multus](https://github.com/Intel-Corp/multus-cni) is a Multi plugin for multiple network support in Kubernetes to support all CNI plugins (e.g. Calico, Cilium, Contiv, Flannel), in addition to SRIOV, DPDK, OVS-DPDK and VPP based workloads in Kubernetes. -* [NSX-T](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) Container Plug-in (NCP) provides integration between VMware NSX-T and container orchestrators such as Kubernetes, as well as integration between NSX-T and container-based CaaS/PaaS platforms such as Pivotal Container Service (PKS) and Openshift. +* [NSX-T](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) Container Plug-in (NCP) provides integration between VMware NSX-T and container orchestrators such as Kubernetes, as well as integration between NSX-T and container-based CaaS/PaaS platforms such as Pivotal Container Service (PKS) and Openshift. * [Nuage](https://github.com/nuagenetworks/nuage-kubernetes/blob/v5.1.1-1/docs/kubernetes-1-installation.rst) is an SDN platform that provides policy-based networking between Kubernetes Pods and non-Kubernetes environments with visibility and security monitoring. * [Romana](http://romana.io) is a Layer 3 networking solution for pod networks that also supports the [NetworkPolicy API](/docs/concepts/services-networking/network-policies/). Kubeadm add-on installation details available [here](https://github.com/romana/romana/tree/master/containerize). * [Weave Net](https://www.weave.works/docs/net/latest/kube-addon/) provides networking and network policy, will carry on working on both sides of a network partition, and does not require an external database. diff --git a/content/en/docs/concepts/cluster-administration/certificates.md b/content/en/docs/concepts/cluster-administration/certificates.md index 129470ddf0..48592dc7c3 100644 --- a/content/en/docs/concepts/cluster-administration/certificates.md +++ b/content/en/docs/concepts/cluster-administration/certificates.md @@ -12,7 +12,6 @@ manually through `easyrsa`, `openssl` or `cfssl`. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -81,7 +80,7 @@ manually through `easyrsa`, `openssl` or `cfssl`. default_md = sha256 req_extensions = req_ext distinguished_name = dn - + [ dn ] C = ST = @@ -89,10 +88,10 @@ manually through `easyrsa`, `openssl` or `cfssl`. O = OU = CN = - + [ req_ext ] subjectAltName = @alt_names - + [ alt_names ] DNS.1 = kubernetes DNS.2 = kubernetes.default @@ -101,7 +100,7 @@ manually through `easyrsa`, `openssl` or `cfssl`. DNS.5 = kubernetes.default.svc.cluster.local IP.1 = IP.2 = - + [ v3_ext ] authorityKeyIdentifier=keyid,issuer:always basicConstraints=CA:FALSE @@ -213,7 +212,7 @@ Finally, add the same parameters into the API server start parameters. "O": "", "OU": "" }] - } + } 1. Generate the key and certificate for the API server, which are by default saved into file `server-key.pem` and `server.pem` respectively: diff --git a/content/en/docs/concepts/cluster-administration/cloud-providers.md b/content/en/docs/concepts/cluster-administration/cloud-providers.md index f87b567ca3..e3c7f153af 100644 --- a/content/en/docs/concepts/cluster-administration/cloud-providers.md +++ b/content/en/docs/concepts/cluster-administration/cloud-providers.md @@ -9,12 +9,11 @@ This page explains how to manage Kubernetes running on a specific cloud provider. {{% /capture %}} -{{< toc >}} {{% capture body %}} ### kubeadm -[kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/) is a popular option for creating kubernetes clusters. -kubeadm has configuration options to specify configuration information for cloud providers. For example a typical +[kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/) is a popular option for creating kubernetes clusters. +kubeadm has configuration options to specify configuration information for cloud providers. For example a typical in-tree cloud provider can be configured using kubeadm as shown below: ```yaml @@ -214,7 +213,7 @@ file: connotation, a deployment can use a geographical name for a region identifier such as `us-east`. Available regions are found under the `/v3/regions` endpoint of the Keystone API. -* `ca-file` (Optional): Used to specify the path to your custom CA file. +* `ca-file` (Optional): Used to specify the path to your custom CA file. When using Keystone V3 - which changes tenant to project - the `tenant-id` value @@ -361,12 +360,12 @@ Note that the Kubernetes Node name must match the Photon VM name (or if `overrid The VSphere cloud provider uses the hostname of the node (as determined by the kubelet or overridden with `--hostname-override`) as the name of the Kubernetes Node object. -## IBM Cloud Kubernetes Service +## IBM Cloud Kubernetes Service ### Compute nodes By using the IBM Cloud Kubernetes Service provider, you can create clusters with a mixture of virtual and physical (bare metal) nodes in a single zone or across multiple zones in a region. For more information, see [Planning your cluster and worker node setup](https://console.bluemix.net/docs/containers/cs_clusters_planning.html#plan_clusters). -The name of the Kubernetes Node object is the private IP address of the IBM Cloud Kubernetes Service worker node instance. +The name of the Kubernetes Node object is the private IP address of the IBM Cloud Kubernetes Service worker node instance. ### Networking The IBM Cloud Kubernetes Service provider provides VLANs for quality network performance and network isolation for nodes. You can set up custom firewalls and Calico network policies to add an extra layer of security for your cluster, or connect your cluster to your on-prem data center via VPN. For more information, see [Planning in-cluster and private networking](https://console.bluemix.net/docs/containers/cs_network_cluster.html#planning). diff --git a/content/en/docs/concepts/cluster-administration/kubelet-garbage-collection.md b/content/en/docs/concepts/cluster-administration/kubelet-garbage-collection.md index 99364fc56e..1d3c42bac3 100644 --- a/content/en/docs/concepts/cluster-administration/kubelet-garbage-collection.md +++ b/content/en/docs/concepts/cluster-administration/kubelet-garbage-collection.md @@ -14,7 +14,6 @@ External garbage collection tools are not recommended as these tools can potenti {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/cluster-administration/logging.md b/content/en/docs/concepts/cluster-administration/logging.md index 731efcf9e9..f64e0e0aa3 100644 --- a/content/en/docs/concepts/cluster-administration/logging.md +++ b/content/en/docs/concepts/cluster-administration/logging.md @@ -15,7 +15,6 @@ However, the native functionality provided by a container engine or runtime is u {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/cluster-administration/manage-deployment.md b/content/en/docs/concepts/cluster-administration/manage-deployment.md index c50f54ce23..e32fe5b8fb 100644 --- a/content/en/docs/concepts/cluster-administration/manage-deployment.md +++ b/content/en/docs/concepts/cluster-administration/manage-deployment.md @@ -14,7 +14,6 @@ You've deployed your application and exposed it via a service. Now what? Kuberne {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/cluster-administration/networking.md b/content/en/docs/concepts/cluster-administration/networking.md index e1e16ea47a..58521895f3 100644 --- a/content/en/docs/concepts/cluster-administration/networking.md +++ b/content/en/docs/concepts/cluster-administration/networking.md @@ -18,7 +18,6 @@ default. There are 4 distinct networking problems to solve: {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -123,10 +122,10 @@ AOS supports the use of common vendor equipment from manufacturers including Cis Details on how the AOS system works can be accessed here: http://www.apstra.com/products/how-it-works/ ### Big Cloud Fabric from Big Switch Networks - -[Big Cloud Fabric](https://www.bigswitch.com/container-network-automation) is a cloud native networking architecture, designed to run Kubernetes in private cloud/on-premises environments. Using unified physical & virtual SDN, Big Cloud Fabric tackles inherent container networking problems such as load balancing, visibility, troubleshooting, security policies & container traffic monitoring. -With the help of the Big Cloud Fabric's virtual pod multi-tenant architecture, container orchestration systems such as Kubernetes, RedHat Openshift, Mesosphere DC/OS & Docker Swarm will be natively integrated along side with VM orchestration systems such as VMware, OpenStack & Nutanix. Customers will be able to securely inter-connect any number of these clusters and enable inter-tenant communication between them if needed. +[Big Cloud Fabric](https://www.bigswitch.com/container-network-automation) is a cloud native networking architecture, designed to run Kubernetes in private cloud/on-premises environments. Using unified physical & virtual SDN, Big Cloud Fabric tackles inherent container networking problems such as load balancing, visibility, troubleshooting, security policies & container traffic monitoring. + +With the help of the Big Cloud Fabric's virtual pod multi-tenant architecture, container orchestration systems such as Kubernetes, RedHat Openshift, Mesosphere DC/OS & Docker Swarm will be natively integrated along side with VM orchestration systems such as VMware, OpenStack & Nutanix. Customers will be able to securely inter-connect any number of these clusters and enable inter-tenant communication between them if needed. BCF was recognized by Gartner as a visionary in the latest [Magic Quadrant](http://go.bigswitch.com/17GatedDocuments-MagicQuadrantforDataCenterNetworking_Reg.html). One of the BCF Kubernetes on-premises deployments (which includes Kubernetes, DC/OS & VMware running on multiple DCs across different geographic regions) is also referenced [here](https://portworx.com/architects-corner-kubernetes-satya-komala-nio/). @@ -182,7 +181,7 @@ each other and `Nodes` over the `cbr0` bridge. Those IPs are all routable within the GCE project network. GCE itself does not know anything about these IPs, though, so it will not NAT -them for outbound internet traffic. To achieve that an iptables rule is used +them for outbound internet traffic. To achieve that an iptables rule is used to masquerade (aka SNAT - to make it seem as if packets came from the `Node` itself) traffic that is bound for IPs outside the GCE project network (10.0.0.0/8). @@ -203,7 +202,7 @@ traffic to the internet. ### Jaguar -[Jaguar](https://gitlab.com/sdnlab/jaguar) is an open source solution for Kubernetes's network based on OpenDaylight. Jaguar provides overlay network using vxlan and Jaguar CNIPlugin provides one IP address per pod. +[Jaguar](https://gitlab.com/sdnlab/jaguar) is an open source solution for Kubernetes's network based on OpenDaylight. Jaguar provides overlay network using vxlan and Jaguar CNIPlugin provides one IP address per pod. ### Knitter @@ -232,10 +231,10 @@ Lars Kellogg-Stedman. Multus supports all [reference plugins](https://github.com/containernetworking/plugins) (eg. [Flannel](https://github.com/containernetworking/plugins/tree/master/plugins/meta/flannel), [DHCP](https://github.com/containernetworking/plugins/tree/master/plugins/ipam/dhcp), [Macvlan](https://github.com/containernetworking/plugins/tree/master/plugins/main/macvlan)) that implement the CNI specification and 3rd party plugins (eg. [Calico](https://github.com/projectcalico/cni-plugin), [Weave](https://github.com/weaveworks/weave), [Cilium](https://github.com/cilium/cilium), [Contiv](https://github.com/contiv/netplugin)). In addition to it, Multus supports [SRIOV](https://github.com/hustcat/sriov-cni), [DPDK](https://github.com/Intel-Corp/sriov-cni), [OVS-DPDK & VPP](https://github.com/intel/vhost-user-net-plugin) workloads in Kubernetes with both cloud native and NFV based applications in Kubernetes. ### NSX-T - + [VMware NSX-T](https://docs.vmware.com/en/VMware-NSX-T/index.html) is a network virtualization and security platform. NSX-T can provide network virtualization for a multi-cloud and multi-hypervisor environment and is focused on emerging application frameworks and architectures that have heterogeneous endpoints and technology stacks. In addition to vSphere hypervisors, these environments include other hypervisors such as KVM, containers, and bare metal. - -[NSX-T Container Plug-in (NCP)](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) provides integration between NSX-T and container orchestrators such as Kubernetes, as well as integration between NSX-T and container-based CaaS/PaaS platforms such as Pivotal Container Service (PKS) and Openshift. + +[NSX-T Container Plug-in (NCP)](https://docs.vmware.com/en/VMware-NSX-T/2.0/nsxt_20_ncp_kubernetes.pdf) provides integration between NSX-T and container orchestrators such as Kubernetes, as well as integration between NSX-T and container-based CaaS/PaaS platforms such as Pivotal Container Service (PKS) and Openshift. ### Nuage Networks VCS (Virtualized Cloud Services) diff --git a/content/en/docs/concepts/configuration/assign-pod-node.md b/content/en/docs/concepts/configuration/assign-pod-node.md index 1bb887fa52..d1d9cffc53 100644 --- a/content/en/docs/concepts/configuration/assign-pod-node.md +++ b/content/en/docs/concepts/configuration/assign-pod-node.md @@ -8,7 +8,6 @@ content_template: templates/concept weight: 30 --- -{{< toc >}} {{% capture overview %}} @@ -144,7 +143,7 @@ among nodes that meet that criteria, nodes with a label whose key is `another-no value is `another-node-label-value` should be preferred. You can see the operator `In` being used in the example. The new node affinity syntax supports the following operators: `In`, `NotIn`, `Exists`, `DoesNotExist`, `Gt`, `Lt`. -You can use `NotIn` and `DoesNotExist` to achieve node anti-affinity behavior, or use +You can use `NotIn` and `DoesNotExist` to achieve node anti-affinity behavior, or use [node taints](/docs/concepts/configuration/taint-and-toleration/) to repel pods from specific nodes. If you specify both `nodeSelector` and `nodeAffinity`, *both* must be satisfied for the pod @@ -158,7 +157,7 @@ If you remove or change the label of the node where the pod is scheduled, the po The `weight` field in `preferredDuringSchedulingIgnoredDuringExecution` is in the range 1-100. For each node that meets all of the scheduling requirements (resource request, RequiredDuringScheduling affinity expressions, etc.), the scheduler will compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding MatchExpressions. This score is then combined with the scores of other priority functions for the node. The node(s) with the highest total score are the most preferred. -For more information on node affinity, see the +For more information on node affinity, see the [design doc](https://git.k8s.io/community/contributors/design-proposals/scheduling/nodeaffinity.md). ### Inter-pod affinity and anti-affinity (beta feature) @@ -174,7 +173,7 @@ like node, rack, cloud provider zone, cloud provider region, etc. You express it key for the node label that the system uses to denote such a topology domain, e.g. see the label keys listed above in the section [Interlude: built-in node labels](#interlude-built-in-node-labels). -**Note:** Inter-pod affinity and anti-affinity require substantial amount of +**Note:** Inter-pod affinity and anti-affinity require substantial amount of processing which can slow down scheduling in large clusters significantly. We do not recommend using them in clusters larger than several hundred nodes. @@ -206,7 +205,7 @@ value V that is running a pod that has a label with key "security" and value "S1 rule says that the pod prefers not to be scheduled onto a node if that node is already running a pod with label having key "security" and value "S2". (If the `topologyKey` were `failure-domain.beta.kubernetes.io/zone` then it would mean that the pod cannot be scheduled onto a node if that node is in the same zone as a pod with -label having key "security" and value "S2".) See the +label having key "security" and value "S2".) See the [design doc](https://git.k8s.io/community/contributors/design-proposals/scheduling/podaffinity.md) for many more examples of pod affinity and anti-affinity, both the `requiredDuringSchedulingIgnoredDuringExecution` flavor and the `preferredDuringSchedulingIgnoredDuringExecution` flavor. @@ -333,12 +332,12 @@ web-server-1287567482-s330j 1/1 Running 0 7m 10.192.3 ##### Never co-located in the same node -The above example uses `PodAntiAffinity` rule with `topologyKey: "kubernetes.io/hostname"` to deploy the redis cluster so that -no two instances are located on the same host. -See [ZooKeeper tutorial](/docs/tutorials/stateful-application/zookeeper/#tolerating-node-failure) +The above example uses `PodAntiAffinity` rule with `topologyKey: "kubernetes.io/hostname"` to deploy the redis cluster so that +no two instances are located on the same host. +See [ZooKeeper tutorial](/docs/tutorials/stateful-application/zookeeper/#tolerating-node-failure) for an example of a StatefulSet configured with anti-affinity for high availability, using the same technique. -For more information on inter-pod affinity/anti-affinity, see the +For more information on inter-pod affinity/anti-affinity, see the [design doc](https://git.k8s.io/community/contributors/design-proposals/scheduling/podaffinity.md). You may want to check [Taints](/docs/concepts/configuration/taint-and-toleration/) diff --git a/content/en/docs/concepts/configuration/secret.md b/content/en/docs/concepts/configuration/secret.md index 13a319fc71..b98137b871 100644 --- a/content/en/docs/concepts/configuration/secret.md +++ b/content/en/docs/concepts/configuration/secret.md @@ -10,7 +10,6 @@ feature: weight: 50 --- -{{< toc >}} {{% capture overview %}} @@ -546,10 +545,10 @@ secret "test-db-secret" created ``` {{< note >}} **Note:** Special characters such as `$`, `\*`, and `!` require escaping. -If the password you are using has special characters, you need to escape them using the `\\` character. For example, if your actual password is `S!B\*d$zDsb`, you should execute the command this way: +If the password you are using has special characters, you need to escape them using the `\\` character. For example, if your actual password is `S!B\*d$zDsb`, you should execute the command this way: kubectl create secret generic dev-db-secret --from-literal=username=devuser --from-literal=password=S\\!B\\\*d\\$zDsb - + You do not need to escape special characters in passwords from files (`--from-file`). {{< /note >}} @@ -773,7 +772,7 @@ Pod level](#use-case-secret-visible-to-one-container-in-a-pod). by impersonating the kubelet. It is a planned feature to only send secrets to nodes that actually require them, to restrict the impact of a root exploit on a single node. - + {{< note >}} **Note:** As of 1.7 [encryption of secret data at rest is supported](/docs/tasks/administer-cluster/encrypt-data/). {{< /note >}} diff --git a/content/en/docs/concepts/configuration/taint-and-toleration.md b/content/en/docs/concepts/configuration/taint-and-toleration.md index ceab0e271a..bb41dca5f0 100644 --- a/content/en/docs/concepts/configuration/taint-and-toleration.md +++ b/content/en/docs/concepts/configuration/taint-and-toleration.md @@ -8,7 +8,6 @@ content_template: templates/concept weight: 40 --- -{{< toc >}} {{% capture overview %}} Node affinity, described [here](/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature), diff --git a/content/en/docs/concepts/containers/container-environment-variables.md b/content/en/docs/concepts/containers/container-environment-variables.md index cefa41c50a..b8b3c28a6b 100644 --- a/content/en/docs/concepts/containers/container-environment-variables.md +++ b/content/en/docs/concepts/containers/container-environment-variables.md @@ -13,7 +13,6 @@ This page describes the resources available to Containers in the Container envir {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -63,5 +62,3 @@ if [DNS addon](http://releases.k8s.io/{{< param "githubbranch" >}}/cluster/addon [attaching handlers to Container lifecycle events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/). {{% /capture %}} - - diff --git a/content/en/docs/concepts/containers/container-lifecycle-hooks.md b/content/en/docs/concepts/containers/container-lifecycle-hooks.md index 633170db63..f85569032b 100644 --- a/content/en/docs/concepts/containers/container-lifecycle-hooks.md +++ b/content/en/docs/concepts/containers/container-lifecycle-hooks.md @@ -14,7 +14,6 @@ to run code triggered by events during their management lifecycle. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -122,5 +121,3 @@ Events: [attaching handlers to Container lifecycle events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/). {{% /capture %}} - - diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index 045529d5b8..23763279c8 100644 --- a/content/en/docs/concepts/containers/images.md +++ b/content/en/docs/concepts/containers/images.md @@ -15,7 +15,6 @@ The `image` property of a container supports the same syntax as the `docker` com {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/containers/runtime-class.md b/content/en/docs/concepts/containers/runtime-class.md index 5ff9802980..7d0484c256 100644 --- a/content/en/docs/concepts/containers/runtime-class.md +++ b/content/en/docs/concepts/containers/runtime-class.md @@ -15,7 +15,6 @@ This page describes the RuntimeClass resource and runtime selection mechanism. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md index e2f521a806..64954f2dfe 100644 --- a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md +++ b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md @@ -8,7 +8,6 @@ content_template: templates/concept weight: 10 --- -{{< toc >}} {{% capture overview %}} diff --git a/content/en/docs/concepts/overview/kubernetes-api.md b/content/en/docs/concepts/overview/kubernetes-api.md index 464799628b..8bf6b92bfa 100644 --- a/content/en/docs/concepts/overview/kubernetes-api.md +++ b/content/en/docs/concepts/overview/kubernetes-api.md @@ -22,7 +22,6 @@ Kubernetes itself is decomposed into multiple components, which interact through {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/overview/working-with-objects/labels.md b/content/en/docs/concepts/overview/working-with-objects/labels.md index b4fb6959cc..65b6430ed2 100644 --- a/content/en/docs/concepts/overview/working-with-objects/labels.md +++ b/content/en/docs/concepts/overview/working-with-objects/labels.md @@ -26,7 +26,6 @@ We'll eventually index and reverse-index labels for efficient queries and watche {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -202,4 +201,4 @@ selector: One use case for selecting over labels is to constrain the set of nodes onto which a pod can schedule. See the documentation on [node selection](/docs/concepts/configuration/assign-pod-node/) for more information. -{{% /capture %}} \ No newline at end of file +{{% /capture %}} diff --git a/content/en/docs/concepts/overview/working-with-objects/names.md b/content/en/docs/concepts/overview/working-with-objects/names.md index 2c3cbec15d..7499a96a66 100644 --- a/content/en/docs/concepts/overview/working-with-objects/names.md +++ b/content/en/docs/concepts/overview/working-with-objects/names.md @@ -17,7 +17,6 @@ See the [identifiers design doc](https://git.k8s.io/community/contributors/desig {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -31,4 +30,4 @@ By convention, the names of Kubernetes resources should be up to maximum length {{< glossary_definition term_id="uid" length="all" >}} -{{% /capture %}} \ No newline at end of file +{{% /capture %}} diff --git a/content/en/docs/concepts/overview/working-with-objects/namespaces.md b/content/en/docs/concepts/overview/working-with-objects/namespaces.md index 86ac5c3573..eb10f1067b 100644 --- a/content/en/docs/concepts/overview/working-with-objects/namespaces.md +++ b/content/en/docs/concepts/overview/working-with-objects/namespaces.md @@ -15,7 +15,6 @@ These virtual clusters are called namespaces. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/policy/pod-security-policy.md b/content/en/docs/concepts/policy/pod-security-policy.md index eb51921e56..08cec73817 100644 --- a/content/en/docs/concepts/policy/pod-security-policy.md +++ b/content/en/docs/concepts/policy/pod-security-policy.md @@ -16,7 +16,6 @@ updates. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -145,7 +144,7 @@ For a complete example of authorizing a PodSecurityPolicy, see ### Troubleshooting - The [Controller Manager](/docs/admin/kube-controller-manager/) must be run -against [the secured API port](/docs/reference/access-authn-authz/controlling-access/), +against [the secured API port](/docs/reference/access-authn-authz/controlling-access/), and must not have superuser permissions. Otherwise requests would bypass authentication and authorization modules, all PodSecurityPolicy objects would be allowed, and users would be able to create privileged containers. For more details @@ -375,7 +374,7 @@ several security mechanisms. ### Privileged **Privileged** - determines if any container in a pod can enable privileged mode. -By default a container is not allowed to access any devices on the host, but a +By default a container is not allowed to access any devices on the host, but a "privileged" container is given access to all devices on the host. This allows the container nearly all the same access as processes running on the host. This is useful for containers that want to use linux capabilities like @@ -443,11 +442,11 @@ allowedHostPaths: readOnly: true # only allow read-only mounts ``` -{{< warning >}}**Warning:** There are many ways a container with unrestricted access to the host +{{< warning >}}**Warning:** There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and abusing the credentials of system services, such as Kubelet. -Writeable hostPath directory volumes allow containers to write +Writeable hostPath directory volumes allow containers to write to the filesystem in ways that let them traverse the host filesystem outside the `pathPrefix`. `readOnly: true`, available in Kubernetes 1.11+, must be used on **all** `allowedHostPaths` to effectively limit access to the specified `pathPrefix`. @@ -474,7 +473,7 @@ spec: # ... other spec fields volumes: - flexVolume - allowedFlexVolumes: + allowedFlexVolumes: - driver: example/lvm - driver: example/cifs ``` @@ -569,15 +568,15 @@ specified. ### AllowedProcMountTypes `allowedProcMountTypes` is a whitelist of allowed ProcMountTypes. -Empty or nil indicates that only the `DefaultProcMountType` may be used. +Empty or nil indicates that only the `DefaultProcMountType` may be used. `DefaultProcMount` uses the container runtime defaults for readonly and masked paths for /proc. Most container runtimes mask certain paths in /proc to avoid accidental security exposure of special devices or information. This is denoted as the string `Default`. -The only other ProcMountType is `UnmaskedProcMount`, which bypasses the -default masking behavior of the container runtime and ensures the newly +The only other ProcMountType is `UnmaskedProcMount`, which bypasses the +default masking behavior of the container runtime and ensures the newly created /proc the container stays in tact with no modifications. This is denoted as the string `Unmasked`. diff --git a/content/en/docs/concepts/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index 9ee1c54ddb..087961b418 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -15,7 +15,6 @@ Resource quotas are a tool for administrators to address this concern. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/services-networking/connect-applications-service.md b/content/en/docs/concepts/services-networking/connect-applications-service.md index 0de0619a79..c01eb8c68f 100644 --- a/content/en/docs/concepts/services-networking/connect-applications-service.md +++ b/content/en/docs/concepts/services-networking/connect-applications-service.md @@ -8,7 +8,6 @@ content_template: templates/concept weight: 30 --- -{{< toc >}} {{% capture overview %}} @@ -375,4 +374,3 @@ the [Federated Services User Guide](/docs/concepts/cluster-administration/federa for further information. {{% /capture %}} - diff --git a/content/en/docs/concepts/services-networking/service.md b/content/en/docs/concepts/services-networking/service.md index f57f1c534a..9fc2bb79b4 100644 --- a/content/en/docs/concepts/services-networking/service.md +++ b/content/en/docs/concepts/services-networking/service.md @@ -11,7 +11,6 @@ content_template: templates/concept weight: 10 --- -{{< toc >}} {{% capture overview %}} @@ -88,7 +87,7 @@ Kubernetes `Services` support `TCP`, `UDP` and `SCTP` for protocols. The defaul is `TCP`. {{< note >}} -**Note:** SCTP support is an alpha feature since Kubernetes 1.12 +**Note:** SCTP support is an alpha feature since Kubernetes 1.12 {{< /note >}} ### Services without selectors @@ -461,7 +460,7 @@ group of the other automatically created resources of the cluster. For example, {{< note >}} **Note:** The support of SCTP in the cloud provider's load balancer is up to the cloud provider's -load balancer implementation. If SCTP is not supported by the cloud provider's load balancer the +load balancer implementation. If SCTP is not supported by the cloud provider's load balancer the Service creation request is accepted but the creation of the load balancer fails. {{< /note >}} @@ -938,7 +937,7 @@ Kubernetes supports SCTP as a `protocol` value in `Service`, `Endpoint`, `Networ #### The support of multihomed SCTP associations -The support of multihomed SCTP associations requires that the CNI plugin can support the assignment of multiple interfaces and IP addresses to a `Pod`. +The support of multihomed SCTP associations requires that the CNI plugin can support the assignment of multiple interfaces and IP addresses to a `Pod`. NAT for multihomed SCTP associations requires special logic in the corresponding kernel modules. @@ -961,4 +960,3 @@ The kube-proxy does not support the management of SCTP associations when it is i Read [Connecting a Front End to a Back End Using a Service](/docs/tasks/access-application-cluster/connecting-frontend-backend/). {{% /capture %}} - diff --git a/content/en/docs/concepts/storage/dynamic-provisioning.md b/content/en/docs/concepts/storage/dynamic-provisioning.md index cb180fb706..0a30dc447b 100644 --- a/content/en/docs/concepts/storage/dynamic-provisioning.md +++ b/content/en/docs/concepts/storage/dynamic-provisioning.md @@ -21,7 +21,6 @@ automatically provisions storage when it is requested by users. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -132,5 +131,3 @@ Pods are scheduled. This can be accomplished by setting the [Volume Binding Mode](/docs/concepts/storage/storage-classes/#volume-binding-mode). {{% /capture %}} - - diff --git a/content/en/docs/concepts/storage/persistent-volumes.md b/content/en/docs/concepts/storage/persistent-volumes.md index 2baa9d7f8b..28fc8b4f1a 100644 --- a/content/en/docs/concepts/storage/persistent-volumes.md +++ b/content/en/docs/concepts/storage/persistent-volumes.md @@ -20,7 +20,6 @@ This document describes the current state of `PersistentVolumes` in Kubernetes. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -674,7 +673,7 @@ and need persistent storage, we recommend that you use the following pattern: `persistentVolumeClaim.storageClassName` field. This will cause the PVC to match the right storage class if the cluster has StorageClasses enabled by the admin. - - If the user does not provide a storage class name, leave the + - If the user does not provide a storage class name, leave the `persistentVolumeClaim.storageClassName` field as nil. - This will cause a PV to be automatically provisioned for the user with the default StorageClass in the cluster. Many cluster environments have diff --git a/content/en/docs/concepts/storage/volume-snapshot-classes.md b/content/en/docs/concepts/storage/volume-snapshot-classes.md index 5ad05107eb..fcc16d4ef3 100644 --- a/content/en/docs/concepts/storage/volume-snapshot-classes.md +++ b/content/en/docs/concepts/storage/volume-snapshot-classes.md @@ -4,7 +4,7 @@ reviewers: - saad-ali - thockin - msau42 -title: Volume Snapshot Classes +title: Volume Snapshot Classes content_template: templates/concept weight: 30 --- @@ -17,7 +17,6 @@ with [volume snapshots](/docs/concepts/storage/volume-snapshots/) and {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/storage/volume-snapshots.md b/content/en/docs/concepts/storage/volume-snapshots.md index 73647b7825..6b57db96aa 100644 --- a/content/en/docs/concepts/storage/volume-snapshots.md +++ b/content/en/docs/concepts/storage/volume-snapshots.md @@ -15,7 +15,6 @@ This document describes the current state of `VolumeSnapshots` in Kubernetes. Fa {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -23,7 +22,7 @@ This document describes the current state of `VolumeSnapshots` in Kubernetes. Fa Similar to how API resources `PersistentVolume` and `PersistentVolumeClaim` are used to provision volumes for users and administrators, `VolumeSnapshotContent` and `VolumeSnapshot` API resources are provided to create volume snapshots for users and administrators. -A `VolumeSnapshotContent` is a snapshot taken from a volume in the cluster that has been provisioned by an administrator. It is a resource in the cluster just like a PersistentVolume is a cluster resource. +A `VolumeSnapshotContent` is a snapshot taken from a volume in the cluster that has been provisioned by an administrator. It is a resource in the cluster just like a PersistentVolume is a cluster resource. A `VolumeSnapshot` is a request for snapshot of a volume by a user. It is similar to a PersistentVolumeClaim. @@ -81,7 +80,7 @@ metadata: spec: snapshotClassName: csi-hostpath-snapclass source: - name: pvc-test + name: pvc-test kind: PersistentVolumeClaim volumeSnapshotSource: csiVolumeSnapshotSource: diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 5ad6ec22c2..5f16c2b464 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -22,7 +22,6 @@ Familiarity with [Pods](/docs/user-guide/pods) is suggested. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -925,7 +924,7 @@ A `storageos` volume allows an existing [StorageOS](https://www.storageos.com) volume to be mounted into your Pod. StorageOS runs as a Container within your Kubernetes environment, making local -or attached storage accessible from any node within the Kubernetes cluster. +or attached storage accessible from any node within the Kubernetes cluster. Data can be replicated to protect against node failure. Thin provisioning and compression can improve utilization and reduce cost. @@ -1053,7 +1052,7 @@ spec: image: mysql env: - name: MYSQL_ROOT_PASSWORD - value: "rootpasswd" + value: "rootpasswd" volumeMounts: - mountPath: /var/lib/mysql name: site-data @@ -1103,7 +1102,7 @@ spec: restartPolicy: Never volumes: - name: workdir1 - hostPath: + hostPath: path: /var/log/pods ``` @@ -1123,7 +1122,7 @@ several media types. ## Out-of-Tree Volume Plugins The Out-of-tree volume plugins include the Container Storage Interface (CSI) and Flexvolume. They enable storage vendors to create custom storage plugins -without adding them to the Kubernetes repository. +without adding them to the Kubernetes repository. Before the introduction of CSI and Flexvolume, all volume plugins (like volume types listed above) were "in-tree" meaning they were built, linked, @@ -1210,8 +1209,8 @@ persistent volume: {{< feature-state for_k8s_version="v1.11" state="alpha" >}} Starting with version 1.11, CSI introduced support for raw block volumes, which -relies on the raw block volume feature that was introduced in a previous version of -Kubernetes. This feature will make it possible for vendors with external CSI drivers to +relies on the raw block volume feature that was introduced in a previous version of +Kubernetes. This feature will make it possible for vendors with external CSI drivers to implement raw block volumes support in Kubernetes workloads. CSI block volume support is feature-gated and turned off by default. To run CSI with @@ -1222,7 +1221,7 @@ Kubernetes component using the following feature gate flags: --feature-gates=BlockVolume=true,CSIBlockVolume=true ``` -Learn how to +Learn how to [setup your PV/PVC with raw block volume support](/docs/concepts/storage/persistent-volumes/#raw-block-volume-support). ### Flexvolume @@ -1283,7 +1282,7 @@ In addition, any volume mounts created by Containers in Pods must be destroyed {{< /caution >}} ### Configuration -Before mount propagation can work properly on some deployments (CoreOS, +Before mount propagation can work properly on some deployments (CoreOS, RedHat/Centos, Ubuntu) mount share must be configured correctly in Docker as shown below. @@ -1302,5 +1301,3 @@ $ sudo systemctl restart docker {{% capture whatsnext %}} * Follow an example of [deploying WordPress and MySQL with Persistent Volumes](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/). {{% /capture %}} - - diff --git a/content/en/docs/concepts/workloads/controllers/cron-jobs.md b/content/en/docs/concepts/workloads/controllers/cron-jobs.md index 1c4e53ff95..3169cb13bf 100644 --- a/content/en/docs/concepts/workloads/controllers/cron-jobs.md +++ b/content/en/docs/concepts/workloads/controllers/cron-jobs.md @@ -16,13 +16,12 @@ One CronJob object is like one line of a _crontab_ (cron table) file. It runs a on a given schedule, written in [Cron](https://en.wikipedia.org/wiki/Cron) format. {{< note >}} **Note:** All **CronJob** `schedule:` times are denoted in UTC. -{{< /note >}} +{{< /note >}} For instructions on creating and working with cron jobs, and for an example of a spec file for a cron job, see [Running automated tasks with cron jobs](/docs/tasks/job/automated-tasks-with-cron-jobs). {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -42,7 +41,7 @@ For every CronJob, the CronJob controller checks how many schedules it missed in Cannot determine if job needs to be started. Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew. ```` -It is important to note that if the `startingDeadlineSeconds` field is set (not `nil`), the controller counts how many missed jobs occurred from the value of `startingDeadlineSeconds` until now rather than from the last scheduled time until now. For example, if `startingDeadlineSeconds` is `200`, the controller counts how many missed jobs occurred in the last 200 seconds. +It is important to note that if the `startingDeadlineSeconds` field is set (not `nil`), the controller counts how many missed jobs occurred from the value of `startingDeadlineSeconds` until now rather than from the last scheduled time until now. For example, if `startingDeadlineSeconds` is `200`, the controller counts how many missed jobs occurred in the last 200 seconds. A CronJob is counted as missed if it has failed to be created at its scheduled time. For example, If `concurrencyPolicy` is set to `Forbid` and a CronJob was attempted to be scheduled when there was a previous schedule still running, then it would count as missed. diff --git a/content/en/docs/concepts/workloads/controllers/daemonset.md b/content/en/docs/concepts/workloads/controllers/daemonset.md index 92a995b042..004dfe4923 100644 --- a/content/en/docs/concepts/workloads/controllers/daemonset.md +++ b/content/en/docs/concepts/workloads/controllers/daemonset.md @@ -29,7 +29,6 @@ different flags and/or different memory and cpu requests for different hardware {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -130,7 +129,7 @@ That introduces the following issues: * [Pod preemption](/docs/concepts/configuration/pod-priority-preemption/) is handled by default scheduler. When preemption is enabled, the DaemonSet controller will make scheduling decisions without considering pod priority and preemption. - + `ScheduleDaemonSetPods` allows you to schedule DaemonSets using the default scheduler instead of the DaemonSet controller, by adding the `NodeAffinity` term to the DaemonSet pods, instead of the `.spec.nodeName` term. The default diff --git a/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md b/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md index 6c387861e5..0fc09ad537 100644 --- a/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md +++ b/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md @@ -26,7 +26,6 @@ A Job can also be used to run multiple pods in parallel. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -223,7 +222,7 @@ Do this by setting the `.spec.activeDeadlineSeconds` field of the Job to a numbe The `activeDeadlineSeconds` applies to the duration of the job, no matter how many Pods are created. Once a Job reaches `activeDeadlineSeconds`, the Job and all of its Pods are terminated. -The result is that the job has a status with `reason: DeadlineExceeded`. +The result is that the job has a status with `reason: DeadlineExceeded`. Note that a Job's `.spec.activeDeadlineSeconds` takes precedence over its `.spec.backoffLimit`. Therefore, a Job that is retrying one or more failed Pods will not deploy additional Pods once it reaches the time limit specified by `activeDeadlineSeconds`, even if the `backoffLimit` is not yet reached. @@ -252,7 +251,7 @@ Note that both the Job Spec and the [Pod Template Spec](https://kubernetes.io/do Finished Jobs are usually no longer needed in the system. Keeping them around in the system will put pressure on the API server. If the Jobs are managed directly -by a higher level controller, such as +by a higher level controller, such as [CronJobs](/docs/concepts/workloads/controllers/cron-jobs/), the Jobs can be cleaned up by CronJobs based on the specified capacity-based cleanup policy. @@ -261,7 +260,7 @@ cleaned up by CronJobs based on the specified capacity-based cleanup policy. {{< feature-state for_k8s_version="v1.12" state="alpha" >}} Another way to clean up finished Jobs (either `Complete` or `Failed`) -automatically is to use a TTL mechanism provided by a +automatically is to use a TTL mechanism provided by a [TTL controller](/docs/concepts/workloads/controllers/ttlafterfinished/) for finished resources, by specifying the `.spec.ttlSecondsAfterFinished` field of the Job. @@ -290,16 +289,16 @@ spec: ``` The Job `pi-with-ttl` will be eligible to be automatically deleted, `100` -seconds after it finishes. +seconds after it finishes. If the field is set to `0`, the Job will be eligible to be automatically deleted immediately after it finishes. If the field is unset, this Job won't be cleaned up by the TTL controller after it finishes. Note that this TTL mechanism is alpha, with feature gate `TTLAfterFinished`. For -more information, see the documentation for +more information, see the documentation for [TTL controller](/docs/concepts/workloads/controllers/ttlafterfinished/) for -finished resources. +finished resources. ## Job Patterns diff --git a/content/en/docs/concepts/workloads/controllers/ttlafterfinished.md b/content/en/docs/concepts/workloads/controllers/ttlafterfinished.md index 1f8e355ff8..3ee76015f6 100644 --- a/content/en/docs/concepts/workloads/controllers/ttlafterfinished.md +++ b/content/en/docs/concepts/workloads/controllers/ttlafterfinished.md @@ -24,7 +24,6 @@ Alpha Disclaimer: this feature is currently alpha, and can be enabled with {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -34,7 +33,7 @@ Alpha Disclaimer: this feature is currently alpha, and can be enabled with The TTL controller only supports Jobs for now. A cluster operator can use this feature to clean up finished Jobs (either `Complete` or `Failed`) automatically by specifying the `.spec.ttlSecondsAfterFinished` field of a Job, as in this -[example](/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically). +[example](/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically). The TTL controller will assume that a resource is eligible to be cleaned up TTL seconds after the resource has finished, in other words, when the TTL has expired. When the TTL controller cleans up a resource, it will delete it cascadingly, i.e. delete diff --git a/content/en/docs/concepts/workloads/pods/disruptions.md b/content/en/docs/concepts/workloads/pods/disruptions.md index 1a620c9b75..79b0ac00d9 100644 --- a/content/en/docs/concepts/workloads/pods/disruptions.md +++ b/content/en/docs/concepts/workloads/pods/disruptions.md @@ -18,7 +18,6 @@ cluster actions, like upgrading and autoscaling clusters. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -266,6 +265,3 @@ the nodes in your cluster, such as a node or system software upgrade, here are s * Learn more about [draining nodes](/docs/tasks/administer-cluster/safely-drain-node/) {{% /capture %}} - - - diff --git a/content/en/docs/concepts/workloads/pods/init-containers.md b/content/en/docs/concepts/workloads/pods/init-containers.md index 4fb114f66c..6ee6dd45ce 100644 --- a/content/en/docs/concepts/workloads/pods/init-containers.md +++ b/content/en/docs/concepts/workloads/pods/init-containers.md @@ -12,7 +12,6 @@ Containers that run before app Containers and can contain utilities or setup scripts not present in an app image. {{% /capture %}} -{{< toc >}} This feature has exited beta in 1.6. Init Containers can be specified in the PodSpec alongside the app `containers` array. The beta annotation value will still be respected @@ -329,6 +328,3 @@ is removed, requiring a conversion from the deprecated annotations to the * [Creating a Pod that has an Init Container](/docs/tasks/configure-pod-container/configure-pod-initialization/#creating-a-pod-that-has-an-init-container) {{% /capture %}} - - - diff --git a/content/en/docs/concepts/workloads/pods/pod-overview.md b/content/en/docs/concepts/workloads/pods/pod-overview.md index 3a467b6674..d08433ef39 100644 --- a/content/en/docs/concepts/workloads/pods/pod-overview.md +++ b/content/en/docs/concepts/workloads/pods/pod-overview.md @@ -10,7 +10,6 @@ weight: 10 This page provides an overview of `Pod`, the smallest deployable object in the Kubernetes object model. {{% /capture %}} -{{< toc >}} {{% capture body %}} ## Understanding Pods @@ -104,5 +103,3 @@ Rather than specifying the current desired state of all replicas, pod templates * [Pod Termination](/docs/concepts/workloads/pods/pod/#termination-of-pods) * Other Pod Topics {{% /capture %}} - - diff --git a/content/en/docs/concepts/workloads/pods/pod.md b/content/en/docs/concepts/workloads/pods/pod.md index 7b000b4768..d468102304 100644 --- a/content/en/docs/concepts/workloads/pods/pod.md +++ b/content/en/docs/concepts/workloads/pods/pod.md @@ -12,7 +12,6 @@ managed in Kubernetes. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/concepts/workloads/pods/podpreset.md b/content/en/docs/concepts/workloads/pods/podpreset.md index f6e2ec494c..6711ba2ffe 100644 --- a/content/en/docs/concepts/workloads/pods/podpreset.md +++ b/content/en/docs/concepts/workloads/pods/podpreset.md @@ -12,7 +12,6 @@ certain information into pods at creation time. The information can include secrets, volumes, volume mounts, and environment variables. {{% /capture %}} -{{< toc >}} {{% capture body %}} ## Understanding Pod Presets @@ -22,7 +21,7 @@ into a Pod at creation time. You use [label selectors](/docs/concepts/overview/working-with-objects/labels/#label-selectors) to specify the Pods to which a given Pod Preset applies. -Using a Pod Preset allows pod template authors to not have to explicitly provide +Using a Pod Preset allows pod template authors to not have to explicitly provide all information for every pod. This way, authors of pod templates consuming a specific service do not need to know all the details about that service. @@ -53,7 +52,7 @@ the Pod; for changes to `Volume`, Kubernetes modifies the Pod Spec. {{< note >}} **Note:** A Pod Preset is capable of modifying the `.spec.containers` field in a -Pod spec when appropriate. *No* resource definition from the Pod Preset will be +Pod spec when appropriate. *No* resource definition from the Pod Preset will be applied to the `initContainers` field. {{< /note >}} @@ -69,7 +68,7 @@ In order to use Pod Presets in your cluster you must ensure the following: 1. You have enabled the API type `settings.k8s.io/v1alpha1/podpreset`. For example, this can be done by including `settings.k8s.io/v1alpha1=true` in - the `--runtime-config` option for the API server. + the `--runtime-config` option for the API server. 1. You have enabled the admission controller `PodPreset`. One way to doing this is to include `PodPreset` in the `--enable-admission-plugins` option value specified for the API server. @@ -83,5 +82,3 @@ In order to use Pod Presets in your cluster you must ensure the following: * [Injecting data into a Pod using PodPreset](/docs/tasks/inject-data-application/podpreset/) {{% /capture %}} - - diff --git a/content/en/docs/contribute/localization.md b/content/en/docs/contribute/localization.md index 716f2279d2..7120607d2e 100644 --- a/content/en/docs/contribute/localization.md +++ b/content/en/docs/contribute/localization.md @@ -20,7 +20,6 @@ We encourage you to add new [localizations](https://blog.mozilla.org/l10n/2011/ {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/contribute/style/content-organization.md b/content/en/docs/contribute/style/content-organization.md index f14a6432ab..61ee7d9a3b 100644 --- a/content/en/docs/contribute/style/content-organization.md +++ b/content/en/docs/contribute/style/content-organization.md @@ -4,7 +4,6 @@ content_template: templates/concept weight: 40 --- -{{< toc >}} {{% capture overview %}} @@ -62,7 +61,7 @@ linkTitle: Title used in links ### Documentation Side Menu -The documentation side-bar menu is built from the _current section tree_ starting below `docs/`. +The documentation side-bar menu is built from the _current section tree_ starting below `docs/`. It will show all sections and their pages. @@ -86,7 +85,7 @@ toc_hide: true ### The Main Menu -The site links in the top-right menu -- and also in the footer -- are built by page-lookups. This is to make sure that the page actually exists. So, if the `case-studies` section does not exist in a site (language), it will not be linked to. +The site links in the top-right menu -- and also in the footer -- are built by page-lookups. This is to make sure that the page actually exists. So, if the `case-studies` section does not exist in a site (language), it will not be linked to. ## Page Bundles @@ -137,4 +136,3 @@ The `SASS` source of the stylesheets for this site is stored below `src/sass` an * [Style guide](/docs/contribute/style/style-guide) {{% /capture %}} - diff --git a/content/en/docs/contribute/style/page-templates.md b/content/en/docs/contribute/style/page-templates.md index d1a21b83db..147e8f5ec7 100644 --- a/content/en/docs/contribute/style/page-templates.md +++ b/content/en/docs/contribute/style/page-templates.md @@ -23,7 +23,6 @@ template to use for a new topic, start with the {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -51,18 +50,18 @@ To write a new concept page, create a Markdown file in a subdirectory of the The page's body will look like this (remove any optional captures you don't need): - + ``` {{%/* capture overview */%}} - + {{%/* /capture */%}} - + {{%/* capture body */%}} - + {{%/* /capture */%}} - + {{%/* capture whatsnext */%}} - + {{%/* /capture */%}} ``` @@ -101,28 +100,28 @@ To write a new task page, create a Markdown file in a subdirectory of the The page's body will look like this (remove any optional captures you don't need): - + ``` {{%/* capture overview */%}} - + {{%/* /capture */%}} - + {{%/* capture prerequisites */%}} - + {{}} {{}} - + {{%/* /capture */%}} - + {{%/* capture steps */%}} - + {{%/* /capture */%}} - + {{%/* capture discussion */%}} - + {{%/* /capture */%}} - + {{%/* capture whatsnext */%}} - + {{%/* /capture */%}} ``` @@ -167,32 +166,32 @@ To write a new tutorial page, create a Markdown file in a subdirectory of the The page's body will look like this (remove any optional captures you don't need): - + ``` {{%/* capture overview */%}} - + {{%/* /capture */%}} - + {{%/* capture prerequisites */%}} - + {{}} {{}} - + {{%/* /capture */%}} - + {{%/* capture objectives */%}} - + {{%/* /capture */%}} - + {{%/* capture lessoncontent */%}} - + {{%/* /capture */%}} - + {{%/* capture cleanup */%}} - + {{%/* /capture */%}} - + {{%/* capture whatsnext */%}} - + {{%/* /capture */%}} ``` @@ -221,4 +220,3 @@ An example of a published topic that uses the tutorial template is - Learn about [content organization](/docs/contribute/style/content-organization/) {{% /capture %}} - diff --git a/content/en/docs/tasks/access-application-cluster/access-cluster.md b/content/en/docs/tasks/access-application-cluster/access-cluster.md index 5d424af279..1fcd18c10c 100644 --- a/content/en/docs/tasks/access-application-cluster/access-cluster.md +++ b/content/en/docs/tasks/access-application-cluster/access-cluster.md @@ -10,7 +10,6 @@ This topic discusses multiple ways to interact with clusters. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -285,16 +284,16 @@ The redirect capabilities have been deprecated and removed. Please use a proxy There are several different proxies you may encounter when using Kubernetes: 1. The [kubectl proxy](#directly-accessing-the-rest-api): - + - runs on a user's desktop or in a pod - proxies from a localhost address to the Kubernetes apiserver - client to proxy uses HTTP - proxy to apiserver uses HTTPS - locates apiserver - adds authentication headers - + 1. The [apiserver proxy](#discovering-builtin-services): - + - is a bastion built into the apiserver - connects a user outside of the cluster to cluster IPs which otherwise might not be reachable - runs in the apiserver processes @@ -302,23 +301,23 @@ There are several different proxies you may encounter when using Kubernetes: - proxy to target may use HTTP or HTTPS as chosen by proxy using available information - can be used to reach a Node, Pod, or Service - does load balancing when used to reach a Service - + 1. The [kube proxy](/docs/concepts/services-networking/service/#ips-and-vips): - + - runs on each node - proxies UDP and TCP - does not understand HTTP - provides load balancing - is just used to reach services - + 1. A Proxy/Load-balancer in front of apiserver(s): - + - existence and implementation varies from cluster to cluster (e.g. nginx) - sits between all clients and one or more apiservers - acts as load balancer if there are several apiservers. - + 1. Cloud Load Balancers on external services: - + - are provided by some cloud providers (e.g. AWS ELB, Google Cloud Load Balancer) - are created automatically when the Kubernetes service has type `LoadBalancer` - use UDP/TCP only diff --git a/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md b/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md index 25f4efc98d..4684387872 100644 --- a/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md +++ b/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md @@ -16,7 +16,6 @@ well as any provider specific details that may be necessary. {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/access-application-cluster/web-ui-dashboard.md b/content/en/docs/tasks/access-application-cluster/web-ui-dashboard.md index 0e851f85fd..6a4fb2fc18 100644 --- a/content/en/docs/tasks/access-application-cluster/web-ui-dashboard.md +++ b/content/en/docs/tasks/access-application-cluster/web-ui-dashboard.md @@ -18,7 +18,6 @@ Dashboard also provides information on the state of Kubernetes resources in your {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/administer-cluster/cluster-management.md b/content/en/docs/tasks/administer-cluster/cluster-management.md index 2871b52d03..2908666dcb 100644 --- a/content/en/docs/tasks/administer-cluster/cluster-management.md +++ b/content/en/docs/tasks/administer-cluster/cluster-management.md @@ -15,7 +15,6 @@ running cluster. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/administer-cluster/configure-multiple-schedulers.md b/content/en/docs/tasks/administer-cluster/configure-multiple-schedulers.md index 95c2150684..b6edeb4bc2 100644 --- a/content/en/docs/tasks/administer-cluster/configure-multiple-schedulers.md +++ b/content/en/docs/tasks/administer-cluster/configure-multiple-schedulers.md @@ -21,7 +21,6 @@ in the Kubernetes source directory for a canonical example. {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md index 8101cff681..bd0f59d948 100644 --- a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md +++ b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md @@ -12,7 +12,6 @@ content_template: templates/task {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/administer-cluster/cpu-management-policies.md b/content/en/docs/tasks/administer-cluster/cpu-management-policies.md index 18ba1f3700..c5b2a029d8 100644 --- a/content/en/docs/tasks/administer-cluster/cpu-management-policies.md +++ b/content/en/docs/tasks/administer-cluster/cpu-management-policies.md @@ -20,7 +20,6 @@ directives. {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} @@ -178,7 +177,7 @@ spec: ``` This pod runs in the `Guaranteed` QoS class because `requests` are equal to `limits`. -And the container's resource limit for the CPU resource is an integer greater than +And the container's resource limit for the CPU resource is an integer greater than or equal to one. The `nginx` container is granted 2 exclusive CPUs. @@ -213,8 +212,8 @@ spec: ``` This pod runs in the `Guaranteed` QoS class because only `limits` are specified -and `requests` are set equal to `limits` when not explicitly specified. And the -container's resource limit for the CPU resource is an integer greater than or +and `requests` are set equal to `limits` when not explicitly specified. And the +container's resource limit for the CPU resource is an integer greater than or equal to one. The `nginx` container is granted 2 exclusive CPUs. {{% /capture %}} diff --git a/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md b/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md index 9769340ced..6f0eaf9662 100644 --- a/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md +++ b/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md @@ -22,7 +22,6 @@ To dive a little deeper into implementation details, all cloud controller manage {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md index 93d0808721..3d6c53e965 100644 --- a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md +++ b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md @@ -18,7 +18,6 @@ vacated by the evicted critical add-on pod or the amount of resources available {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -51,7 +50,7 @@ killed for this purpose. Please ensure that rescheduler is not enabled along wit Rescheduler doesn't have any user facing configuration (component config) or API. -### Marking pod as critical when using Rescheduler. +### Marking pod as critical when using Rescheduler. To be considered critical, the pod has to run in the `kube-system` namespace (configurable via flag) and diff --git a/content/en/docs/tasks/administer-cluster/highly-available-master.md b/content/en/docs/tasks/administer-cluster/highly-available-master.md index c3a86e1675..598339a3b1 100644 --- a/content/en/docs/tasks/administer-cluster/highly-available-master.md +++ b/content/en/docs/tasks/administer-cluster/highly-available-master.md @@ -14,7 +14,6 @@ This document describes how to use kube-up/down scripts to manage highly availab {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/administer-cluster/namespaces-walkthrough.md b/content/en/docs/tasks/administer-cluster/namespaces-walkthrough.md index 9d3de79c39..4cd6eba746 100644 --- a/content/en/docs/tasks/administer-cluster/namespaces-walkthrough.md +++ b/content/en/docs/tasks/administer-cluster/namespaces-walkthrough.md @@ -20,7 +20,6 @@ This example demonstrates how to use Kubernetes namespaces to subdivide your clu {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/administer-cluster/out-of-resource.md b/content/en/docs/tasks/administer-cluster/out-of-resource.md index 62c9f8344d..c6f89e88e8 100644 --- a/content/en/docs/tasks/administer-cluster/out-of-resource.md +++ b/content/en/docs/tasks/administer-cluster/out-of-resource.md @@ -18,7 +18,6 @@ nodes become unstable. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -205,7 +204,7 @@ If `nodefs` filesystem has met eviction thresholds, `kubelet` frees up disk spac If the `kubelet` is unable to reclaim sufficient resource on the node, `kubelet` begins evicting Pods. -The `kubelet` ranks Pods for eviction first by whether or not their usage of the starved resource exceeds requests, +The `kubelet` ranks Pods for eviction first by whether or not their usage of the starved resource exceeds requests, then by [Priority](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/), and then by the consumption of the starved compute resource relative to the Pods' scheduling requests. As a result, `kubelet` ranks and evicts Pods in the following order: @@ -213,15 +212,15 @@ As a result, `kubelet` ranks and evicts Pods in the following order: * `BestEffort` or `Burstable` Pods whose usage of a starved resource exceeds its request. Such pods are ranked by Priority, and then usage above request. * `Guaranteed` pods and `Burstable` pods whose usage is beneath requests are evicted last. -`Guaranteed` Pods are guaranteed only when requests and limits are specified for all -the containers and they are equal. Such pods are guaranteed to never be evicted because +`Guaranteed` Pods are guaranteed only when requests and limits are specified for all +the containers and they are equal. Such pods are guaranteed to never be evicted because of another Pod's resource consumption. If a system daemon (such as `kubelet`, `docker`, and `journald`) is consuming more resources than were reserved via `system-reserved` or -`kube-reserved` allocations, and the node only has `Guaranteed` or `Burstable` Pods using -less than requests remaining, then the node must choose to evict such a Pod in order to +`kube-reserved` allocations, and the node only has `Guaranteed` or `Burstable` Pods using +less than requests remaining, then the node must choose to evict such a Pod in order to preserve node stability and to limit the impact of the unexpected consumption to other Pods. In this case, it will choose to evict pods of Lowest Priority first. - + If necessary, `kubelet` evicts Pods one at a time to reclaim disk when `DiskPressure` is encountered. If the `kubelet` is responding to `inode` starvation, it reclaims `inodes` by evicting Pods with the lowest quality of service first. If the `kubelet` diff --git a/content/en/docs/tasks/administer-cluster/reserve-compute-resources.md b/content/en/docs/tasks/administer-cluster/reserve-compute-resources.md index c852413a05..923db9a03c 100644 --- a/content/en/docs/tasks/administer-cluster/reserve-compute-resources.md +++ b/content/en/docs/tasks/administer-cluster/reserve-compute-resources.md @@ -23,7 +23,6 @@ on each node. {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/administer-cluster/running-cloud-controller.md b/content/en/docs/tasks/administer-cluster/running-cloud-controller.md index 3169531a24..3abad0465b 100644 --- a/content/en/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/content/en/docs/tasks/administer-cluster/running-cloud-controller.md @@ -17,7 +17,6 @@ The `cloud-controller-manager` can be linked to any cloud provider that satisfie {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/administer-cluster/static-pod.md b/content/en/docs/tasks/administer-cluster/static-pod.md index 958489779c..87dad377cd 100644 --- a/content/en/docs/tasks/administer-cluster/static-pod.md +++ b/content/en/docs/tasks/administer-cluster/static-pod.md @@ -16,7 +16,6 @@ This means that the pods are visible on the API server but cannot be controlled {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -103,7 +102,7 @@ Notice we cannot delete the pod with the API server (e.g. via [`kubectl`](/docs/ {{}} **Note**: Make sure the kubelet has permission to create the mirror pod in the API server. -If not, the creation request is rejected by the API server. See +If not, the creation request is rejected by the API server. See [PodSecurityPolicy](/docs/concepts/policy/pod-security-policy/). {{}} diff --git a/content/en/docs/tasks/administer-federation/events.md b/content/en/docs/tasks/administer-federation/events.md index 3fd06ce194..e855afb3d1 100644 --- a/content/en/docs/tasks/administer-federation/events.md +++ b/content/en/docs/tasks/administer-federation/events.md @@ -13,7 +13,6 @@ This guide explains how to use events in federation control plane to help in deb {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/administer-federation/secret.md b/content/en/docs/tasks/administer-federation/secret.md index 40feb9a70f..dc5b0e3d6c 100644 --- a/content/en/docs/tasks/administer-federation/secret.md +++ b/content/en/docs/tasks/administer-federation/secret.md @@ -18,7 +18,6 @@ Creating them in the federation control plane ensures that they are synchronized across all the clusters in federation. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/configure-pod-container/configure-service-account.md b/content/en/docs/tasks/configure-pod-container/configure-service-account.md index f8eab60ebd..d2ff5adb7c 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-service-account.md +++ b/content/en/docs/tasks/configure-pod-container/configure-service-account.md @@ -30,7 +30,6 @@ When they do, they are authenticated as a particular Service Account (for exampl {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} @@ -181,7 +180,7 @@ token: ... ## Add ImagePullSecrets to a service account -First, create an imagePullSecret, as described [here](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod). +First, create an imagePullSecret, as described [here](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod). Next, verify it has been created. For example: ```shell @@ -304,5 +303,3 @@ The application is responsible for reloading the token when it rotates. Periodic reloading (e.g. once every 5 minutes) is sufficient for most usecases. {{% /capture %}} - - diff --git a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md index 918a366c1d..316854b476 100644 --- a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md +++ b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md @@ -14,7 +14,6 @@ More information can be found on the Kompose website at [http://kompose.io](http {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} @@ -33,7 +32,7 @@ We have multiple ways to install Kompose. Our preferred method is downloading th Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases). ```sh -# Linux +# Linux curl -L https://github.com/kubernetes/kompose/releases/download/v1.1.0/kompose-linux-amd64 -o kompose # macOS @@ -98,7 +97,7 @@ you need is an existing `docker-compose.yml` file. services: redis-master: - image: k8s.gcr.io/redis:e2e + image: k8s.gcr.io/redis:e2e ports: - "6379" @@ -124,8 +123,8 @@ you need is an existing `docker-compose.yml` file. ```bash $ kompose up - We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. - If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. + We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. + If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. INFO Successfully created Service: redis INFO Successfully created Service: web @@ -157,7 +156,7 @@ you need is an existing `docker-compose.yml` file. deployment.apps/redis-master created deployment.apps/redis-slave created ``` - + Your deployments are running in Kubernetes. 4. Access your application. @@ -252,7 +251,7 @@ INFO Kubernetes file "redis-slave-service.yaml" created INFO Kubernetes file "frontend-deployment.yaml" created INFO Kubernetes file "mlbparks-deployment.yaml" created INFO Kubernetes file "mongodb-deployment.yaml" created -INFO Kubernetes file "mongodb-claim0-persistentvolumeclaim.yaml" created +INFO Kubernetes file "mongodb-claim0-persistentvolumeclaim.yaml" created INFO Kubernetes file "redis-master-deployment.yaml" created INFO Kubernetes file "redis-slave-deployment.yaml" created @@ -261,10 +260,10 @@ mlbparks-deployment.yaml mongodb-service.yaml redis-slave frontend-deployment.yaml mongodb-claim0-persistentvolumeclaim.yaml redis-master-service.yaml frontend-service.yaml mongodb-deployment.yaml redis-slave-deployment.yaml redis-master-deployment.yaml -``` +``` When multiple docker-compose files are provided the configuration is merged. Any configuration that is common will be over ridden by subsequent file. - + ### OpenShift ```sh @@ -290,11 +289,11 @@ It also supports creating buildconfig for build directive in a service. By defau ```sh $ kompose --provider openshift --file buildconfig/docker-compose.yml convert -WARN [foo] Service cannot be created because of missing port. -INFO OpenShift Buildconfig using git@github.com:rtnpro/kompose.git::master as source. +WARN [foo] Service cannot be created because of missing port. +INFO OpenShift Buildconfig using git@github.com:rtnpro/kompose.git::master as source. INFO OpenShift file "foo-deploymentconfig.yaml" created INFO OpenShift file "foo-imagestream.yaml" created -INFO OpenShift file "foo-buildconfig.yaml" created +INFO OpenShift file "foo-buildconfig.yaml" created ``` **Note**: If you are manually pushing the Openshift artifacts using ``oc create -f``, you need to ensure that you push the imagestream artifact before the buildconfig artifact, to workaround this Openshift issue: https://github.com/openshift/origin/issues/4518 . @@ -418,15 +417,15 @@ Using `kompose up` with a `build` key: ```none $ kompose up -INFO Build key detected. Attempting to build and push image 'docker.io/foo/bar' -INFO Building image 'docker.io/foo/bar' from directory 'build' -INFO Image 'docker.io/foo/bar' from directory 'build' built successfully -INFO Pushing image 'foo/bar:latest' to registry 'docker.io' -INFO Attempting authentication credentials 'https://index.docker.io/v1/ -INFO Successfully pushed image 'foo/bar:latest' to registry 'docker.io' -INFO We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. - -INFO Deploying application in "default" namespace +INFO Build key detected. Attempting to build and push image 'docker.io/foo/bar' +INFO Building image 'docker.io/foo/bar' from directory 'build' +INFO Image 'docker.io/foo/bar' from directory 'build' built successfully +INFO Pushing image 'foo/bar:latest' to registry 'docker.io' +INFO Attempting authentication credentials 'https://index.docker.io/v1/ +INFO Successfully pushed image 'foo/bar:latest' to registry 'docker.io' +INFO We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. + +INFO Deploying application in "default" namespace INFO Successfully created Service: foo INFO Successfully created Deployment: foo @@ -479,7 +478,7 @@ The `*-daemonset.yaml` files contain the Daemon Set objects If you want to generate a Chart to be used with [Helm](https://github.com/kubernetes/helm) simply do: ```sh -$ kompose convert -c +$ kompose convert -c INFO Kubernetes file "web-svc.yaml" created INFO Kubernetes file "redis-svc.yaml" created INFO Kubernetes file "web-deployment.yaml" created @@ -509,7 +508,7 @@ For example: ```yaml version: "2" -services: +services: nginx: image: nginx dockerfile: foobar @@ -517,7 +516,7 @@ services: cap_add: - ALL container_name: foobar - labels: + labels: kompose.service.type: nodeport ``` diff --git a/content/en/docs/tasks/debug-application-cluster/audit.md b/content/en/docs/tasks/debug-application-cluster/audit.md index d970f5ad86..10f8161f26 100644 --- a/content/en/docs/tasks/debug-application-cluster/audit.md +++ b/content/en/docs/tasks/debug-application-cluster/audit.md @@ -24,7 +24,6 @@ answer the following questions: {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md b/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md index 53185780f3..e44f98c90d 100644 --- a/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md +++ b/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md @@ -15,7 +15,6 @@ Horizontal Pod Autoscaler, to make decisions. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/crictl.md b/content/en/docs/tasks/debug-application-cluster/crictl.md index 71ccab81aa..7c8afeee5a 100644 --- a/content/en/docs/tasks/debug-application-cluster/crictl.md +++ b/content/en/docs/tasks/debug-application-cluster/crictl.md @@ -7,7 +7,6 @@ title: Debugging Kubernetes nodes with crictl content_template: templates/task --- -{{< toc >}} {{% capture overview %}} @@ -230,7 +229,7 @@ deleted by the Kubelet. ```bash crictl runp pod-config.json ``` - + The ID of the sandbox is returned. ### Create a container diff --git a/content/en/docs/tasks/debug-application-cluster/debug-application-introspection.md b/content/en/docs/tasks/debug-application-cluster/debug-application-introspection.md index 955164e24a..e64ba4db1d 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-application-introspection.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-application-introspection.md @@ -14,7 +14,6 @@ your pods. But there are a number of ways to get even more information about you {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/debug-application.md b/content/en/docs/tasks/debug-application-cluster/debug-application.md index 0d9dd609b5..c7e1a7a961 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-application.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-application.md @@ -14,7 +14,6 @@ This is *not* a guide for people who want to debug their cluster. For that you {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/debug-cluster.md b/content/en/docs/tasks/debug-application-cluster/debug-cluster.md index 01c4b86a44..620bfa4e2b 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-cluster.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-cluster.md @@ -14,7 +14,6 @@ You may also visit [troubleshooting document](/docs/troubleshooting/) for more i {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/debug-service.md b/content/en/docs/tasks/debug-application-cluster/debug-service.md index 9c6f25c221..3e470a11e3 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-service.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-service.md @@ -14,7 +14,6 @@ This document will hopefully help you to figure out what's going wrong. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md b/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md index cc82d0b834..1c612bf526 100644 --- a/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md +++ b/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md @@ -38,7 +38,6 @@ of the potential inaccuracy. {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md index b9251fc989..378d5c6b33 100644 --- a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md +++ b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md @@ -20,7 +20,6 @@ in the Kubernetes logging overview. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -263,7 +262,7 @@ In this case you need to be able to change the parameters of `DaemonSet` and `Co If you're using GKE and Stackdriver Logging is enabled in your cluster, you cannot change its configuration, because it's managed and supported by GKE. -However, you can disable the default integration and deploy your own. +However, you can disable the default integration and deploy your own. {{< note >}}**Note:** You will have to support and maintain a newly deployed configuration yourself: update the image and configuration, adjust the resources and so on.{{< /note >}} To disable the default logging integration, use the following command: @@ -325,7 +324,7 @@ kubectl get cm fluentd-gcp-config --namespace kube-system -o yaml > fluentd-gcp- ``` Then in the value for the key `containers.input.conf` insert a new filter right after -the `source` section. +the `source` section. {{< note >}}**Note:** Order is important.{{< /note >}} Updating `ConfigMap` in the apiserver is more complicated than updating `DaemonSet`. It's better diff --git a/content/en/docs/tasks/debug-application-cluster/troubleshooting.md b/content/en/docs/tasks/debug-application-cluster/troubleshooting.md index f1c169ea99..4f42e56fcb 100644 --- a/content/en/docs/tasks/debug-application-cluster/troubleshooting.md +++ b/content/en/docs/tasks/debug-application-cluster/troubleshooting.md @@ -19,7 +19,6 @@ you're using. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -103,4 +102,4 @@ problem, such as: * Cloud provider, OS distro, network configuration, and Docker version * Steps to reproduce the problem -{{% /capture %}} \ No newline at end of file +{{% /capture %}} diff --git a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md index 4791e18f70..e6db7c3c31 100644 --- a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -23,7 +23,6 @@ using `kubefed`. {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} @@ -41,14 +40,14 @@ for installation instructions for your platform. ## Getting `kubefed` -Download the client tarball corresponding to the particular release and +Download the client tarball corresponding to the particular release and extract the binaries in the tarball: {{< note >}} -**Note:** Until Kubernetes version `1.8.x` the federation project was +**Note:** Until Kubernetes version `1.8.x` the federation project was maintained as part of the [core kubernetes repo](https://github.com/kubernetes/kubernetes). -Between Kubernetes releases `1.8` and `1.9`, the federation project moved into -a separate [federation repo](https://github.com/kubernetes/federation), where it is +Between Kubernetes releases `1.8` and `1.9`, the federation project moved into +a separate [federation repo](https://github.com/kubernetes/federation), where it is now maintained. Consequently, the federation release information is available on the [release page](https://github.com/kubernetes/federation/releases). {{< /note >}} @@ -60,7 +59,7 @@ curl -LO https://storage.googleapis.com/kubernetes-release/release/${RELEASE-VER tar -xzvf kubernetes-client-linux-amd64.tar.gz ``` {{< note >}} -**Note:** The `RELEASE-VERSION` variable should either be set to or replaced with the actual version needed. +**Note:** The `RELEASE-VERSION` variable should either be set to or replaced with the actual version needed. {{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` @@ -79,7 +78,7 @@ tar -xzvf federation-client-linux-amd64.tar.gz ``` {{< note >}} -**Note:** The `RELEASE-VERSION` variable should be replaced with one of the release versions available at [federation release page](https://github.com/kubernetes/federation/releases). +**Note:** The `RELEASE-VERSION` variable should be replaced with one of the release versions available at [federation release page](https://github.com/kubernetes/federation/releases). {{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` @@ -92,7 +91,7 @@ sudo chmod +x /usr/local/bin/kubefed ### Install kubectl -You can install a matching version of kubectl using the instructions on +You can install a matching version of kubectl using the instructions on the [kubectl install page](https://kubernetes.io/docs/tasks/tools/install-kubectl/). ## Choosing a host cluster. @@ -177,7 +176,7 @@ without the Google Cloud DNS API scope by default. If you want to use a Google Kubernetes Engine cluster as a Federation host, you must create it using the `gcloud` command with the appropriate value in the `--scopes` field. You cannot modify a Google Kubernetes Engine cluster directly to add this scope, but you can create a -new node pool for your cluster and delete the old one. +new node pool for your cluster and delete the old one. {{< note >}} **Note:** This will cause pods in the cluster to be rescheduled. @@ -200,7 +199,7 @@ gcloud container node-pools delete default-pool --cluster gke-cluster `kubefed init` sets up the federation control plane in the host cluster and also adds an entry for the federation API server in your -local kubeconfig. +local kubeconfig. {{< note >}} **Note:** In the beta release of Kubernetes 1.6, `kubefed init` does not automatically set the current context to the newly deployed federation. You can set the current context manually by running: @@ -436,7 +435,7 @@ Where `` is the name of the file you created above. ## Adding a cluster to a federation -After you've deployed a federation control plane, you'll need to make that control plane aware of the clusters it should manage. +After you've deployed a federation control plane, you'll need to make that control plane aware of the clusters it should manage. To join clusters into the federation: @@ -463,7 +462,7 @@ To join clusters into the federation: kubefed join gondor --host-cluster-context=rivendell ``` -A new context has now been added to your kubeconfig named `fellowship` (after the name of your federation). +A new context has now been added to your kubeconfig named `fellowship` (after the name of your federation). {{< note >}} diff --git a/content/en/docs/tasks/job/coarse-parallel-processing-work-queue.md b/content/en/docs/tasks/job/coarse-parallel-processing-work-queue.md index 9381e26c2d..c24790b2f4 100644 --- a/content/en/docs/tasks/job/coarse-parallel-processing-work-queue.md +++ b/content/en/docs/tasks/job/coarse-parallel-processing-work-queue.md @@ -4,12 +4,11 @@ content_template: templates/task weight: 30 --- -{{< toc >}} {{% capture overview %}} In this example, we will run a Kubernetes Job with multiple parallel -worker processes. +worker processes. In this example, as each pod is created, it picks up one unit of work from a task queue, completes it, deletes it from the queue, and exits. @@ -25,7 +24,6 @@ Here is an overview of the steps in this example: {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/job/fine-parallel-processing-work-queue.md b/content/en/docs/tasks/job/fine-parallel-processing-work-queue.md index bf65daa13d..d96f5ed986 100644 --- a/content/en/docs/tasks/job/fine-parallel-processing-work-queue.md +++ b/content/en/docs/tasks/job/fine-parallel-processing-work-queue.md @@ -26,7 +26,6 @@ Here is an overview of the steps in this example: {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/job/parallel-processing-expansion.md b/content/en/docs/tasks/job/parallel-processing-expansion.md index 102844e7aa..b71f1c7c2e 100644 --- a/content/en/docs/tasks/job/parallel-processing-expansion.md +++ b/content/en/docs/tasks/job/parallel-processing-expansion.md @@ -12,7 +12,6 @@ non-parallel, use of [Jobs](/docs/concepts/workloads/controllers/jobs-run-to-com {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/manage-gpus/scheduling-gpus.md b/content/en/docs/tasks/manage-gpus/scheduling-gpus.md index a191b4ec92..51f94a255d 100644 --- a/content/en/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/content/en/docs/tasks/manage-gpus/scheduling-gpus.md @@ -17,7 +17,6 @@ and the current limitations. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -33,7 +32,7 @@ from 1.10. Then you have to install GPU drivers from the corresponding vendor on the nodes and run the corresponding device plugin from the GPU vendor -([AMD](#deploying-amd-gpu-device-plugin), [NVIDIA](#deploying-nvidia-gpu-device-plugin)). +([AMD](#deploying-amd-gpu-device-plugin), [NVIDIA](#deploying-nvidia-gpu-device-plugin)). When the above conditions are true, Kubernetes will expose `nvidia.com/gpu` or `amd.com/gpu` as a schedulable resource. diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index 521b688bb7..a7ca4fb158 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -19,7 +19,6 @@ This document walks you through an example of enabling Horizontal Pod Autoscaler {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md index 1c1cbd0a5e..99713f966d 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md @@ -28,7 +28,6 @@ to match the observed average CPU utilization to the target specified by user. {{% /capture %}} -{{< toc >}} {{% capture body %}} @@ -161,7 +160,7 @@ into a desired replica count (e.g. due to an error fetching the metrics from the metrics APIs), scaling is skipped. Finally, just before HPA scales the target, the scale reccomendation is recorded. The -controller considers all recommendations within a configurable window choosing the +controller considers all recommendations within a configurable window choosing the highest recommendation from within that window. This value can be configured using the `--horizontal-pod-autoscaler-downscale-stabilization-window` flag, which defaults to 5 minutes. This means that scaledowns will occur gradually, smoothing out the impact of rapidly fluctuating metric values. diff --git a/content/en/docs/tasks/run-application/rolling-update-replication-controller.md b/content/en/docs/tasks/run-application/rolling-update-replication-controller.md index 5e2e2c0b97..63db0a2ac0 100644 --- a/content/en/docs/tasks/run-application/rolling-update-replication-controller.md +++ b/content/en/docs/tasks/run-application/rolling-update-replication-controller.md @@ -42,7 +42,6 @@ Rolling updates are initiated with the `kubectl rolling-update` command: {{% /capture %}} -{{< toc >}} {{% capture body %}} diff --git a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md index 1c3d98e989..dba3f0e142 100644 --- a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md +++ b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md @@ -21,7 +21,6 @@ protocol that is similar to the {{% /capture %}} -{{< toc >}} {{% capture prerequisites %}} From 61afa0380f2268da0c79c84d4b2eb55712b77aca Mon Sep 17 00:00:00 2001 From: wangxy518 <40482095+wangxy518@users.noreply.github.com> Date: Fri, 26 Oct 2018 02:28:37 +0800 Subject: [PATCH 26/62] Update baseof.html (#10696) --- layouts/blog/baseof.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/blog/baseof.html b/layouts/blog/baseof.html index 618c3e3eba..6ed37875c7 100644 --- a/layouts/blog/baseof.html +++ b/layouts/blog/baseof.html @@ -25,7 +25,7 @@ @Kubernetesio View on Github #kubernetes-users - Stack Overflow + Stack Overflow Forum Download Kubernetes From 84e3e3a7b29df665388cb63886022c3b3fe946c3 Mon Sep 17 00:00:00 2001 From: Florian Arthofer Date: Thu, 25 Oct 2018 21:47:08 +0200 Subject: [PATCH 27/62] Added link for Dynatrace (#10629) Added link to Dynatrac k8s monitoring info page --- content/en/docs/concepts/workloads/controllers/daemonset.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/workloads/controllers/daemonset.md b/content/en/docs/concepts/workloads/controllers/daemonset.md index 004dfe4923..5fd9fd4396 100644 --- a/content/en/docs/concepts/workloads/controllers/daemonset.md +++ b/content/en/docs/concepts/workloads/controllers/daemonset.md @@ -21,7 +21,7 @@ Some typical uses of a DaemonSet are: - running a cluster storage daemon, such as `glusterd`, `ceph`, on each node. - running a logs collection daemon on every node, such as `fluentd` or `logstash`. - running a node monitoring daemon on every node, such as [Prometheus Node Exporter]( - https://github.com/prometheus/node_exporter), `collectd`, Dynatrace OneAgent, Datadog agent, New Relic agent, Ganglia `gmond` or Instana agent. + https://github.com/prometheus/node_exporter), `collectd`, [Dynatrace OneAgent](https://www.dynatrace.com/technologies/kubernetes-monitoring/), Datadog agent, New Relic agent, Ganglia `gmond` or Instana agent. In a simple case, one DaemonSet, covering all nodes, would be used for each type of daemon. A more complex setup might use multiple DaemonSets for a single type of daemon, but with From 6a812006f05253e6ec342febf538d21ba62b577b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Aillet Date: Thu, 25 Oct 2018 23:04:32 +0200 Subject: [PATCH 28/62] Add Aggregation Layer to glossary (#10535) * Add Aggregation Layer to glossary * Fix after review * Adjustments after review --- .../reference/glossary/aggregation-layer.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 content/en/docs/reference/glossary/aggregation-layer.md diff --git a/content/en/docs/reference/glossary/aggregation-layer.md b/content/en/docs/reference/glossary/aggregation-layer.md new file mode 100644 index 0000000000..d97b34d16d --- /dev/null +++ b/content/en/docs/reference/glossary/aggregation-layer.md @@ -0,0 +1,20 @@ +--- +title: Aggregation Layer +id: aggregation-layer +date: 2018-10-08 +full_link: /docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/ +short_description: > + The aggregation layer lets you install additional Kubernetes-style APIs in your cluster. + +aka: +tags: +- architecture +- extension +- operation +--- + The aggregation layer lets you install additional Kubernetes-style APIs in your cluster. + + + +When you've configured the {{< glossary_tooltip text="Kubernetes API Server" term_id="kube-apiserver" >}} to [support additional APIs](https://kubernetes.io/docs/tasks/access-kubernetes-api/configure-aggregation-layer/), you can add `APIService` objects to "claim" a URL path in the Kubernetes API. + From 65eac7148963e06ea759665a4a66209bca207455 Mon Sep 17 00:00:00 2001 From: Lee Gaines Date: Thu, 25 Oct 2018 14:08:57 -0700 Subject: [PATCH 29/62] Updated the numbering of instructions (#10401) * Updated the numbering of instructions All of the instructions were numbered like this: 1. do something 1. then do this 1. finally, do this. I just changed them accordingly to be 1-2-3. There was also a case typo in the `LOG_LEVEL=info` which should be `LOG_LEVEL=INFO` based on the data in the yaml file. * Update numbered list formatting * [WIP] test snippet fix * more numbered list/snippet fixes --- .../configure-pod-configmap.md | 212 +++++++++--------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md index bb11bc2baa..651b72e65d 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md +++ b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md @@ -297,130 +297,130 @@ metadata: ### Define a container environment variable with data from a single ConfigMap -1. Define an environment variable as a key-value pair in a ConfigMap: +1. Define an environment variable as a key-value pair in a ConfigMap: - ```shell - kubectl create configmap special-config --from-literal=special.how=very - ``` + ```shell + kubectl create configmap special-config --from-literal=special.how=very + ``` -1. Assign the `special.how` value defined in the ConfigMap to the `SPECIAL_LEVEL_KEY` environment variable in the Pod specification. +1. Assign the `special.how` value defined in the ConfigMap to the `SPECIAL_LEVEL_KEY` environment variable in the Pod specification. - ```shell - kubectl edit pod dapi-test-pod - ``` + ```shell + kubectl edit pod dapi-test-pod + ``` - ```yaml - apiVersion: v1 - kind: Pod - metadata: - name: dapi-test-pod - spec: - containers: - - name: test-container - image: k8s.gcr.io/busybox - command: [ "/bin/sh", "-c", "env" ] - env: - # Define the environment variable - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - # The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY - name: special-config - # Specify the key associated with the value - key: special.how - restartPolicy: Never - ``` + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: dapi-test-pod + spec: + containers: + - name: test-container + image: k8s.gcr.io/busybox + command: [ "/bin/sh", "-c", "env" ] + env: + # Define the environment variable + - name: SPECIAL_LEVEL_KEY + valueFrom: + configMapKeyRef: + # The ConfigMap containing the value you want to assign to SPECIAL_LEVEL_KEY + name: special-config + # Specify the key associated with the value + key: special.how + restartPolicy: Never + ``` -1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very`. +1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very`. ### Define container environment variables with data from multiple ConfigMaps -1. As with the previous example, create the ConfigMaps first. +1. As with the previous example, create the ConfigMaps first. - ```yaml - apiVersion: v1 - kind: ConfigMap - metadata: - name: special-config - namespace: default - data: - special.how: very - ``` + ```yaml + apiVersion: v1 + kind: ConfigMap + metadata: + name: special-config + namespace: default + data: + special.how: very + ``` - ```yaml - apiVersion: v1 - kind: ConfigMap - metadata: - name: env-config - namespace: default - data: - log_level: INFO - ``` + ```yaml + apiVersion: v1 + kind: ConfigMap + metadata: + name: env-config + namespace: default + data: + log_level: INFO + ``` -1. Define the environment variables in the Pod specification. +1. Define the environment variables in the Pod specification. - ```yaml - apiVersion: v1 - kind: Pod - metadata: - name: dapi-test-pod - spec: - containers: - - name: test-container - image: k8s.gcr.io/busybox - command: [ "/bin/sh", "-c", "env" ] - env: - - name: SPECIAL_LEVEL_KEY - valueFrom: - configMapKeyRef: - name: special-config - key: special.how - - name: LOG_LEVEL - valueFrom: - configMapKeyRef: - name: env-config - key: log_level - restartPolicy: Never - ``` + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: dapi-test-pod + spec: + containers: + - name: test-container + image: k8s.gcr.io/busybox + command: [ "/bin/sh", "-c", "env" ] + env: + - name: SPECIAL_LEVEL_KEY + valueFrom: + configMapKeyRef: + name: special-config + key: special.how + - name: LOG_LEVEL + valueFrom: + configMapKeyRef: + name: env-config + key: log_level + restartPolicy: Never + ``` -1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very` and `LOG_LEVEL=info`. +1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very` and `LOG_LEVEL=INFO`. ## Configure all key-value pairs in a ConfigMap as container environment variables {{< note >}} - **Note:** This functionality is available to users running Kubernetes v1.6 and later. + **Note:** This functionality is available in Kubernetes v1.6 and later. {{< /note >}} -1. Create a ConfigMap containing multiple key-value pairs. +1. Create a ConfigMap containing multiple key-value pairs. - ```yaml - apiVersion: v1 - kind: ConfigMap - metadata: - name: special-config - namespace: default - data: - SPECIAL_LEVEL: very - SPECIAL_TYPE: charm - ``` + ```yaml + apiVersion: v1 + kind: ConfigMap + metadata: + name: special-config + namespace: default + data: + SPECIAL_LEVEL: very + SPECIAL_TYPE: charm + ``` -1. Use `envFrom` to define all of the ConfigMap's data as container environment variables. The key from the ConfigMap becomes the environment variable name in the Pod. +1. Use `envFrom` to define all of the ConfigMap's data as container environment variables. The key from the ConfigMap becomes the environment variable name in the Pod. - ```yaml - apiVersion: v1 - kind: Pod - metadata: - name: dapi-test-pod - spec: - containers: - - name: test-container - image: k8s.gcr.io/busybox - command: [ "/bin/sh", "-c", "env" ] - envFrom: - - configMapRef: - name: special-config - restartPolicy: Never - ``` + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: dapi-test-pod + spec: + containers: + - name: test-container + image: k8s.gcr.io/busybox + command: [ "/bin/sh", "-c", "env" ] + envFrom: + - configMapRef: + name: special-config + restartPolicy: Never + ``` 1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL=very` and `SPECIAL_TYPE=charm`. @@ -602,9 +602,9 @@ data: ### Restrictions -1. You must create a ConfigMap before referencing it in a Pod specification (unless you mark the ConfigMap as "optional"). If you reference a ConfigMap that doesn't exist, the Pod won't start. Likewise, references to keys that don't exist in the ConfigMap will prevent the pod from starting. +- You must create a ConfigMap before referencing it in a Pod specification (unless you mark the ConfigMap as "optional"). If you reference a ConfigMap that doesn't exist, the Pod won't start. Likewise, references to keys that don't exist in the ConfigMap will prevent the pod from starting. -1. If you use `envFrom` to define environment variables from ConfigMaps, keys that are considered invalid will be skipped. The pod will be allowed to start, but the invalid names will be recorded in the event log (`InvalidVariableNames`). The log message lists each skipped key. For example: +- If you use `envFrom` to define environment variables from ConfigMaps, keys that are considered invalid will be skipped. The pod will be allowed to start, but the invalid names will be recorded in the event log (`InvalidVariableNames`). The log message lists each skipped key. For example: ```shell kubectl get events @@ -612,9 +612,9 @@ data: 0s 0s 1 dapi-test-pod Pod Warning InvalidEnvironmentVariableNames {kubelet, 127.0.0.1} Keys [1badkey, 2alsobad] from the EnvFrom configMap default/myconfig were skipped since they are considered invalid environment variable names. ``` -1. ConfigMaps reside in a specific [namespace](/docs/concepts/overview/working-with-objects/namespaces/). A ConfigMap can only be referenced by pods residing in the same namespace. +- ConfigMaps reside in a specific [namespace](/docs/concepts/overview/working-with-objects/namespaces/). A ConfigMap can only be referenced by pods residing in the same namespace. -1. Kubelet doesn't support the use of ConfigMaps for pods not found on the API server. +- Kubelet doesn't support the use of ConfigMaps for pods not found on the API server. This includes pods created via the Kubelet's --manifest-url flag, --config flag, or the Kubelet REST API. {{< note >}} From 90e5647ce0fca7b84ccf69c2bafcdf5fd52c8fce Mon Sep 17 00:00:00 2001 From: Karen Bradshaw Date: Thu, 25 Oct 2018 17:31:54 -0400 Subject: [PATCH 30/62] Fix typo (#10734) --- content/en/docs/contribute/intermediate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index dbc3293e23..3fed21a05b 100644 --- a/content/en/docs/contribute/intermediate.md +++ b/content/en/docs/contribute/intermediate.md @@ -257,7 +257,7 @@ to the Github UI. ``` 4. Check out the remote branch. This command will fail if you already have a - local branch with the sane name. + local branch with the same name. ```bash git checkout From 140b3da09822cffd7fab94a98bc3f51fdca561e9 Mon Sep 17 00:00:00 2001 From: Francois Tur Date: Thu, 25 Oct 2018 17:55:54 -0400 Subject: [PATCH 31/62] - remove the mention to survey. It is about to close. (#10735) --- content/en/blog/_posts/2018-07-10-coredns-ga.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/content/en/blog/_posts/2018-07-10-coredns-ga.md b/content/en/blog/_posts/2018-07-10-coredns-ga.md index 4745665e40..01c438f131 100644 --- a/content/en/blog/_posts/2018-07-10-coredns-ga.md +++ b/content/en/blog/_posts/2018-07-10-coredns-ga.md @@ -18,13 +18,6 @@ CoreDNS is a general-purpose, authoritative DNS server that provides a backwards In this article, you will learn about the differences in the implementations of kube-dns and CoreDNS, and some of the helpful extensions offered by CoreDNS. -## We appreciate your feedback - -We are conducting a survey to evaluate the adoption of CoreDNS as the DNS for Kubernetes's cluster. -If you are currently using CoreDNS inside a Kubernetes cluster, please, [take 5 minutes to provide us some feedback by filling this survey](https://www.surveymonkey.com/r/SKZQSLK). - -Thank you, we appreciate your collaboration here. - ## Implementation differences In kube-dns, several containers are used within a single pod: `kubedns`, `dnsmasq`, and `sidecar`. The `kubedns` From 5d592fbee39ada05cee343afd87c36d544fecb12 Mon Sep 17 00:00:00 2001 From: William Zhang Date: Sat, 27 Oct 2018 00:07:21 +0800 Subject: [PATCH 32/62] fix spelling errors in doc repo (#10434) * fix spelling errors in content/en/docs/concepts/containers/ Signed-off-by: William Zhang * fix spelling errors in HPA, StatefulSet, SA Signed-off-by: William Zhang --- content/en/docs/concepts/containers/images.md | 2 +- .../tasks/configure-pod-container/configure-service-account.md | 2 +- .../en/docs/tasks/run-application/horizontal-pod-autoscale.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index 23763279c8..c35aad845b 100644 --- a/content/en/docs/concepts/containers/images.md +++ b/content/en/docs/concepts/containers/images.md @@ -49,7 +49,7 @@ These commands rely on and are implemented purely on the Docker CLI. You will ne If you run into trouble with uploading stale manifests, just clean up the older manifests in `$HOME/.docker/manifests` to start fresh. -For Kubernetes, we have typically used images with suffix `-$(ARCH)`. For backward compatability, please generate the older images with suffixes. The idea is to generate say `pause` image which has the manifest for all the arch(es) and say `pause-amd64` which is backwards compatible for older configurations or YAML files which may have hard coded the images with suffixes. +For Kubernetes, we have typically used images with suffix `-$(ARCH)`. For backward compatibility, please generate the older images with suffixes. The idea is to generate say `pause` image which has the manifest for all the arch(es) and say `pause-amd64` which is backwards compatible for older configurations or YAML files which may have hard coded the images with suffixes. ## Using a Private Registry diff --git a/content/en/docs/tasks/configure-pod-container/configure-service-account.md b/content/en/docs/tasks/configure-pod-container/configure-service-account.md index d2ff5adb7c..62992829cd 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-service-account.md +++ b/content/en/docs/tasks/configure-pod-container/configure-service-account.md @@ -295,7 +295,7 @@ spec: ``` The kubelet will request and store the token on behalf of the pod, make the -token avaialble to the pod at a configurable file path, and refresh the token as +token available to the pod at a configurable file path, and refresh the token as it approaches expiration. Kubelet proactively rotates the token if it is older than 80% of its total TTL, or if the token is older than 24 hours. diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md index 99713f966d..c3fd52981a 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md @@ -161,7 +161,7 @@ from the metrics APIs), scaling is skipped. Finally, just before HPA scales the target, the scale reccomendation is recorded. The controller considers all recommendations within a configurable window choosing the -highest recommendation from within that window. This value can be configured using the `--horizontal-pod-autoscaler-downscale-stabilization-window` flag, which defaults to 5 minutes. +highest recommendation from within that window. This value can be configured using the `--horizontal-pod-autoscaler-downscale-stabilization-window` flag, which defaults to 5 minutes. This means that scaledowns will occur gradually, smoothing out the impact of rapidly fluctuating metric values. From 7c21f17cf396c6350e3e76d842bab17647b7e825 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 26 Oct 2018 18:33:38 +0200 Subject: [PATCH 33/62] Blog Post: Tips first KubeCon Presentation (Pt. 2) (#10510) * Blog Post: Tips first KubeCon Presentation (Pt. 2) Part 2 about experiences from my first KubeCon presentation. Probably delay by 1w before approving. Pre-review and collaboration with @kbarnard10 and @parispittman. **Note:** needs fix for the link to part 1 after the first one has been released. First part PR here: https://github.com/kubernetes/website/pull/10509 * Update Tips-For-First-KubeCon-Presentation-Part-2.MD * Update and rename Tips-For-First-KubeCon-Presentation-Part-2.MD to 2018-10-26-tips-for-first-kubecon-presentation-part-2.md --- ...s-for-first-kubecon-presentation-part-2.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 content/en/blog/_posts/2018-10-26-tips-for-first-kubecon-presentation-part-2.md diff --git a/content/en/blog/_posts/2018-10-26-tips-for-first-kubecon-presentation-part-2.md b/content/en/blog/_posts/2018-10-26-tips-for-first-kubecon-presentation-part-2.md new file mode 100644 index 0000000000..fc61f60c84 --- /dev/null +++ b/content/en/blog/_posts/2018-10-26-tips-for-first-kubecon-presentation-part-2.md @@ -0,0 +1,55 @@ +--- +layout: blog +title: 'Tips for Your First Kubecon Presentation - Part 2' +date: 2018-10-26 +--- + +**Author**: Michael Gasch (VMware) + +Hello and welcome back to the second and final part about tips for KubeCon first-time speakers. If you missed the last post, please give it a read [here](https://kubernetes.io/blog/2018/10/18/tips-for-your-first-kubecon-presentation---part-1/). + +## The Day before the Show + +**Tip #13 - Get enough sleep**. I don't know about you, but when I don't get enough sleep (especially when beer is in the game), the next day my brain power is around 80% at best. It's very easy to get distracted at KubeCon (in a positive sense). "Let's have dinner tonight and chat about XYZ". Get some food, beer or wine because you're so excited and all the good resolutions you had set for the day before your presentation are forgotten :) + +OK, I'm slightly exaggerating here. But don't underestimate the dynamics of this conference, the amazing people you meet, the inspiring talks and of course the conference party. Be disciplined, at least that one day. There's enough time to party after your great presentation! + +**Tip #14 - A final dry-run**. Usually, I do a final dry-run of my presentation the day before the talk. This helps me to recall the first few sentences I want to say so I keep the flow no matter what happens when the red recording light goes on. Especially when your talk is later during the conference, there's so much new stuff your brain has to digest which could "overwrite" the very important parts of your presentation. I think you know what I mean. So, if you're like me, a final dry-run is never a bad idea (also to check equipment, demos, etc.). + +**Tip #15 - Promote your session, again**. Send out a final reminder on your social media channels so your followers (and KubeCon attendees) will recall to attend your session (again, KubeCon is busy and it's hard to keep up with all the talks you wanted to attend). I was surprised to see my attendee list jumping from ~80 at the beginning of the week to >300 the day before the talk. The number kept rising even an hour before going on stage. So don't worry about the stats too early. + +**Tip #16 - Ask your idols to attend**. [Steve Wong](https://twitter.com/cantbewong), a colleague of mine who I really admire for his knowledge and passion, gave me a great advise. Reach out to the people you always wanted to attend your talk and kindly ask them to come along. + +So I texted the one and only [Tim Hockin](https://twitter.com/thockin?lang=de). Even though these well-respected community leaders are super busy and thus usually cannot attend many talks during the conference, the worst thing that can happen is that they cannot show up and will let you know. (see the end of this post to find out whether or not I was lucky :)) + +## The show is on! + +Your day has come and it doesn't make **any** sense to make big changes to your presentation now! Actually, that's a very bad idea unless you're an expert and your heartbeat at rest is around 40 BPM. (But even then many things can go horribly wrong). + +So, without further ado, here are my final tips for you. + +**Tip #17 - Arrive ahead of time**. Set an alert (or two) to not miss your presentation, e.g. because somebody caught you on the way to the room or you got a call/have been pulled in a meeting. It's a good idea to find out were your room is at least some hours before your talk. These conference buildings can be very large. Also look for last minute schedule (time/room) changes, just because you never know... + +**Tip #18 - Ask a friend to take photos**. My dear colleague [Bjoern](https://twitter.com/bbrundert), without me asking for it, took a lot of pictures and watched the audience during the talk. This was really helpful, not just because I now have some nice shots that will always remind me of this great day. He also gave me honest feedback, e.g. what people said, whether they liked it or what I could have done better. + +**Tip #19 - Restroom**. If you're like me, when I'm nervous I could run every 15 minutes. The last thing you want is that you are fully cabled (microphone), everything is set up and two minutes before your presentation you feel like "oh oh"...nothing more to say here ;) + +**Tip #20 - The audience**. I had many examples and references from other Kubernetes users (and their postmortem stories) in my talk. So I tried to give them credit and actually some of them were in the room and really liked that I did so. It gave them (and hopefully the rest of the audience as well) the feeling that I did not invent the wheel and we are all in the same boat. Also feel free to ask some questions in the beginning, e.g. to get a better feeling about who is attending your talk, or who would consider himself an expert in the area of what you are talking about, etc. + +**Tip #21 - Repeat questions. Always**. Because of the time constraints, questions should be asked at the end of your presentation (unless you are giving a community meeting or panel of course). Always (always!) repeat the questions at the end. Sometimes people will not use the microphone. This is not only hard for the people in the back, but also it won't be captured on the recording. I am sure you also had that moment watching a recording and not getting what is being asked/discussed because the question was not captured. + +**Tip #22 - Feedback**. Don't forget to ask the audience to fill out the survey. They're not always enforced/mandatory during conferences (especially not at KubeCon), so it's easy to forget to give the speaker feedback. Feedback is super critical (also for the committee) as sometimes people won't directly tell you but rather write their thoughts. Also, you might want to block your calendar to leave some time after the presentation for follow-up questions, so you are not in the hurry to catch your next meeting/session. + +**Tip #23 - Invite your audience**. No, I don't mean to throw a round of beer for everyone attending your talk (I mean, you could). But you might let them know, at the end of your presentation, that you would like to hang out, have dinner, etc. A great opportunity to reflect and geek out with like-minded friends. + +**Final Tip - Your Voice matters**. Don't underestimate the power of giving a talk at a conference. In my case I was lucky that the Zalando crew was in the room and took this talk as an opportunity for an ad hoc meeting after the conference. This drove an important performance fix forward, which eventually was [merged](https://github.com/kubernetes/kubernetes/pull/63437) (kudos to the Zalando team again!). + +Embrace the opportunity to give a talk at a conference, take it serious, be professional and make the best use of your time. But I'm sure I don't have to tell you that ;) + +## Now it's on you :) + +I hope some of these tips are useful for you as well. And I wish you all the best for your upcoming talk!!! Believing in and being yourself is key to success. And perhaps your Kubernetes idol is in the room and has some nice words for you after your presentation! + +Besides my fantastic reviewers and the speaker support team already mentioned above, I also would like to thank the people who supported me along this KubeCon journey: Bjoern, Timo, Emad and Steve! + +{{< tweet 992409364467200000 >}} From 509a4e15e9a17c20a7de25c4eeee2673b6004951 Mon Sep 17 00:00:00 2001 From: AdamDang Date: Sat, 27 Oct 2018 15:14:22 +0800 Subject: [PATCH 34/62] Update pod-security-policy.md (#10740) --- content/zh/docs/concepts/policy/pod-security-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/concepts/policy/pod-security-policy.md b/content/zh/docs/concepts/policy/pod-security-policy.md index 23e8680b5d..8932a23c8a 100644 --- a/content/zh/docs/concepts/policy/pod-security-policy.md +++ b/content/zh/docs/concepts/policy/pod-security-policy.md @@ -216,4 +216,4 @@ podsecuritypolicy "permissive" deleted 在 Kubernetes 1.5 或更新版本,可以使用 PodSecurityPolicy 来控制,对基于用户角色和组的已授权容器的访问。访问不同的 PodSecurityPolicy 对象,可以基于认证来控制。基于 Deployment、ReplicaSet 等创建的 Pod,限制访问 PodSecurityPolicy 对象,[Controller Manager](/docs/admin/kube-controller-manager/) 必须基于安全 API 端口运行,并且不能够具有超级用户权限。 -PodSecurityPolicy 认证使用所有可用的策略,包括创建 Pod 的用户,Pod 上指定的服务账户(Service Acount)。当 Pod 基于 Deployment、ReplicaSet 创建时,它是创建 Pod 的 Controller Manager,所以如果基于非安全 API 端口运行,允许所有的 PodSecurityPolicy 对象,并且不能够有效地实现细分权限。用户访问给定的 PSP 策略有效,仅当是直接部署 Pod 的情况。更多详情,查看 [PodSecurityPolicy RBAC 示例](https://git.k8s.io/kubernetes/examples/podsecuritypolicy/rbac/README.md),当直接部署 Pod 时,应用 PodSecurityPolicy 控制基于角色和组的已授权容器的访问 。 +PodSecurityPolicy 认证使用所有可用的策略,包括创建 Pod 的用户,Pod 上指定的服务账户(Service Account)。当 Pod 基于 Deployment、ReplicaSet 创建时,它是创建 Pod 的 Controller Manager,所以如果基于非安全 API 端口运行,允许所有的 PodSecurityPolicy 对象,并且不能够有效地实现细分权限。用户访问给定的 PSP 策略有效,仅当是直接部署 Pod 的情况。更多详情,查看 [PodSecurityPolicy RBAC 示例](https://git.k8s.io/kubernetes/examples/podsecuritypolicy/rbac/README.md),当直接部署 Pod 时,应用 PodSecurityPolicy 控制基于角色和组的已授权容器的访问 。 From c3dee1ed7f0bc4405ea404793ae4b5bfb84c5304 Mon Sep 17 00:00:00 2001 From: erganzi <41982810+erganzi@users.noreply.github.com> Date: Sat, 27 Oct 2018 17:22:20 +0800 Subject: [PATCH 35/62] Update deployment.md (#10748) fixed a small mistake --- content/en/docs/tasks/administer-federation/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/administer-federation/deployment.md b/content/en/docs/tasks/administer-federation/deployment.md index 829c4290ec..624a527cfc 100644 --- a/content/en/docs/tasks/administer-federation/deployment.md +++ b/content/en/docs/tasks/administer-federation/deployment.md @@ -45,7 +45,7 @@ You can do that using [kubectl](/docs/user-guide/kubectl/) by running: kubectl --context=federation-cluster create -f mydeployment.yaml ``` -The '--context=federation-cluster' flag tells kubectl to submit the +The `--context=federation-cluster` flag tells kubectl to submit the request to the Federation apiserver instead of sending it to a Kubernetes cluster. From a2fa50fc9a7dd38a1777e59456360c767b36ceef Mon Sep 17 00:00:00 2001 From: kvaps Date: Sat, 27 Oct 2018 18:57:14 +0200 Subject: [PATCH 36/62] ltsp post: not officially supported note (#10754) * add: not officially supported note * fix: networking explanation --- .../2018-10-02-network-bootable-farm-with-ltsp.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/blog/_posts/2018-10-02-network-bootable-farm-with-ltsp.md b/content/en/blog/_posts/2018-10-02-network-bootable-farm-with-ltsp.md index 0a45f18b02..2039a4d5b6 100644 --- a/content/en/blog/_posts/2018-10-02-network-bootable-farm-with-ltsp.md +++ b/content/en/blog/_posts/2018-10-02-network-bootable-farm-with-ltsp.md @@ -19,6 +19,8 @@ Intrigued? Let me walk you through how it works. # Summary +_**Please note:** this is a cool hack, but is not officially supported in Kubernetes._ + First, we need to understand how exactly it works. In short, for all nodes we have prepared the image with the OS, Docker, Kubelet and everything else that you need there. This image with the kernel is building automatically by CI using Dockerfile. End nodes are booting the kernel and OS from this image via the network. @@ -365,7 +367,7 @@ Ok, now we have docker image which includes: OK, now when our docker-image with LTSP-server, kernel, initramfs and squashed rootfs fully prepared we can run the deployment with it. We can do that as usual, but one more thing is networking. -Unfortunately, we can't use the standard Kubernetes service abstraction for our deployment, because during the boot, our nodes are not part of Kubernetes cluster and they requires ExternalIP, but Kubernetes always enables NAT for ExternalIPs, and there is no way to disable this behavior. +Unfortunately, we can't use the standard Kubernetes service abstraction for our deployment, because TFTP can't work behind the NAT. During the boot, our nodes are not part of Kubernetes cluster and they requires ExternalIP, but Kubernetes always enables NAT for ExternalIPs, and there is no way to override this behavior. For now I have two ways for avoid this: use `hostNetwork: true` or use [pipework](https://github.com/dreamcat4/docker-images/blob/master/pipework/3.%20Examples.md#kubernetes). The second option will also provide you redundancy because, in case of failure, the IP will be moved with the Pod to another node. Unfortunately, pipework is not native and a less secure method. If you have some better option for that please let me know. @@ -489,8 +491,6 @@ Now you can try to make your own changes. If you need something more, note that LTSP can be easily changed to meet your needs. Feel free to look into the source code and you can find many answers there. -**UPD:** Many people asking me: Why not simple use CoreOS and Ignition? +_**UPD:** Many people asking me: Why not simple use CoreOS and Ignition?_ -I can answer. The main feature here is image preparation process not configuration. -In case with LTSP you have classic Ubuntu system, and everything that can be installed on Ubuntu it can also be written here in the Dockerfile. -In case CoreOS you have no so many freedom and you can’t easily add custom kernel modules and packages at the build stage of the boot image. +_I can answer. The main feature here is image preparation process, not configuration. In case with LTSP you have classic Ubuntu system, and everything that can be installed on Ubuntu it can also be written here in the Dockerfile. In case CoreOS you have no so many freedom and you can’t easily add custom kernel modules and packages at the build stage of the boot image._ From a96eb2c2ffa6b789728478d7388760a5736f53de Mon Sep 17 00:00:00 2001 From: Shivesh Abhishek Date: Mon, 29 Oct 2018 02:36:15 +0530 Subject: [PATCH 37/62] Minor typo-fix in 2018-05-29-announcing-kustomize.md Signed-off-by: Shivesh Abhishek --- content/en/blog/_posts/2018-05-29-announcing-kustomize.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/blog/_posts/2018-05-29-announcing-kustomize.md b/content/en/blog/_posts/2018-05-29-announcing-kustomize.md index 3ca0b54401..908ce72363 100644 --- a/content/en/blog/_posts/2018-05-29-announcing-kustomize.md +++ b/content/en/blog/_posts/2018-05-29-announcing-kustomize.md @@ -17,7 +17,7 @@ date: 2018-05-29 If you run a Kubernetes environment, chances are you’ve customized a Kubernetes configuration — you've copied -some API object YAML files and editted them to suit +some API object YAML files and edited them to suit your needs. But there are drawbacks to this approach — it can be From d40d92f67b1d109b7619dc7dbbb42806fd9398b1 Mon Sep 17 00:00:00 2001 From: W Technologist Date: Mon, 29 Oct 2018 11:37:23 +0900 Subject: [PATCH 38/62] Optimise translations (#10755) --- content/zh/docs/concepts/services-networking/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/zh/docs/concepts/services-networking/service.md b/content/zh/docs/concepts/services-networking/service.md index ab5d744905..8e873a2ff9 100644 --- a/content/zh/docs/concepts/services-networking/service.md +++ b/content/zh/docs/concepts/services-networking/service.md @@ -20,7 +20,7 @@ Kubernetes [`Pod`](/docs/user-guide/pods) 是有生命周期的,它们可以 -Kubernetes `Service` 定义了这样一种抽象:一个 `Pod` 的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务。 +Kubernetes `Service` 定义了这样一种抽象:逻辑上的一组 `Pod`,一种可以访问它们的策略 —— 通常称为微服务。 这一组 `Pod` 能够被 `Service` 访问到,通常是通过 [`Label Selector`](/docs/concepts/overview/working-with-objects/labels/#label-selectors)(查看下面了解,为什么可能需要没有 selector 的 `Service`)实现的。 From 6f3eabd2405b89537252b17d3ae6a5f89dd68e49 Mon Sep 17 00:00:00 2001 From: erganzi <41982810+erganzi@users.noreply.github.com> Date: Mon, 29 Oct 2018 14:10:23 +0800 Subject: [PATCH 39/62] Update federated/job.md and federated/namespaces.md (#10762) * Update namespaces.md fix it. * Update job.md fix it --- content/en/docs/tasks/administer-federation/job.md | 2 +- content/en/docs/tasks/administer-federation/namespaces.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/job.md b/content/en/docs/tasks/administer-federation/job.md index 4543d756c8..cf631f5154 100644 --- a/content/en/docs/tasks/administer-federation/job.md +++ b/content/en/docs/tasks/administer-federation/job.md @@ -40,7 +40,7 @@ You can do that using [kubectl](/docs/user-guide/kubectl/) by running: kubectl --context=federation-cluster create -f myjob.yaml ``` -The '--context=federation-cluster' flag tells kubectl to submit the +The `--context=federation-cluster` flag tells kubectl to submit the request to the federation API server instead of sending it to a Kubernetes cluster. diff --git a/content/en/docs/tasks/administer-federation/namespaces.md b/content/en/docs/tasks/administer-federation/namespaces.md index 2d6a91e926..df60610814 100644 --- a/content/en/docs/tasks/administer-federation/namespaces.md +++ b/content/en/docs/tasks/administer-federation/namespaces.md @@ -41,7 +41,7 @@ You can do that using kubectl by running: kubectl --context=federation-cluster create -f myns.yaml ``` -The '--context=federation-cluster' flag tells kubectl to submit the +The `--context=federation-cluster` flag tells kubectl to submit the request to the Federation apiserver instead of sending it to a Kubernetes cluster. From 7b183afad4b71f9087e31f8e2d4e3df2eff846de Mon Sep 17 00:00:00 2001 From: Yuexiao Wang <20082558+yuexiao-wang@users.noreply.github.com> Date: Tue, 30 Oct 2018 10:25:23 +0800 Subject: [PATCH 40/62] add case with systemd MountFlags for kubeadm troubleshooting (#10742) Signed-off-by: yuexiao-wang --- .../en/docs/setup/independent/troubleshooting-kubeadm.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/en/docs/setup/independent/troubleshooting-kubeadm.md b/content/en/docs/setup/independent/troubleshooting-kubeadm.md index 8a66795d50..1f5878efac 100644 --- a/content/en/docs/setup/independent/troubleshooting-kubeadm.md +++ b/content/en/docs/setup/independent/troubleshooting-kubeadm.md @@ -57,7 +57,7 @@ This may be caused by a number of problems. The most common are: There are two common ways to fix the cgroup driver problem: - 1. Install docker again following instructions + 1. Install Docker again following instructions [here](/docs/setup/independent/install-kubeadm/#installing-docker). 1. Change the kubelet config to match the Docker cgroup driver manually, you can refer to [Configure cgroup driver used by kubelet on Master Node](/docs/setup/independent/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-master-node) @@ -104,6 +104,10 @@ Right after `kubeadm init` there should not be any pods in these states. likely that the Pod Network solution that you installed is somehow broken. You might have to grant it more RBAC privileges or use a newer version. Please file an issue in the Pod Network providers' issue tracker and get the issue triaged there. +- If you install a version of Docker older than 1.12.1, remove the `MountFlags=slave` option + when booting `dockerd` with `systemd` and restart `docker`. You can see the MountFlags in `/usr/lib/systemd/system/docker.service`. + MountFlags can interfere with volumes mounted by Kubernetes, and put the Pods in `CrashLoopBackOff` state. + The error happens when Kubernetes does not find `var/run/secrets/kubernetes.io/serviceaccount` files. ## `coredns` (or `kube-dns`) is stuck in the `Pending` state From 8bc6c001bec218fceedaa881ff87040e2eeaaad9 Mon Sep 17 00:00:00 2001 From: zqm19941101 Date: Tue, 30 Oct 2018 17:05:52 +0800 Subject: [PATCH 41/62] fix typo --- .../network-policy-provider/romana-network-policy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/zh/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md b/content/zh/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md index 5867bfec5c..ade3edd3af 100644 --- a/content/zh/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md +++ b/content/zh/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md @@ -24,7 +24,7 @@ weight: 40 ## 使用 kubeadm 安装 Romana -按照[容器化安装指南](https://github.com/romana/romana/tree/master/containerize)获取 kubeadmin。 +按照[容器化安装指南](https://github.com/romana/romana/tree/master/containerize)获取 kubeadm。 ## 运用网络策略 From 54279883d48700c6ab1259b8e33f6e4f13c87908 Mon Sep 17 00:00:00 2001 From: Gergely Csatari Date: Tue, 30 Oct 2018 16:34:05 +0000 Subject: [PATCH 42/62] Adding DANM (#10679) * Adding DANM Adding a new item to the list of cluster networking solutions. Signed-off-by: Gergely Csatari * Corrections of received comments for https://github.com/kubernetes/website/pull/10679 Signed-off-by: Gergely Csatari --- .../concepts/cluster-administration/networking.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/content/en/docs/concepts/cluster-administration/networking.md b/content/en/docs/concepts/cluster-administration/networking.md index 58521895f3..e0d7281d26 100644 --- a/content/en/docs/concepts/cluster-administration/networking.md +++ b/content/en/docs/concepts/cluster-administration/networking.md @@ -22,7 +22,7 @@ default. There are 4 distinct networking problems to solve: {{% capture body %}} Kubernetes assumes that pods can communicate with other pods, regardless of -which host they land on. Every pod gets its own IP address so you do not +which host they land on. Every pod gets its own IP address so you do not need to explicitly create links between pods and you almost never need to deal with mapping container ports to host ports. This creates a clean, backwards-compatible model where pods can be treated much like VMs or physical @@ -151,6 +151,18 @@ CNI-Genie also supports [assigning multiple IP addresses to a pod](https://githu [Contrail](http://www.juniper.net/us/en/products-services/sdn/contrail/contrail-networking/), based on [OpenContrail](http://www.opencontrail.org), is a truly open, multi-cloud network virtualization and policy management platform. Contrail / OpenContrail is integrated with various orchestration systems such as Kubernetes, OpenShift, OpenStack and Mesos, and provides different isolation modes for virtual machines, containers/pods and bare metal workloads. +### DANM + +[DANM](https://github.com/nokia/danm) is a networking solution for telco workloads running in a Kubernetes cluster. It's built up from the following components: + + * A CNI plugin capable of provisioning IPVLAN interfaces with advanced features + * An in-built IPAM module with the capability of managing multiple, cluster-wide, discontinuous L3 networks and provide a dynamic, static, or no IP allocation scheme on-demand + * A CNI metaplugin capable of attaching multiple network interfaces to a container, either through its own CNI, or through delegating the job to any of the popular CNI solution like SRI-OV, or Flannel in parallel + * A Kubernetes controller capable of centrally managing both VxLAN and VLAN interfaces of all Kubernetes hosts + * Another Kubernetes controller extending Kubernetes' Service-based service discovery concept to work over all network interfaces of a Pod + +With this toolset DANM is able to provide multiple separated network interfaces, the possibility to use different networking back ends and advanced IPAM features for the pods. + ### Flannel [Flannel](https://github.com/coreos/flannel#flannel) is a very simple overlay From 9de1d6eb7eac166e26cbd269be51aa0ddd789123 Mon Sep 17 00:00:00 2001 From: cewuandy Date: Wed, 31 Oct 2018 00:42:16 +0800 Subject: [PATCH 43/62] fix docker-cli-to-kubectl.md (#10711) * fix docker-cli-to-kubectl.md * remove shortcode toc * edit kubectl for Docker Users Overview --- .../kubectl/docker-cli-to-kubectl.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md b/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md index 03720f8338..6373155102 100644 --- a/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md +++ b/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md @@ -1,16 +1,18 @@ --- title: kubectl for Docker Users +content_template: templates/concept reviewers: - bgrant0607 - brendandburns - thockin --- -You can use the Kubernetes command line tool kubectl to interact with the api. You can use kubectl if you are familiar with docker-cli. However, there are a few differences in the docker-cli commands and the kubectl commands. Each of the following section details a docker subcommand and explains the kubectl equivalent. +{{% capture overview %}} +You can use the Kubernetes command line tool kubectl to interact with the API Server. Using kubectl is straightforward if you are familiar with the Docker command line tool. However, there are a few differences between the docker commands and the kubectl commands. The following sections show a docker sub-command and describe the equivalent kubectl command. +{{% /capture %}} -{{< toc >}} - -#### docker run +{{% capture body %}} +## docker run To run an nginx Deployment and expose the Deployment, see [kubectl run](/docs/reference/generated/kubectl/kubectl-commands/#run). @@ -57,7 +59,7 @@ To detach from the container, you can type the escape sequence Ctrl+P followed b Because the kubectl run command starts a Deployment for the container, the Deployment restarts if you terminate the attached process by using Ctrl+C, unlike `docker run -it`. To destroy the Deployment and its pods you need to run `kubectl delete deployment `. -#### docker ps +## docker ps To list what is currently running, see [kubectl get](/docs/reference/generated/kubectl/kubectl-commands/#get). @@ -79,7 +81,7 @@ nginx-app-8df569cb7-4gd89 1/1 Running 0 3m ubuntu 0/1 Completed 0 20s ``` -#### docker attach +## docker attach To attach a process that is already running in a container, see [kubectl attach](/docs/reference/generated/kubectl/kubectl-commands/#attach). @@ -107,7 +109,7 @@ $ kubectl attach -it nginx-app-5jyvm To detach from the container, you can type the escape sequence Ctrl+P followed by Ctrl+Q. -#### docker exec +## docker exec To execute a command in a container, see [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec). @@ -152,7 +154,7 @@ $ kubectl exec -ti nginx-app-5jyvm -- /bin/sh For more information, see [Get a Shell to a Running Container](/docs/tasks/debug-application-cluster/get-shell-running-container/). -#### docker logs +## docker logs To follow stdout/stderr of a process that is running, see [kubectl logs](/docs/reference/generated/kubectl/kubectl-commands/#logs). @@ -183,7 +185,7 @@ $ kubectl logs --previous nginx-app-zibvs For more information, see [Logging Architecture](/docs/concepts/cluster-administration/logging/). -#### docker stop and docker rm +## docker stop and docker rm To stop and delete a running process, see [kubectl delete](/docs/reference/generated/kubectl/kubectl-commands/#delete). @@ -223,11 +225,11 @@ $ kubectl get po -l run=nginx-app **Note:** When you use kubectl, you don't delete the pod directly.You have to first delete the Deployment that owns the pod. If you delete the pod directly, the Deployment recreates the pod. {{< /note >}} -#### docker login +## docker login There is no direct analog of `docker login` in kubectl. If you are interested in using Kubernetes with a private registry, see [Using a Private Registry](/docs/concepts/containers/images/#using-a-private-registry). -#### docker version +## docker version To get the version of client and server, see [kubectl version](/docs/reference/generated/kubectl/kubectl-commands/#version). @@ -255,7 +257,7 @@ Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4 Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4335", GitCommit:"9b77fed11a9843ce3780f70dd251e92901c43072", GitTreeState:"dirty", BuildDate:"2017-08-29T20:32:58Z", OpenPaasKubernetesVersion:"v1.03.02", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"} ``` -#### docker info +## docker info To get miscellaneous information about the environment and configuration, see [kubectl cluster-info](/docs/reference/generated/kubectl/kubectl-commands/#cluster-info). @@ -292,3 +294,4 @@ Grafana is running at https://108.59.85.141/api/v1/namespaces/kube-system/servic Heapster is running at https://108.59.85.141/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy InfluxDB is running at https://108.59.85.141/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy ``` +{{% /capture %}} \ No newline at end of file From 5bab86b2b3133dc8465185711e6e187b367fb928 Mon Sep 17 00:00:00 2001 From: Caio Date: Tue, 30 Oct 2018 17:44:40 +0100 Subject: [PATCH 44/62] Code style not working on kubernetes.io (#10727) * Code style not working on kubernetes.io Code style based on tab works on github markdown, but it is not working on kubernetes.io. In addition to that, `` argument on line 50 is hidden on kubernetes.io, because it is being processed as a HTML tag. * Update change-pv-reclaim-policy.md Indentation fix Language of the code specified --- .../administer-cluster/change-pv-reclaim-policy.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/content/en/docs/tasks/administer-cluster/change-pv-reclaim-policy.md b/content/en/docs/tasks/administer-cluster/change-pv-reclaim-policy.md index d46e0ad9d6..97aef1769d 100644 --- a/content/en/docs/tasks/administer-cluster/change-pv-reclaim-policy.md +++ b/content/en/docs/tasks/administer-cluster/change-pv-reclaim-policy.md @@ -32,7 +32,9 @@ the corresponding `PersistentVolume` is not be deleted. Instead, it is moved to 1. List the PersistentVolumes in your cluster: - kubectl get pv + ```shell + kubectl get pv + ``` The output is similar to this: @@ -46,13 +48,17 @@ the corresponding `PersistentVolume` is not be deleted. Instead, it is moved to 1. Choose one of your PersistentVolumes and change its reclaim policy: - kubectl patch pv -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' + ```shell + kubectl patch pv -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' + ``` where `` is the name of your chosen PersistentVolume. 1. Verify that your chosen PersistentVolume has the right policy: - kubectl get pv + ```shell + kubectl get pv + ``` The output is similar to this: From 654a58916775f897db5f80c1aa78dc7029b84f0f Mon Sep 17 00:00:00 2001 From: LiuDui <1693291525@qq.com> Date: Wed, 31 Oct 2018 00:45:56 +0800 Subject: [PATCH 45/62] Delete some extra space (#10741) Delete some extra space --- content/en/docs/tasks/administer-cluster/out-of-resource.md | 2 +- .../administer-cluster/storage-object-in-use-protection.md | 2 +- content/en/docs/tasks/administer-federation/ingress.md | 2 +- .../docs/tasks/debug-application-cluster/debug-application.md | 2 +- .../docs/tasks/debug-application-cluster/monitor-node-health.md | 2 +- content/en/docs/tasks/tools/install-kubectl.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/en/docs/tasks/administer-cluster/out-of-resource.md b/content/en/docs/tasks/administer-cluster/out-of-resource.md index c6f89e88e8..9d74dc289b 100644 --- a/content/en/docs/tasks/administer-cluster/out-of-resource.md +++ b/content/en/docs/tasks/administer-cluster/out-of-resource.md @@ -204,7 +204,7 @@ If `nodefs` filesystem has met eviction thresholds, `kubelet` frees up disk spac If the `kubelet` is unable to reclaim sufficient resource on the node, `kubelet` begins evicting Pods. -The `kubelet` ranks Pods for eviction first by whether or not their usage of the starved resource exceeds requests, +The `kubelet` ranks Pods for eviction first by whether or not their usage of the starved resource exceeds requests, then by [Priority](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/), and then by the consumption of the starved compute resource relative to the Pods' scheduling requests. As a result, `kubelet` ranks and evicts Pods in the following order: diff --git a/content/en/docs/tasks/administer-cluster/storage-object-in-use-protection.md b/content/en/docs/tasks/administer-cluster/storage-object-in-use-protection.md index 3065c42cf6..d83510cfc9 100644 --- a/content/en/docs/tasks/administer-cluster/storage-object-in-use-protection.md +++ b/content/en/docs/tasks/administer-cluster/storage-object-in-use-protection.md @@ -216,7 +216,7 @@ spec: - Verify that the scheduling of the second pod fails with the below warning: ```shell -Warning FailedScheduling 18s (x4 over 21s) default-scheduler persistentvolumeclaim "slzc" is being deleted +Warning FailedScheduling 18s (x4 over 21s) default-scheduler persistentvolumeclaim "slzc" is being deleted ``` - Wait until the pod status of both pods is `Terminated` or `Completed` (either delete the pods or wait until they finish). Afterwards, check that the PVC is removed. diff --git a/content/en/docs/tasks/administer-federation/ingress.md b/content/en/docs/tasks/administer-federation/ingress.md index 85cd17520f..d2f70cd6d5 100644 --- a/content/en/docs/tasks/administer-federation/ingress.md +++ b/content/en/docs/tasks/administer-federation/ingress.md @@ -55,7 +55,7 @@ rather a globally reachable via a single, static IP address. Clients inside your federated Kubernetes clusters (Pods) will be -automatically routed to the cluster-local shard of the Federated Service +automatically routed to the cluster-local shard of the Federated Service backing the Ingress in their cluster if it exists and is healthy, or the closest healthy shard in a different cluster if it does not. Note that this involves a network trip to the HTTP(s) load balancer, which resides outside your local diff --git a/content/en/docs/tasks/debug-application-cluster/debug-application.md b/content/en/docs/tasks/debug-application-cluster/debug-application.md index c7e1a7a961..cedfa0384c 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-application.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-application.md @@ -108,7 +108,7 @@ will not use the command line you intended it to use. The first thing to do is to delete your pod and try creating it again with the `--validate` option. For example, run `kubectl create --validate -f mypod.yaml`. -If you misspelled `command` as `commnd` then will give an error like this: +If you misspelled `command` as `commnd` then will give an error like this: ```shell I0805 10:43:25.129850 46757 schema.go:126] unknown field: commnd diff --git a/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md b/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md index c4309b1588..223cf63a7d 100644 --- a/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md +++ b/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md @@ -94,7 +94,7 @@ However, you can use [ConfigMap](/docs/tasks/configure-pod-container/configure-p following the steps: * **Step 1:** Change the config files in `config/`. -* **Step 2:** Create the ConfigMap `node-problem-detector-config` with `kubectl create configmap +* **Step 2:** Create the ConfigMap `node-problem-detector-config` with `kubectl create configmap node-problem-detector-config --from-file=config/`. * **Step 3:** Change the `node-problem-detector.yaml` to use the ConfigMap: diff --git a/content/en/docs/tasks/tools/install-kubectl.md b/content/en/docs/tasks/tools/install-kubectl.md index 4f94e6335b..e7f78b98cd 100644 --- a/content/en/docs/tasks/tools/install-kubectl.md +++ b/content/en/docs/tasks/tools/install-kubectl.md @@ -233,7 +233,7 @@ You can install kubectl as part of the Google Cloud SDK. sudo mv ./kubectl /usr/local/bin/kubectl ``` {{% /tab %}} -{{% tab name="Windows" %}} +{{% tab name="Windows" %}} 1. Download the latest release {{< param "fullversion" >}} from [this link](https://storage.googleapis.com/kubernetes-release/release/{{< param "fullversion" >}}/bin/windows/amd64/kubectl.exe). Or if you have `curl` installed, use this command: From d698035dfa07b49291489e9342410442e2fa56b9 Mon Sep 17 00:00:00 2001 From: zqm19941101 Date: Wed, 31 Oct 2018 00:47:13 +0800 Subject: [PATCH 46/62] fix typo (#10771) --- .../reference/command-line-tools-reference/feature-gates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index 5ea38f8b94..e001488653 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -213,7 +213,7 @@ Each feature gate is designed for enabling/disabling a specific feature: When the `Initializers` admission controller is enabled, this feature is automatically enabled. - `KubeletConfigFile`: Enable loading kubelet configuration from a file specified using a config file. See [setting kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/) for more details. -- `KubletPluginsWatcher`: Enable probe-based plugin watcher utility to enable kubelet +- `KubeletPluginsWatcher`: Enable probe-based plugin watcher utility to enable kubelet to discover plugins such as [CSI volume drivers](/docs/concepts/storage/volumes/#csi). - `LocalStorageCapacityIsolation`: Enable the consumption of [local ephemeral storage](/docs/concepts/configuration/manage-compute-resources-container/) and also the `sizeLimit` property of an [emptyDir volume](/docs/concepts/storage/volumes/#emptydir). - `MountContainers`: Enable using utility containers on host as the volume mounter. From 36c0aa21ebda73af86b855df77803e243744e15d Mon Sep 17 00:00:00 2001 From: NoNE Date: Tue, 30 Oct 2018 18:50:44 +0200 Subject: [PATCH 47/62] Added an explanation for using the double dash symbol (#10661) * Added an explanation for using the double dash symbol * Changing to note block. * Update get-shell-running-container.md --- .../debug-application-cluster/get-shell-running-container.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/en/docs/tasks/debug-application-cluster/get-shell-running-container.md b/content/en/docs/tasks/debug-application-cluster/get-shell-running-container.md index 776df8bd40..8b97c679f1 100644 --- a/content/en/docs/tasks/debug-application-cluster/get-shell-running-container.md +++ b/content/en/docs/tasks/debug-application-cluster/get-shell-running-container.md @@ -47,6 +47,11 @@ Get a shell to the running Container: ```shell kubectl exec -it shell-demo -- /bin/bash ``` +{{< note >}} + +The double dash symbol "--" is used to separate the arguments you want to pass to the command from the kubectl arguments. + +{{< /note >}} In your shell, list the root directory: From f8179c11a7ae58df414c11da3ecda90fdeb211e3 Mon Sep 17 00:00:00 2001 From: Rui Cao Date: Wed, 31 Oct 2018 00:53:08 +0800 Subject: [PATCH 48/62] Fix typo: preferrable -> preferable (#10774) Signed-off-by: Rui Cao --- .../run-application/horizontal-pod-autoscale-walkthrough.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index a7ca4fb158..ce32d26691 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -385,7 +385,7 @@ section to your HorizontalPodAutoscaler manifest to specify that you need one wo averageValue: 30 ``` -When possible, it's preferrable to use the custom metric target types instead of external metrics, since it's +When possible, it's preferable to use the custom metric target types instead of external metrics, since it's easier for cluster administrators to secure the custom metrics API. The external metrics API potentially allows access to any metric, so cluster administrators should take care when exposing it. From 46c75bcf197b61d8e0de09cece3b4b5a77bcc3f7 Mon Sep 17 00:00:00 2001 From: KevinTHU Date: Wed, 31 Oct 2018 00:57:47 +0800 Subject: [PATCH 49/62] need create /etc/docker directory first for adding /etc/docker/daemon.json (#10769) otherwise there will be an error, and the file /etc/docker/daemon.json will not be added. --- content/en/docs/setup/cri.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/en/docs/setup/cri.md b/content/en/docs/setup/cri.md index 5ff203d776..017e6925cb 100644 --- a/content/en/docs/setup/cri.md +++ b/content/en/docs/setup/cri.md @@ -84,6 +84,9 @@ yum-config-manager \ ## Install docker. yum update && yum install docker-ce-18.06.1.ce +## Create /etc/docker directory. +mkdir /etc/docker + # Setup daemon. cat > /etc/docker/daemon.json < Date: Tue, 30 Oct 2018 17:02:31 +0000 Subject: [PATCH 50/62] Correct '--output' flag in cheatsheet (#10758) --- content/en/docs/reference/kubectl/cheatsheet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/kubectl/cheatsheet.md b/content/en/docs/reference/kubectl/cheatsheet.md index 8ded895e73..3d2a703f0a 100644 --- a/content/en/docs/reference/kubectl/cheatsheet.md +++ b/content/en/docs/reference/kubectl/cheatsheet.md @@ -282,7 +282,7 @@ kubectl api-resources --api-group=extensions # All resources in the "extensions" ### Formatting output -To output details to your terminal window in a specific format, you can add either the `-o` or `-output` flags to a supported `kubectl` command. +To output details to your terminal window in a specific format, you can add either the `-o` or `--output` flags to a supported `kubectl` command. Output format | Description --------------| ----------- From d607ce8541d3bd10f8fc45f1236c0d91458131d1 Mon Sep 17 00:00:00 2001 From: erganzi <41982810+erganzi@users.noreply.github.com> Date: Wed, 31 Oct 2018 01:03:52 +0800 Subject: [PATCH 51/62] Update hpa.md (#10749) not rs --- content/en/docs/tasks/administer-federation/hpa.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/administer-federation/hpa.md b/content/en/docs/tasks/administer-federation/hpa.md index a7862643c3..5ca0363e1c 100644 --- a/content/en/docs/tasks/administer-federation/hpa.md +++ b/content/en/docs/tasks/administer-federation/hpa.md @@ -106,7 +106,7 @@ Currently the default distribution is only available on the federated HPA, but i future, users preferences could also be specified to control and/or restrict this distribution. -## Updating a federated ReplicaSet +## Updating a federated HPA You can update a federated HPA as you would update a Kubernetes HPA; however, for a federated HPA, you must send the request to From 19dbe8d58448db6fa40d1866bac51bf47429fe26 Mon Sep 17 00:00:00 2001 From: erganzi <41982810+erganzi@users.noreply.github.com> Date: Wed, 31 Oct 2018 01:05:08 +0800 Subject: [PATCH 52/62] Update ingress.md (#10752) Fix a small mistake --- content/en/docs/tasks/administer-federation/ingress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/administer-federation/ingress.md b/content/en/docs/tasks/administer-federation/ingress.md index d2f70cd6d5..51bfce65d5 100644 --- a/content/en/docs/tasks/administer-federation/ingress.md +++ b/content/en/docs/tasks/administer-federation/ingress.md @@ -85,7 +85,7 @@ You can create a federated ingress in any of the usual ways, for example, using kubectl --context=federation-cluster create -f myingress.yaml ``` For example ingress YAML configurations, see the [Ingress User Guide](/docs/concepts/services-networking/ingress/). -The '--context=federation-cluster' flag tells kubectl to submit the +The `--context=federation-cluster` flag tells kubectl to submit the request to the Federation API endpoint, with the appropriate credentials. If you have not yet configured such a context, see the [federation admin guide](/docs/admin/federation/) or one of the From 315c716774af079afa0c0479ff4513549c48a5e9 Mon Sep 17 00:00:00 2001 From: RaviSantosh Gudimetla Date: Tue, 30 Oct 2018 13:17:58 -0400 Subject: [PATCH 53/62] Deprecate critical pod annotation (#10733) --- ...aranteed-scheduling-critical-addon-pods.md | 42 +------------------ 1 file changed, 2 insertions(+), 40 deletions(-) diff --git a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md index 3d6c53e965..20202361e4 100644 --- a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md +++ b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md @@ -21,50 +21,12 @@ vacated by the evicted critical add-on pod or the amount of resources available {{% capture body %}} -## Rescheduler: guaranteed scheduling of critical add-ons -**Rescheduler is deprecated as of Kubernetes 1.10 and will be removed in version 1.12 in -accordance with the [deprecation policy](/docs/reference/deprecation-policy) for beta features.** -**To avoid eviction of critical pods, you must -[enable priorities in scheduler](/docs/concepts/configuration/pod-priority-preemption/) -before upgrading to Kubernetes 1.10 or higher.** - -Rescheduler ensures that critical pods created by DaemonSet controller are always scheduled -(assuming the cluster has enough resources to run the critical add-on pods in the absence of regular pods). -If the scheduler determines that no node has enough free resources to run the critical add-on pod -given the pods that are already running in the cluster -(indicated by critical add-on pod's pod condition PodScheduled set to false, the reason set to Unschedulable) -the rescheduler tries to free up space for the DaemonSet critical pod by evicting some pods; then the scheduler will schedule the add-on pod. - -To avoid situation when another pod is scheduled into the space prepared for the critical add-on, -the chosen node gets a temporary taint "CriticalAddonsOnly" before the eviction(s) -(see [more details](https://git.k8s.io/community/contributors/design-proposals/scheduling/taint-toleration-dedicated.md)). -Each critical add-on has to tolerate it, -while the other pods shouldn't tolerate the taint. The taint is removed once the add-on is successfully scheduled. - -*Warning:* currently there is no guarantee which node is chosen and which pods are being killed -in order to schedule critical pods, so if rescheduler is enabled your pods might be occasionally -killed for this purpose. Please ensure that rescheduler is not enabled along with priorities & preemptions in default-scheduler as rescheduler is oblivious to priorities and it may evict high priority pods, instead of low priority ones. - -## Config - -Rescheduler doesn't have any user facing configuration (component config) or API. - -### Marking pod as critical when using Rescheduler. +### Marking pod as critical To be considered critical, the pod has to run in the `kube-system` namespace (configurable via flag) and -* have the `scheduler.alpha.kubernetes.io/critical-pod` annotation set to empty string, and -* have the PodSpec's `tolerations` field set to `[{"key":"CriticalAddonsOnly", "operator":"Exists"}]`. +* Have the priorityClassName set as "system-cluster-critical" or "system-node-critical", the latter being the highest for entire cluster. Alternatively, you could add an annotation `scheduler.alpha.kubernetes.io/critical-pod` as key and empty string as value to your pod, but this annotation is deprecated as of version 1.13 and will be removed in 1.14. -The first one marks a pod a critical. The second one is required by Rescheduler algorithm. - -A pod could also be considered critical, if its priority is greater than or equal to system-critical-priority. - -### Marking pod as critical when priorites are enabled. - -To be considered critical, the pod has to run in the `kube-system` namespace (configurable via flag) and - -* Have the priorityClass set as "system-cluster-critical" or "system-node-critical", the latter being the highest for entire cluster and `scheduler.alpha.kubernetes.io/critical-pod` annotation set to empty string(This will be deprecated too). {{% /capture %}} From 4ef17b6612110232da56a7ac4f9858e3b1f0ec67 Mon Sep 17 00:00:00 2001 From: Alex Contini Date: Tue, 30 Oct 2018 17:35:44 -0400 Subject: [PATCH 54/62] svg logo test (#10619) * Add files via upload * Update index.html * Delete ibm_featured_logo.png --- .../en/case-studies/ibm/ibm_featured_logo.png | Bin 8543 -> 0 bytes .../en/case-studies/ibm/ibm_featured_logo.svg | 1 + content/en/case-studies/ibm/index.html | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 content/en/case-studies/ibm/ibm_featured_logo.png create mode 100644 content/en/case-studies/ibm/ibm_featured_logo.svg diff --git a/content/en/case-studies/ibm/ibm_featured_logo.png b/content/en/case-studies/ibm/ibm_featured_logo.png deleted file mode 100644 index b819876bf790a4fe047ad85baddeba1340457630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8543 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 \ No newline at end of file diff --git a/content/en/case-studies/ibm/index.html b/content/en/case-studies/ibm/index.html index 69f4ea31f2..4f6927416c 100644 --- a/content/en/case-studies/ibm/index.html +++ b/content/en/case-studies/ibm/index.html @@ -5,7 +5,7 @@ linkTitle: IBM case_study_styles: true cid: caseStudies css: /css/style_case_studies.css -logo: ibm_featured_logo.png +logo: ibm_featured_logo.svg featured: true weight: 2 quote: > From 354d497eedbf623454d86d88ac21384a69fe06e1 Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Tue, 30 Oct 2018 14:50:35 -0700 Subject: [PATCH 55/62] Update OWNERS_ALIASES (#10782) --- OWNERS_ALIASES | 1 + 1 file changed, 1 insertion(+) diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index c27bb0210c..bc2f2b5123 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -116,6 +116,7 @@ aliases: - bradamant3 - bradtopol - chenopis + - cody-clark - jaredbhatti - kbarnard10 - mistyhacks From ee54cf3e884f8af64cc47d9256ac366bbd32c17a Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Tue, 30 Oct 2018 15:06:26 -0700 Subject: [PATCH 56/62] Update OWNERS_ALIASES (#10785) --- OWNERS_ALIASES | 1 + 1 file changed, 1 insertion(+) diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index bc2f2b5123..f35c0ea831 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -101,6 +101,7 @@ aliases: - bradamant3 - bradtopol - chenopis + - cody-clark - jaredbhatti - kbarnard10 - mistyhacks From 2123433ed72883c06f59beb0e07fe08c3c0271e4 Mon Sep 17 00:00:00 2001 From: Robin Rakowski <44590339+rmrakowski@users.noreply.github.com> Date: Tue, 30 Oct 2018 16:54:33 -0700 Subject: [PATCH 57/62] update to start.md fixing broken links (#10787) Changed the two previously-broken links in the "Sign the CLA" section of the page to point to current working pages. --- content/en/docs/contribute/start.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index 02e0ce0bc0..2ebf585efa 100644 --- a/content/en/docs/contribute/start.md +++ b/content/en/docs/contribute/start.md @@ -154,8 +154,8 @@ process guidelines and information about deadlines. ### Sign the CLA Before you can contribute code or documentation to Kubernetes, you **must** read -the [Contributor guide](/docs/community/guide/) and -[sign the Contributor License Agreement (CLA)](/docs/community/guide/#sign-the-cla). +the [Contributor guide](https://github.com/kubernetes/community/blob/master/contributors/guide/README.md) and +[sign the Contributor License Agreement (CLA)](https://github.com/kubernetes/community/blob/master/CLA.md). Don't worry -- this doesn't take long! ### Find something to work on From 781eb3055a4827f463792736dc20a36d01601dd6 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Wed, 31 Oct 2018 14:59:22 -0700 Subject: [PATCH 58/62] Add back IBM png logo (#10798) --- .../en/case-studies/ibm/ibm_featured_logo.png | Bin 0 -> 8543 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/en/case-studies/ibm/ibm_featured_logo.png diff --git a/content/en/case-studies/ibm/ibm_featured_logo.png b/content/en/case-studies/ibm/ibm_featured_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b819876bf790a4fe047ad85baddeba1340457630 GIT binary patch literal 8543 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 Date: Thu, 1 Nov 2018 05:44:44 -0700 Subject: [PATCH 59/62] Fix secondary nav to use Home (#10800) --- content/en/docs/home/_index.md | 2 +- layouts/partials/header.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/home/_index.md b/content/en/docs/home/_index.md index 2a7477baf4..7f6b94a122 100644 --- a/content/en/docs/home/_index.md +++ b/content/en/docs/home/_index.md @@ -8,7 +8,7 @@ cid: userJourneys css: /css/style_user_journeys.css js: /js/user-journeys/home.js, https://use.fontawesome.com/4bcc658a89.js display_browse_numbers: true -linkTitle: Documentation +linkTitle: "Home" main_menu: true weight: 10 menu: diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 907fb6a187..7a977cad7d 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -5,7 +5,7 @@