Merge branch 'master' into hpa-doc-fix
This commit is contained in:
@@ -3,40 +3,40 @@
|
|||||||
margin-top: 1em !important;
|
margin-top: 1em !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies p {
|
.gridPage p {
|
||||||
color: rgb(26,26,26) !important;
|
color: rgb(26,26,26) !important;
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
padding-left: 0 !important;
|
padding-left: 0 !important;
|
||||||
font-weight: 300 !important;
|
font-weight: 300 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #mainContent {
|
.gridPage #mainContent {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #mainContent .content {
|
.gridPage #mainContent .content {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies main {
|
.gridPage main {
|
||||||
max-width: 1100px !important;
|
max-width: 1100px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .content {
|
.gridPage .content {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0 auto 50px;
|
margin: 0 auto 50px;
|
||||||
max-width: 90%;
|
max-width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .content p {
|
.gridPage .content p {
|
||||||
line-height: 24px !important;
|
line-height: 24px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .content h3 {
|
.gridPage .content h3 {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #hero h5 {
|
.gridPage #hero h5 {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #mainContent .content .case-study p {
|
.gridPage #mainContent .content .case-study p {
|
||||||
font-family: "Roboto", sans-serif;
|
font-family: "Roboto", sans-serif;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -77,13 +77,13 @@
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video {
|
.gridPage #video {
|
||||||
background: #f9f9f9;
|
background: #f9f9f9;
|
||||||
height: auto;
|
height: auto;
|
||||||
/*height: 340px;*/
|
/*height: 340px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main {
|
.gridPage #video main {
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: 900px !important;
|
max-width: 900px !important;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -93,19 +93,19 @@
|
|||||||
padding: 50px 20px;
|
padding: 50px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main > div {
|
.gridPage #video main > div {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main #zulilyLogo {
|
.gridPage #video main #zulilyLogo {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main img {
|
.gridPage #video main img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video h3 {
|
.gridPage #video h3 {
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
line-height: 38px;
|
line-height: 38px;
|
||||||
@@ -113,57 +113,57 @@
|
|||||||
margin: 0 0 1em 0;
|
margin: 0 0 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video p {
|
.gridPage #video p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video p.attrib {
|
.gridPage #video p.attrib {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video button > h6 {
|
.gridPage #video button > h6 {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
color: #326de6;
|
color: #326de6;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #users {
|
.gridPage #users {
|
||||||
padding: 50px;
|
padding: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #users main {
|
.gridPage #users main {
|
||||||
max-width: 1150px !important;
|
max-width: 1150px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #users main h3 {
|
.gridPage #users main h3 {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #usersGrid {
|
.gridPage #usersGrid {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #usersGrid a {
|
.gridPage #usersGrid a {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 5px;
|
margin: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #usersGrid a img {
|
.gridPage #usersGrid a img {
|
||||||
box-shadow: 1px 1px 2px transparent;
|
box-shadow: 1px 1px 2px transparent;
|
||||||
transition: box-shadow 0.25s;
|
transition: box-shadow 0.25s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #usersGrid a img:hover {
|
.gridPage #usersGrid a img:hover {
|
||||||
box-shadow: 1px 1px 2px #cccccc;
|
box-shadow: 1px 1px 2px #cccccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #usersGrid a:last-child img,
|
.gridPage #usersGrid a:last-child img,
|
||||||
#caseStudies #usersGrid a:last-child img:hover {
|
.gridPage #usersGrid a:last-child img:hover {
|
||||||
box-shadow: 1px 1px 2px transparent;
|
box-shadow: 1px 1px 2px transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,12 +173,12 @@
|
|||||||
box-shadow: 1px 2px 2px #dddddd;
|
box-shadow: 1px 2px 2px #dddddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .feature {
|
.gridPage .feature {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 20px 0 20px 242px;
|
padding: 20px 0 20px 242px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .feature img {
|
.gridPage .feature img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 20px;
|
top: 20px;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
margin-bottom: 0.5em;
|
margin-bottom: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .feature p.quote {
|
.gridPage .feature p.quote {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 28px !important;
|
line-height: 28px !important;
|
||||||
}
|
}
|
||||||
@@ -250,20 +250,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 900px){
|
@media screen and (max-width: 900px){
|
||||||
#caseStudies #video main {
|
.gridPage #video main {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main > div {
|
.gridPage #video main > div {
|
||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main > div + div {
|
.gridPage #video main > div + div {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video h3 {
|
.gridPage #video h3 {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -282,12 +282,12 @@
|
|||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .feature {
|
.gridPage .feature {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
padding: 180px 0 0;
|
padding: 180px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies .feature img {
|
.gridPage .feature img {
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
@@ -295,12 +295,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 480px){
|
@media screen and (max-width: 480px){
|
||||||
#caseStudies #hero {
|
.gridPage #hero {
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#caseStudies #video main > div {
|
.gridPage #video main > div {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
min-width: 280px;
|
min-width: 280px;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -1131,7 +1131,7 @@ $feature-box-div-margin-bottom: 40px
|
|||||||
|
|
||||||
// Community
|
// Community
|
||||||
|
|
||||||
#community, #caseStudies
|
#community, .gridPage
|
||||||
&.open-nav, &.flip-nav
|
&.open-nav, &.flip-nav
|
||||||
.logo
|
.logo
|
||||||
background-image: url(/images/nav_logo2.svg)
|
background-image: url(/images/nav_logo2.svg)
|
||||||
@@ -1340,3 +1340,4 @@ $feature-box-div-margin-bottom: 40px
|
|||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
//
|
||||||
+1
-1
@@ -270,7 +270,7 @@ $video-section-height: 550px
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#community, #caseStudies
|
#community, .gridPage
|
||||||
#hero
|
#hero
|
||||||
text-align: left
|
text-align: left
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: Case Studies
|
|||||||
---
|
---
|
||||||
|
|
||||||
<!Doctype html>
|
<!Doctype html>
|
||||||
<html id="caseStudies">
|
<html id="caseStudies" class="gridPage">
|
||||||
{% include head-header.html %}
|
{% include head-header.html %}
|
||||||
|
|
||||||
<section id="hero" class="light-text">
|
<section id="hero" class="light-text">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: Pearson Case Study
|
|||||||
---
|
---
|
||||||
|
|
||||||
<!Doctype html>
|
<!Doctype html>
|
||||||
<html id="caseStudies">
|
<html id="caseStudies" class="gridPage">
|
||||||
{% include head-header.html %}
|
{% include head-header.html %}
|
||||||
|
|
||||||
<section id="hero" class="light-text">
|
<section id="hero" class="light-text">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ title: Wikimedia Case Study
|
|||||||
---
|
---
|
||||||
|
|
||||||
<!Doctype html>
|
<!Doctype html>
|
||||||
<html id="caseStudies">
|
<html id="caseStudies" class="gridPage">
|
||||||
{% include head-header.html %}
|
{% include head-header.html %}
|
||||||
|
|
||||||
<section id="hero" class="light-text">
|
<section id="hero" class="light-text">
|
||||||
|
|||||||
@@ -349,8 +349,8 @@ logs or through `journalctl`. More information is provided in
|
|||||||
|
|
||||||
Additional resources:
|
Additional resources:
|
||||||
|
|
||||||
- http://wiki.apparmor.net/index.php/QuickProfileLanguage
|
- [Quick guide to the AppArmor profile language](http://wiki.apparmor.net/index.php/QuickProfileLanguage)
|
||||||
- http://wiki.apparmor.net/index.php/ProfileLanguage
|
- [AppArmor core policy reference](http://wiki.apparmor.net/index.php/ProfileLanguage)
|
||||||
|
|
||||||
## API Reference
|
## API Reference
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,7 @@ See [APPENDIX](#appendix) for how to generate a client cert.
|
|||||||
|
|
||||||
### Static Token File
|
### Static Token File
|
||||||
|
|
||||||
Token file is enabled by passing the `--token-auth-file=SOMEFILE` option to the
|
The API server reads bearer tokens from a file when given the `--token-auth-file=SOMEFILE` option on the command line. Currently, tokens last indefinitely, and the token list cannot be
|
||||||
API server. Currently, tokens last indefinitely, and the token list cannot be
|
|
||||||
changed without restarting API server.
|
changed without restarting API server.
|
||||||
|
|
||||||
The token file format is implemented in `plugin/pkg/auth/authenticator/token/tokenfile/...`
|
The token file format is implemented in `plugin/pkg/auth/authenticator/token/tokenfile/...`
|
||||||
@@ -78,8 +77,19 @@ optional group names. Note, if you have more than one group the column must be d
|
|||||||
token,user,uid,"group1,group2,group3"
|
token,user,uid,"group1,group2,group3"
|
||||||
```
|
```
|
||||||
|
|
||||||
When using token authentication from an http client the API server expects an `Authorization`
|
#### Putting a Bearer Token in a Request
|
||||||
header with a value of `Bearer SOMETOKEN`.
|
|
||||||
|
When using bearer token authentication from an http client, the API
|
||||||
|
server expects an `Authorization` header with a value of `Bearer
|
||||||
|
THETOKEN`. The bearer token must be a character sequence that can be
|
||||||
|
put in an HTTP header value using no more than the encoding and
|
||||||
|
quoting facilities of HTTP. For example: if the bearer token is
|
||||||
|
`31ada4fd-adec-460c-809a-9e56ceb75269` then it would appear in an HTTP
|
||||||
|
header as shown below.
|
||||||
|
|
||||||
|
```http
|
||||||
|
Authentication: Bearer 31ada4fd-adec-460c-809a-9e56ceb75269
|
||||||
|
```
|
||||||
|
|
||||||
### Static Password File
|
### Static Password File
|
||||||
|
|
||||||
@@ -171,7 +181,8 @@ type: kubernetes.io/service-account-token
|
|||||||
Note: values are base64 encoded because secrets are always base64 encoded.
|
Note: values are base64 encoded because secrets are always base64 encoded.
|
||||||
|
|
||||||
The signed JWT can be used as a bearer token to authenticate as the given service
|
The signed JWT can be used as a bearer token to authenticate as the given service
|
||||||
account. Normally these secrets are mounted into pods for in-cluster access to
|
account. See [above](#putting-a-bearer-token-in-a-request) for how the token is included
|
||||||
|
in a request. Normally these secrets are mounted into pods for in-cluster access to
|
||||||
the API server, but can be used from outside the cluster as well.
|
the API server, but can be used from outside the cluster as well.
|
||||||
|
|
||||||
Service accounts authenticate with the username `system:serviceaccount:(NAMESPACE):(SERVICEACCOUNT)`,
|
Service accounts authenticate with the username `system:serviceaccount:(NAMESPACE):(SERVICEACCOUNT)`,
|
||||||
@@ -192,11 +203,8 @@ email, signed by the server.
|
|||||||
|
|
||||||
To identify the user, the authenticator uses the `id_token` (not the `access_token`)
|
To identify the user, the authenticator uses the `id_token` (not the `access_token`)
|
||||||
from the OAuth2 [token response](https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse)
|
from the OAuth2 [token response](https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse)
|
||||||
as a bearer token.
|
as a bearer token. See [above](#putting-a-bearer-token-in-a-request) for how the token
|
||||||
|
is included in a request.
|
||||||
```
|
|
||||||
Authentication: Bearer (id_token)
|
|
||||||
```
|
|
||||||
|
|
||||||
To enable the plugin, pass the following required flags:
|
To enable the plugin, pass the following required flags:
|
||||||
|
|
||||||
@@ -272,10 +280,11 @@ contexts:
|
|||||||
name: webhook
|
name: webhook
|
||||||
```
|
```
|
||||||
|
|
||||||
When a client attempts to authenticate with the API server using a bearer token,
|
When a client attempts to authenticate with the API server using a bearer token
|
||||||
using the `Authorization: Bearer (TOKEN)` HTTP header the authentication webhook
|
as discussed [above](#putting-a-bearer-token-in-a-request),
|
||||||
|
the authentication webhook
|
||||||
queries the remote service with a review object containing the token. Kubernetes
|
queries the remote service with a review object containing the token. Kubernetes
|
||||||
will not challenge request that lack such a header.
|
will not challenge a request that lacks such a header.
|
||||||
|
|
||||||
Note that webhook API objects are subject to the same [versioning compatibility rules](/docs/api/)
|
Note that webhook API objects are subject to the same [versioning compatibility rules](/docs/api/)
|
||||||
as other Kubernetes API objects. Implementers should be aware of looser
|
as other Kubernetes API objects. Implementers should be aware of looser
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ export KUBERNETES_PROVIDER=libvirt-coreos; wget -q -O - https://get.k8s.io | bas
|
|||||||
Here is the curl version of this command:
|
Here is the curl version of this command:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
export KUBERNETES_PROVIDER=libvirt-coreos; curl -sS https://get.k8s.io | bash`
|
export KUBERNETES_PROVIDER=libvirt-coreos; curl -sS https://get.k8s.io | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
This script downloads and unpacks the tarball, then spawns a Kubernetes cluster on CoreOS instances with the following characteristics:
|
This script downloads and unpacks the tarball, then spawns a Kubernetes cluster on CoreOS instances with the following characteristics:
|
||||||
|
|||||||
@@ -89,5 +89,5 @@ Pods and containers
|
|||||||
* [Images and registries](/docs/user-guide/images/)
|
* [Images and registries](/docs/user-guide/images/)
|
||||||
* [Migrating from docker-cli to kubectl](/docs/user-guide/docker-cli-to-kubectl/)
|
* [Migrating from docker-cli to kubectl](/docs/user-guide/docker-cli-to-kubectl/)
|
||||||
* [Configuration Best Practices and Tips](/docs/user-guide/config-best-practices/)
|
* [Configuration Best Practices and Tips](/docs/user-guide/config-best-practices/)
|
||||||
* [Assign pods to selected nodes](https://github.com/kubernetes/kubernetes.github.io/tree/{{page.docsbranch}}/docs/user-guide/node-selection/)
|
* [Assign pods to selected nodes](/docs/user-guide/node-selection/)
|
||||||
* [Perform a rolling update on a running group of pods](https://github.com/kubernetes/kubernetes.github.io/tree/{{page.docsbranch}}/docs/user-guide/update-demo/)
|
* [Perform a rolling update on a running group of pods](/docs/user-guide/update-demo/)
|
||||||
|
|||||||
+2
-1
@@ -135,8 +135,9 @@ var kub = (function () {
|
|||||||
// case 'caseStudies':
|
// case 'caseStudies':
|
||||||
bodyHeight = windowHeight;
|
bodyHeight = windowHeight;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'caseStudies':
|
case 'caseStudies':
|
||||||
|
case 'partners':
|
||||||
bodyHeight = windowHeight * 2;
|
bodyHeight = windowHeight * 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
title: Partners
|
||||||
|
---
|
||||||
|
|
||||||
|
<!Doctype html>
|
||||||
|
<html id="partners" class="gridPage">
|
||||||
|
{% include head-header.html %}
|
||||||
|
|
||||||
|
<section id="hero" class="light-text">
|
||||||
|
<h1>Kubernetes Partners</h1>
|
||||||
|
<h5>Growing the Kubernetes ecosystem.</h5>
|
||||||
|
<!--<h5></h5>-->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="users">
|
||||||
|
<main>
|
||||||
|
<h5>We are working with a broad group of partners who contribute to the Kubernetes core codebase, making it stronger and richer, creating a vibrant Kubernetes ecosystem supporting a spectrum of complementing platforms, from open source solutions to market-leading technologies.</h5>
|
||||||
|
<h3>ISV Partners</h3>
|
||||||
|
<div id="usersGrid">
|
||||||
|
<a target="_blank" href="https://coreos.com/kubernetes"><img src="/images/community_logos/core_os_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://deis.com"><img src="/images/community_logos/deis_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud"><img src="/images/community_logos/sysdig_cloud_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://puppet.com/blog/managing-kubernetes-configuration-puppet"><img src="/images/community_logos/puppet_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://www.microloadbalancer.com/docs/deploy-netscaler-cpx-kubernetes-environment"><img src="/images/community_logos/citrix_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://wercker.com/workflows/partners/kubernetes/"><img src="/images/community_logos/wercker_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://rancher.com/kubernetes/"><img src="/images/community_logos/rancher_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://www.openshift.com/"><img src="/images/community_logos/red_hat_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://tectonic.com/press/intel-coreos-collaborate-on-openstack-with-kubernetes.html"><img src="/images/community_logos/intel_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://elasticbox.com/kubernetes/"><img src="/images/community_logos/elastickube_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://platform9.com/blog/containers-as-a-service-kubernetes-docker"><img src="/images/community_logos/platform9_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://www.appformix.com/solutions/appformix-for-kubernetes/"><img src="/images/community_logos/appformix_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://kubernetes.io/docs/getting-started-guides/dcos"><img src="/images/community_logos/mesosphere_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://docs.datadoghq.com/integrations/kubernetes/"><img src="/images/community_logos/datadog_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://apprenda.com/kubernetes-support/"><img src="/images/community_logos/apprenda_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://www.ibm.com/cloud-computing/"><img src="/images/community_logos/ibm_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://info.crunchydata.com/blog/advanced-crunchy-containers-for-postgresql"><img src="/images/community_logos/crunchy_data_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://content.mirantis.com/Containerizing-OpenStack-on-Kubernetes-Video-Landing-Page.html"><img src="/images/community_logos/mirantis_logo.png"></a>
|
||||||
|
<a target="_blank" href="http://blog.aquasec.com/security-best-practices-for-kubernetes-deployment"><img src="/images/community_logos/aqua_logo.png"></a>
|
||||||
|
<a target="_blank" href="https://jujucharms.com/canonical-kubernetes/"><img src="/images/community_logos/ubuntu_cannonical_logo.png"></a>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</section>
|
||||||
|
<style>
|
||||||
|
h5 {
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#usersGrid a {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
{% include footer.html %}
|
||||||
|
{% include case-study-styles.html %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user