From 8fca9b6f095f83bf0d7417fb33c26b7c9e466fcd Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Wed, 1 Jul 2015 10:18:46 +0200 Subject: [PATCH] Add original k8s-mesos docs to contrib/mesos --- contrib/mesos/README.md | 40 ++++++++++++++ contrib/mesos/docs/architecture.gliffy | 1 + contrib/mesos/docs/architecture.md | 34 ++++++++++++ contrib/mesos/docs/architecture.png | Bin 0 -> 69252 bytes contrib/mesos/docs/architecture.svg | 1 + contrib/mesos/docs/ha.md | 66 +++++++++++++++++++++++ contrib/mesos/docs/issues.md | 66 +++++++++++++++++++++++ contrib/mesos/docs/logos/k8s-256x256.png | Bin 0 -> 17168 bytes contrib/mesos/docs/logos/k8s-48x48.png | Bin 0 -> 2562 bytes contrib/mesos/docs/logos/k8s-96x96.png | Bin 0 -> 5248 bytes contrib/mesos/docs/networking.gliffy | 1 + contrib/mesos/docs/networking.png | Bin 0 -> 46650 bytes contrib/mesos/docs/networking.svg | 1 + docs/getting-started-guides/mesos.md | 5 ++ 14 files changed, 215 insertions(+) create mode 100644 contrib/mesos/README.md create mode 100644 contrib/mesos/docs/architecture.gliffy create mode 100644 contrib/mesos/docs/architecture.md create mode 100644 contrib/mesos/docs/architecture.png create mode 100644 contrib/mesos/docs/architecture.svg create mode 100644 contrib/mesos/docs/ha.md create mode 100644 contrib/mesos/docs/issues.md create mode 100644 contrib/mesos/docs/logos/k8s-256x256.png create mode 100644 contrib/mesos/docs/logos/k8s-48x48.png create mode 100644 contrib/mesos/docs/logos/k8s-96x96.png create mode 100644 contrib/mesos/docs/networking.gliffy create mode 100644 contrib/mesos/docs/networking.png create mode 100644 contrib/mesos/docs/networking.svg diff --git a/contrib/mesos/README.md b/contrib/mesos/README.md new file mode 100644 index 00000000000..d7d07686008 --- /dev/null +++ b/contrib/mesos/README.md @@ -0,0 +1,40 @@ +# Kubernetes-Mesos + +Kubernetes-Mesos modifies Kubernetes to act as an [Apache Mesos](http://mesos.apache.org/) framework. + +## Features On Mesos + +Kubernetes gains the following benefits when installed on Mesos: + +- **Node-Level Auto-Scaling** - Kubernetes minion nodes are created automatically, up to the size of the provisioned Mesos cluster. +- **Resource Sharing** - Co-location of Kubernetes with other popular next-generation services on the same cluster (e.g. [Hadoop](https://github.com/mesos/hadoop), [Spark](http://spark.apache.org/), and [Chronos](https://mesos.github.io/chronos/), [Cassandra](http://mesosphere.github.io/cassandra-mesos/), etc.). Resources are allocated to the frameworks based on fairness and can be claimed or passed on depending on framework load. +- **Independence from special Network Infrastructure** - Mesos can (but of course doesn't have to) run on networks which cannot assign a routable IP to every container. The Kubernetes on Mesos endpoint controller is specially modified to allow pods to communicate with services in such an environment. + +## Features On DCOS + +Kubernetes can also be installed on [Mesosphere DCOS](https://mesosphere.com/learn/), which runs Mesos as its core. This provides the following *additional* enterprise features: + +- **High Availability** - Kubernetes components themselves run within Marathon, which manages restarting/recreating them if they fail, even on a different host if the original host might fail completely. +- **Easy Installation** - One-step installation via the [DCOS CLI](https://github.com/mesosphere/dcos-cli) or DCOS UI. Both download releases from the [Mesosphere Universe](https://github.com/mesosphere/universe), [Multiverse](https://github.com/mesosphere/multiverse), or private package repositories. +- **Easy Maintenance** - See what's going on in the cluster with the DCOS UI. + +For more information about how Kubernetes-Mesos is different from Kubernetes, see [Architecture](./docs/architecture.md). + + +## Release Status + +Kubernetes-Mesos is alpha quality, still under active development, and not yet recommended for production systems. + +For more information about development progress, see the [known issues](./docs/issues.md) or the [kubernetes-mesos repository](https://github.com/mesosphere/kubernetes-mesos) where backlog issues are tracked. + +## Usage + +This project combines concepts and technologies from two already-complex projects: Mesos and Kubernetes. It may help to familiarize yourself with the basics of each project before reading on: + +* [Mesos Documentation](http://mesos.apache.org/documentation/latest) +* [Kubernetes Documentation](../../README.md) + +To get up and running with Kubernetes-Mesos, follow the [Getting started guide](../../docs/getting-started-guides/mesos.md). + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/contrib/mesos/README.md?pixel)]() diff --git a/contrib/mesos/docs/architecture.gliffy b/contrib/mesos/docs/architecture.gliffy new file mode 100644 index 00000000000..097ac0eb11e --- /dev/null +++ b/contrib/mesos/docs/architecture.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":760,"height":510,"nodeIndex":227,"autoFit":true,"exportBorder":false,"gridOn":true,"snapToGrid":true,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"viewportType":"default","fitBB":{"min":{"x":2.5,"y":10},"max":{"x":760,"y":510}},"printModel":{"pageSize":"LETTER","portrait":true,"fitToOnePage":false,"displayPageBreaks":false},"objects":[{"x":290.0,"y":60.0,"rotation":0.0,"id":35,"width":470.0,"height":300.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":4,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":310.0,"y":150.0,"rotation":0.0,"id":13,"width":130.0,"height":140.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":5,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#ffffff","gradient":false,"dashStyle":"8,8","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":30.0,"y":200.0,"rotation":0.0,"id":0,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":6,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":2,"width":86.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

controller-

manager

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":160.0,"y":200.0,"rotation":0.0,"id":3,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":9,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":4,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

api-server

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":160.0,"y":80.0,"rotation":0.0,"id":5,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":12,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":3.0,"strokeColor":"#6d9eeb","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":6,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

scheduler

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":330.0,"y":170.0,"rotation":0.0,"id":8,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":15,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":3.0,"strokeColor":"#6d9eeb","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":9,"width":86.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubelet-

executor

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":330.0,"y":230.0,"rotation":0.0,"id":10,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":18,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":11,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kube-proxy

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":330.0,"y":80.0,"rotation":0.0,"id":33,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":21,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#6d9eeb","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":34,"width":86.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mesos-

slave

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":460.0,"y":80.0,"rotation":0.0,"id":37,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":24,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":38,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":460.0,"y":300.0,"rotation":0.0,"id":53,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":27,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":54,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

iptables

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":580.0,"y":120.0,"rotation":0.0,"id":78,"width":160.0,"height":180.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":30,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#ffffff","gradient":false,"dashStyle":"8,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":375.0,"y":122.0,"rotation":0.0,"id":84,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":31,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":33,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":13,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[0.0,-2.0],[0.0,8.0],[0.0,18.0],[0.0,28.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":423.0,"y":190.0,"rotation":0.0,"id":86,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":32,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":8,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":37,"py":0.9999999999999998,"px":0.29289321881345254}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-3.0,-8.284271247461902],[63.36038969321072,-8.284271247461902],[63.36038969321072,-70.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":571.0,"y":100.0,"rotation":0.0,"id":88,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":33,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":37,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":201,"py":0.5,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-66.0,20.0],[-66.0,68.0],[112.2142857142859,68.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":374.0,"y":272.0,"rotation":0.0,"id":90,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":34,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":10,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":53,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[1.0,-2.0],[1.0,48.0],[86.0,48.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":525.0,"y":121.0,"rotation":0.0,"id":91,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":35,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":37,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":204,"py":0.5000000000000003,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-20.0,-1.0],[-20.0,75.00000000000003],[72.50000000000023,75.00000000000003]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":522.0,"y":113.0,"rotation":0.0,"id":92,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":36,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":37,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":202,"py":0.5,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-17.0,7.0],[-17.0,111.0],[161.2142857142859,111.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":524.0,"y":114.0,"rotation":0.0,"id":93,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":37,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":37,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":203,"py":0.5000000000000003,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-19.0,6.0],[-19.0,138.00000000000003],[73.50000000000023,138.00000000000003]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":30.0,"y":140.0,"rotation":0.0,"id":98,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":38,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#6d9eeb","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":99,"width":86.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mesos-

master

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":30.0,"y":80.0,"rotation":0.0,"id":100,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":41,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":101,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

zookeeper

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":160.0,"y":140.0,"rotation":0.0,"id":102,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":44,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":103,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

etcd

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":117.0,"y":101.0,"rotation":0.0,"id":106,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":47,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":98,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":5,"py":0.7071067811865475,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[3.0,50.7157287525381],[23.0,50.7157287525381],[23.0,7.284271247461902],[43.0,7.284271247461902]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":77.0,"y":83.0,"rotation":0.0,"id":107,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":48,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":98,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":33,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-47.0,77.0],[-70.0,77.0],[-70.0,-43.0],[298.0,-43.0],[298.0,-3.0]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":209.0,"y":118.0,"rotation":0.0,"id":108,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":49,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":5,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":3,"py":0.29289321881345237,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[41.0,-18.0],[60.0,-18.0],[60.0,93.7157287525381],[41.0,93.7157287525381]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":207.0,"y":202.0,"rotation":0.0,"id":109,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":50,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":3,"py":0.7071067811865475,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":0,"py":0.7071067811865475,"px":0.9999999999999998}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-47.0,26.284271247461902],[-60.33333333333334,26.284271247461902],[-73.66666666666669,26.284271247461902],[-87.00000000000001,26.284271247461902]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":120.0,"y":220.0,"rotation":0.0,"id":110,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":51,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":102,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":3,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[85.0,-40.0],[85.0,-33.33333333333334],[85.0,-26.666666666666657],[85.0,-20.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":80.0,"y":120.0,"rotation":0.0,"id":111,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":52,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":98,"py":0.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":100,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-5.0,20.0],[-5.0,13.333333333333343],[-5.0,6.666666666666671],[-5.0,0.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":73.0,"y":240.0,"rotation":0.0,"id":114,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":53,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":3,"py":0.7071067811865475,"px":0.9999999999999998}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":10,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[177.0,-11.715728752538098],[207.0,-11.715728752538098],[207.0,10.0],[257.0,10.0]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":490.0,"y":400.0,"rotation":0.0,"id":116,"width":130.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":54,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.5999999999999996,"y":0.0,"rotation":0.0,"id":117,"width":124.79999999999998,"height":12.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubelet-managed pod

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":706.0,"y":42.0,"rotation":0.0,"id":118,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":57,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":116,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":78,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":-11.770164604422094,"endArrowRotation":-89.58463943745998,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-86.0,378.0],[-46.0,378.0],[-46.0,258.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":120.0,"y":340.0,"rotation":0.0,"id":120,"width":130.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":58,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.5999999999999996,"y":0.0,"rotation":0.0,"id":121,"width":124.79999999999998,"height":24.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

slave-managed executor container

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":437.0,"y":218.0,"rotation":0.0,"id":122,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":61,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":13,"py":0.8857142857142857,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":120,"py":0.5,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":171.89845704086358,"endArrowRotation":171.89845704160854,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-127.0,56.0],[-157.0,56.0],[-157.0,142.0],[-187.0,142.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":127.0,"y":111.0,"rotation":0.0,"id":129,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":62,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":98,"py":0.7071067811865475,"px":0.9999999999999998}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":0,"py":0.29289321881345237,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-7.000000000000014,57.2842712474619],[6.0,57.2842712474619],[6.0,100.7157287525381],[-7.0,100.7157287525381]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":217.0,"y":212.0,"rotation":0.0,"id":132,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":63,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":141,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":3,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-42.0,68.0],[-12.0,68.0],[-12.0,28.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":33.5,"y":330.0,"rotation":0.0,"id":133,"width":31.5,"height":50.0,"uid":"com.gliffy.shape.uml.uml_v1.default.actor","order":64,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.actor.uml_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":137,"width":33.0,"height":12.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

admin

","tid":null,"valign":"middle","vposition":"below","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":35.0,"y":325.0,"rotation":0.0,"id":135,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":67,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":133,"py":0.5,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":1,"startArrowRotation":-2.95764250679468,"endArrowRotation":-87.48214222550786,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[30.0,30.0],[86.0,30.0],[86.0,-29.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":532.0,"y":123.0,"rotation":0.0,"id":138,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":68,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":8,"py":0.7071067811865475,"px":0.9999999999999998}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":78,"py":0.8722222222222222,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-112.0,75.2842712474619],[-50.0,75.2842712474619],[-50.0,154.0],[48.0,154.0]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":700.0,"y":320.0,"rotation":0.0,"id":139,"width":50.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":69,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

SLAVE

\n

HOST

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":105.0,"y":260.0,"rotation":0.0,"id":141,"width":70.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.ellipse","order":70,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.4000000000000001,"y":0.0,"rotation":0.0,"id":142,"width":67.2,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubectl

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":80.0,"y":400.0,"rotation":0.0,"id":179,"width":192.5,"height":70.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":97,"lockAspectRatio":false,"lockShape":false,"children":[{"x":62.5,"y":40.0,"rotation":0.0,"id":147,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":80,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

comm / data transfer

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":24.5,"y":48.0,"rotation":0.0,"id":148,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":78,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[0.0,-2.0],[17.0,-2.0],[17.0,-2.0],[34.0,-2.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":62.5,"y":20.0,"rotation":0.0,"id":144,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":76,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

life cycle management

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":24.5,"y":28.0,"rotation":0.0,"id":143,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":74,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[0.0,-2.0],[17.0,-2.0],[17.0,-2.0],[34.0,-2.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":0.0,"y":0.0,"rotation":0.0,"id":152,"width":192.5,"height":70.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":3,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":290.0,"y":400.0,"rotation":0.0,"id":180,"width":180.0,"height":110.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":98,"lockAspectRatio":false,"lockShape":false,"children":[{"x":37.5,"y":79.0,"rotation":0.0,"id":175,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":96,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

user spec'd container

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":20.0,"y":79.0,"rotation":0.0,"id":176,"width":11.0,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":94,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":1.0,"strokeColor":"#38761d","fillColor":"#38761d","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":37.5,"y":59.0,"rotation":0.0,"id":168,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":92,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

core service

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":20.0,"y":59.0,"rotation":0.0,"id":169,"width":11.0,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":90,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":1.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":37.5,"y":39.0,"rotation":0.0,"id":163,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":88,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mesos component

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":20.0,"y":39.0,"rotation":0.0,"id":164,"width":11.0,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":86,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":1.0,"strokeColor":"#6d9eeb","fillColor":"#6d9eeb","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":37.5,"y":19.0,"rotation":0.0,"id":158,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":84,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubernetes component

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":20.0,"y":19.0,"rotation":0.0,"id":156,"width":11.0,"height":11.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":82,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":1.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null},{"x":0.0,"y":0.0,"rotation":0.0,"id":178,"width":180.0,"height":110.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":1,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":490.0,"y":440.0,"rotation":0.0,"id":192,"width":130.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":99,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.5999999999999996,"y":0.0,"rotation":0.0,"id":193,"width":124.79999999999998,"height":24.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubelet-managed container, via Docker

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":873.0,"y":419.0,"rotation":0.0,"id":194,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":102,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":202,"py":0.5,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":192,"py":0.5,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":90.16611201730352,"endArrowRotation":171.03524989098037,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-189.7857142857141,-195.0],[-189.7857142857141,41.0],[-253.0,41.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":547.5,"y":10.0,"rotation":0.0,"id":196,"width":152.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":103,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":3.0399999999999996,"y":0.0,"rotation":0.0,"id":197,"width":145.92000000000002,"height":24.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

establishes pod network, ipc namespaces

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":716.0,"y":52.0,"rotation":0.0,"id":198,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":106,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":196,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":201,"py":0.5,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":82.84229462672464,"endArrowRotation":89.45311382172923,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-92.5,-2.0],[-92.5,25.0],[-32.78571428571411,25.0],[-32.78571428571411,116.0]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":597.5000000000002,"y":140.0,"rotation":0.0,"id":216,"width":120.0,"height":140.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":127,"lockAspectRatio":false,"lockShape":false,"children":[{"x":0.0,"y":28.0,"rotation":0.0,"id":204,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":125,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#38761d","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":210,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

logger

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":null},{"x":0.0,"y":84.0,"rotation":0.0,"id":203,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":120,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#38761d","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":212,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

cache

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":null},{"x":51.42857142857133,"y":56.0,"rotation":0.0,"id":202,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":115,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#38761d","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":211,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

webapp

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":null},{"x":51.42857142857133,"y":0.0,"rotation":0.0,"id":201,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":110,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":209,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

pause

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":null}],"hidden":false,"layerId":null}],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":219.0,"y":128.0,"rotation":0.0,"id":220,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":128,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":8,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":3,"py":0.5,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[111.0,62.0],[61.0,62.0],[61.0,92.0],[31.0,92.0]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":137.0,"y":121.0,"rotation":0.0,"id":221,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":129,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":98,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":3,"py":0.2928932188134525,"px":1.1102230246251563E-16}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-17.0,39.0],[11.0,39.0],[11.0,90.7157287525381],[23.0,90.7157287525381]],"lockSegments":{"1":true},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":130.0,"y":230.0,"rotation":0.0,"id":222,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":130,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":5,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":102,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[75.0,-110.0],[75.0,-103.33333333333333],[75.0,-96.66666666666666],[75.0,-90.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":130.0,"y":230.0,"rotation":0.0,"id":223,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":131,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":33,"py":0.9999999999999998,"px":0.29289321881345254}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":8,"py":0.0,"px":0.2928932188134524}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[226.36038969321072,-110.0],[226.36038969321072,-93.33333333333334],[226.36038969321072,-76.66666666666666],[226.36038969321072,-60.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"},{"x":127.0,"y":111.0,"rotation":0.0,"id":225,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":132,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":100,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":5,"py":0.2928932188134525,"px":1.1102230246251563E-16}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-7.0,-19.284271247461902],[6.333333333333343,-19.284271247461902],[19.666666666666657,-19.284271247461902],[33.0,-19.284271247461902]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[],"hidden":false,"layerId":"N4HAvHaEUGxu"}],"layers":[{"guid":"N4HAvHaEUGxu","order":0,"name":"Layer 0","active":true,"locked":false,"visible":true,"nodeIndex":133}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"#38761d","stroke":"#6d9eeb","strokeWidth":3,"dashStyle":"8.0,2.0"},"com.gliffy.shape.uml.uml_v1.default":{"fill":"#FFFFFF","stroke":"#000000","strokeWidth":1}},"lineStyles":{"global":{"stroke":"#000000","strokeWidth":1,"dashStyle":"1.0,1.0","endArrow":1,"orthoMode":2}},"textStyles":{"global":{"bold":true,"size":"12px","color":"#ffffff"}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v1.default","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v2.forms_components","com.gliffy.libraries.network.network_v3.home","com.gliffy.libraries.images"],"autosaveDisabled":false,"lastSerialized":1432239993668},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/contrib/mesos/docs/architecture.md b/contrib/mesos/docs/architecture.md new file mode 100644 index 00000000000..dcc50171e9a --- /dev/null +++ b/contrib/mesos/docs/architecture.md @@ -0,0 +1,34 @@ +# Kubernetes-Mesos Architecture + +An [Apache Mesos][1] cluster consists of one or more masters, and one or more slaves. +Kubernetes-Mesos (k8sm) operates as a Mesos framework that runs on the cluster. +As a framework, k8sm provides scheduler and executor components, both of which are hybrids of Kubernetes and Mesos: +the scheduler component integrates the Kubernetes scheduling API and the Mesos scheduler runtime, whereas; +the executor component integrates Kubernetes kubelet services and the Mesos executor runtime. + +Multiple Mesos masters are typically configured to coordinate leadership election via Zookeeper. +Future releases of Mesos may implement leader election protocols [differently][2]. +Kubernetes maintains its internal registry (pods, replication controllers, bindings, minions, services) in etcd. +Users typically interact with Kubernetes using the `kubectl` command to manage Kubernetes primitives. + +When a pod is created in Kubernetes, the k8sm scheduler creates an associated Mesos task and queues it for scheduling. +Upon pairing the pod/task with an acceptable resource offer, the scheduler binds the pod/task to the offer's slave. +As a result of binding the pod/task is launched and delivered to an executor (an executor is created by the Mesos slave if one is not already running). +The executor launches the pod/task, which registers the bound pod with the kubelet engine and the kubelet begins to manage the lifecycle of the pod instance. + +![Architecture Diagram](architecture.png) + +## Networking + +Kubernetes-Mesos uses "normal" Docker IPv4, host-private networking, rather than Kubernetes' SDN-based networking that assigns an IP per pod. This is mostly transparent to the user, especially when using the service abstraction to access pods. For details on some issues it creates, see [issues][3]. + +![Network Diagram](networking.png) + +[1]: http://mesos.apache.org/ +[2]: https://issues.apache.org/jira/browse/MESOS-1806 +[3]: issues.md#service-endpoints + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/contrib/mesos/docs/README.md?pixel)]() + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/contrib/mesos/docs/architecture.md?pixel)]() diff --git a/contrib/mesos/docs/architecture.png b/contrib/mesos/docs/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1de30f242f5a3f792a7d577f00aa1b955f62096e GIT binary patch literal 69252 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 Xb~;zL)gmDQ7W`7YrY4&!gAVvV2qKTR literal 0 HcmV?d00001 diff --git a/contrib/mesos/docs/architecture.svg b/contrib/mesos/docs/architecture.svg new file mode 100644 index 00000000000..2d74a42cd5d --- /dev/null +++ b/contrib/mesos/docs/architecture.svg @@ -0,0 +1 @@ +controller-managerapi-serverschedulerkubelet-executorkube-proxymesos-slavedockeriptablesmesos-masterzookeeperetcdkubelet-managedpodslave-managedexecutorcontaineradminSLAVEHOSTkubectllifecyclemanagementcomm/datatransferkubernetescomponentmesoscomponentcoreserviceuserspec'dcontainerkubelet-managedcontainer,viaDockerestablishespodnetwork,ipcnamespacespausewebappcachelogger \ No newline at end of file diff --git a/contrib/mesos/docs/ha.md b/contrib/mesos/docs/ha.md new file mode 100644 index 00000000000..96197f9cd0f --- /dev/null +++ b/contrib/mesos/docs/ha.md @@ -0,0 +1,66 @@ +## High Availability + +### Scheduler + +The implementation of the scheduler HA feature includes: + +- Checkpointing by default (`--checkpoint`) +- Large failover-timeout by default (`--failover_timeout`) +- Hot-failover w/ multiple scheduler instances (`--ha`) +- Best effort task reconciliation on failover + +#### Multiple Instances + +Multiple scheduler instances may be run to support a warm-standby scenario in which one scheduler fails and another takes over immediately. +But at any moment in time only one scheduler is actually registered with the leading Mesos master. +Scheduler leader election is implemented using etcd so it is important to have an HA etcd configuration established for reliable scheduler HA. + +It is currently recommended that no more than 2 scheduler instances be running at the same time. +Running more than 2 schedulers at once may work but has not been extensively tested. +YMMV. + +#### Failover + +Scheduler failover may be triggered by either the following events: + +- loss of leadership when running in HA mode (`--ha`). +- the leading scheduler process receives a USR1 signal. + +It is currently possible signal failover to a single, non-HA scheduler process. +In this case, if there are problems launching a replacement scheduler process then the cluster may be without a scheduler until another is manually started. + +#### How To + +##### Command Line Arguments + +- `--ha` is required to enable scheduler HA and multi-scheduler leader election. +- `--km_path` or else (`--executor_path` and `--proxy_path`) should reference non-local-file URI's and must be identicial across schedulers. + +If you have HDFS installed on your slaves then you can specify HDFS URI locations for the binaries: + +```shell +$ hdfs dfs -put -f bin/km hdfs:///km +$ ./bin/km scheduler ... --mesos_master=zk://zk1:2181,zk2:2181/mesos --ha --km_path=hdfs:///km +``` + +**IMPORTANT:** some command line parameters specified for the scheduler process are passed to the Kubelet-executor and so are subject to compatibility tests: + +- a Mesos master will not recognize differently configured executors as being compatible, and so... +- a scheduler will refuse to accept any offer for slave resources if there are incompatible executors running on the slave. + +Within the scheduler, compatibility is largely determined by comparing executor configuration hashes: + a hash is calculated from a subset of the executor-related command line parameters provided to the scheduler process. +The command line parameters that affect the hash calculation are listed below. + +- `--allow_privileged` +- `--api_servers` +- `--auth_path` +- `--cluster_*` +- `--executor_*` +- `--kubelet_*` +- `--km_path` +- `--profiling` +- `--proxy_path` + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/contrib/mesos/docs/ha.md?pixel)]() diff --git a/contrib/mesos/docs/issues.md b/contrib/mesos/docs/issues.md new file mode 100644 index 00000000000..a5427b77ef9 --- /dev/null +++ b/contrib/mesos/docs/issues.md @@ -0,0 +1,66 @@ +## Known Issues + +### Pod Placement + +The initial plan was to implement pod placement (aka scheduling "constraints") using rules similar to those found in Marathon. +Upon further consideration it has been decided that a greater alignment between the stock Kubernetes scheduler and kubernetes-mesos scheduler would benefit both projects, as well as end-users. +Currently it is not possible to specify pod placement constraints for the kubernetes-mesos scheduler. +This issue is being tracked here: https://github.com/mesosphere/kubernetes-mesos/issues/338 + +### Resource Allocation + +Resource requirements (limits) specified on Kubernetes pods are currently ignored, both in the scheduler and on the node. Instead hardcoded values are used for the time being. This issue is being tracked here: https://github.com/mesosphere/kubernetes-mesos/issues/68. + +In general Mesos is designed to handle resource accounting and enforcement across the cluster. Part of that enforcement involves "growing" and "shrinking" the pool of resources allocated for executor containers. +The current implementation of the kubelet-executor launches pods as Docker containers (just like the upstream kubelet) and makes no attempt to actually "contain" the pods that are launched. Because the kubernetes-mesos scheduler cannot depend on the kubelet-executor to properly contain resources, it foregoes implementing accurate resource accounting. + +Recent changes to both the Docker and Kubernetes codebase have made it possible to implement the necessary changes in the kubelet-executor for proper pod containment. This is in the works and will be merged into a later version when ready. + +### Ports + +Mesos typically defines `ports` resources for each slave and these ports are consumed by tasks, as they are launched, that require one or more host ports. +Kubernetes pod container specifications identify two types of ports, container ports and host ports: +container ports are allocated from the network namespace of the pod, which is independent from that of the host, whereas; +host ports are allocated from the network namespace of the host. +The k8sm scheduler recognizes the declared host ports of each container in a pod/task and for each such port, attempts to allocate it from the offered ports listed in mesos resource offers. +If no host port is declared, then the scheduler may choose any port from the offered ports ranges. + +If slaves are configured to offer a `ports` resource range, for example [31000-32000], then any host ports declared in the pod container specification must fall within that range. +Ports declared outside that range (other than zero) will never match resource offers received by the k8sm scheduler, and so pod specifications that declare such ports will never be executed as tasks on the cluster. + +As opposed to Kubernetes proper, a missing pod container host port specification or a host port set to zero will allocate a host port from a resource offer. + +### Service Endpoints + +At the time of this writing both Kubernetes and Mesos are using IPv4 addressing, albeit under different assumptions. +Mesos clusters configured with Docker typically use default Docker networking, which is host-private. +Kubernetes clusters assume a custom Docker networking configuration that assigns a cluster-routable IPv4 address to each pod, meaning that a process running anywhere on a Kubernetes cluster can reach a pod running on the same cluster by using the pod's Docker-assigned IPv4 address. + +Kubernetes service endpoints terminate, by default, at a backing pod's IPv4 address using the container-port selected for in the service specification (PodIP:ContainerPort). +This is problematic when default Docker networking has been configured, such as in the case of typical Mesos clusters, because a pod's host-private IPv4 address is not intended to be reachable outside of its host. + +The k8sm project has implemented a work-around: service endpoints are terminated at HostIP:HostPort, where the HostIP is the IP address of the Mesos slave and the HostPort is the host port declared in the pod container port specification. +Host ports that are not defined, or else defined as zero, will automatically be assigned a (host) port resource from a resource offer. +When using the `controller-manager` provided by this project users should be sure to assign a `name` to each `service.spec.port` object, otherwise errors may reported in the endpoints controller manager regarding non-unique port values (#322). + +To disable the work-around and revert to vanilla Kubernetes service endpoint termination: + +* execute the k8sm controller-manager with `-host_port_endpoints=false` + +Then the usual Kubernetes network assumptions must be fulfilled for Kubernetes to work with Mesos, i.e. each container must get a cluster-wide routable IP (compare [Kubernetes Networking documentation](../../../docs/design/networking.md#container-to-container)). + +Future support for IPv6 addressing in Docker and Kubernetes should obviate the need for this work-around. + +### Orphan Pods + +The default `executor_shutdown_grace_period` of a Mesos slave is 3 seconds. +When the executor is shut down it forcefully terminates the Docker containers that it manages. +However, if terminating the Docker containers takes longer than the `executor_shutdown_grace_period` then some containers may not get a termination signal at all. +A consequence of this is that some pod containers, previously managed by the framework's executor, will remain running on the slave indefinitely. + +There are two work-arounds to this problem: +* Restart the framework and it should terminate the orphaned tasks. +* Adjust the value of `executor_shutdown_grace_period` to something greater than 3 seconds. + + +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/contrib/mesos/docs/issues.md?pixel)]() diff --git a/contrib/mesos/docs/logos/k8s-256x256.png b/contrib/mesos/docs/logos/k8s-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbb2a0e49e58f49e5cb7bd0e9060ac83e1114f1 GIT binary patch literal 17168 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 W%AT)x1Au2&FnGH9xvXZs?w>th_x_^ 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 Y528qoZf8$3GXMYp07*qoM6N<$g2ZRvm;e9( literal 0 HcmV?d00001 diff --git a/contrib/mesos/docs/logos/k8s-96x96.png b/contrib/mesos/docs/logos/k8s-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..f68194f5374069050bb282468740d9307b6044b8 GIT binary patch literal 5248 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 pod,

\n

network namespace

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":12.5,"y":10.0,"rotation":0.0,"id":35,"width":400.0,"height":330.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":202.0,"y":104.0,"rotation":0.0,"id":266,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":44,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":263,"py":0.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":37,"py":0.9999999999999998,"px":0.29289321881345254}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-10.63961030678928,33.50100681951386],[-10.63961030678928,12.000671213009241],[-10.63961030678928,-9.49966439349538],[-10.63961030678928,-31.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":543.0,"y":176.0,"rotation":0.0,"id":273,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":53,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":269,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":37,"py":1.0,"px":0.7071067811865476}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-204.75,-58.0],[-314.3603896932107,-58.0],[-314.3603896932107,-103.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":304.7857142857142,"y":33.0,"rotation":0.0,"id":242,"width":80.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":31,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ff9900","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.777777777777778,"y":0.0,"rotation":0.0,"id":243,"width":76.44444444444446,"height":36.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

<bridge>

172.17.42.1

docker0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":165.0,"y":33.0,"rotation":0.0,"id":37,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":7,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":38,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

docker

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":50.0,"y":33.0,"rotation":0.0,"id":33,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":5,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#6d9eeb","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":34,"width":86.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mesos-

slave

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":294.5,"y":90.5,"rotation":0.0,"id":284,"width":154.25,"height":230.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":57,"lockAspectRatio":false,"lockShape":false,"children":[{"x":15.71428571428578,"y":104.0,"rotation":0.0,"id":202,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":51,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":211,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":5,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

pause

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":15.71428571428578,"y":48.0,"rotation":0.0,"id":201,"width":68.57142857142858,"height":56.0,"uid":"com.gliffy.shape.basic.basic_v1.default.hexagon","order":49,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.hexagon.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#38761d","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.7142857142857144,"y":0.0,"rotation":0.0,"id":209,"width":65.14285714285711,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":5,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

webapp

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":-188.0,"y":-11.0,"rotation":0.0,"id":272,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":48,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":269,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":201,"py":0.5,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[237.75,44.5],[237.75,65.75],[238.00000000000006,65.75],[238.00000000000006,87.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":43.75,"y":21.0,"rotation":0.0,"id":271,"width":110.5,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":47,"lockAspectRatio":false,"lockShape":false,"children":[{"x":0.0,"y":0.5,"rotation":0.0,"id":269,"width":12.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":46,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":2.0,"strokeColor":"#38761d","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":15.5,"y":0.0,"rotation":0.0,"id":270,"width":95.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":45,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

:8080

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}]},{"x":10.0,"y":174.0,"rotation":0.0,"id":220,"width":80.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":29,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ff9900","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.777777777777778,"y":0.0,"rotation":0.0,"id":221,"width":76.44444444444446,"height":36.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

<veth>

172.17.42.x

eth0

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":0.0,"y":0.0,"rotation":0.0,"id":78,"width":100.0,"height":230.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":11,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#ffffff","gradient":false,"dashStyle":"8,2","dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]}]},{"x":10.0,"y":353.0,"rotation":0.0,"id":286,"width":152.0,"height":150.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":59,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":3.0400000000000014,"y":0.0,"rotation":0.0,"id":287,"width":145.92000000000013,"height":144.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

kubernetes-managed service portal

 

:80 is the declared service port

 

10.10.10.2 allocated from portal_net range,

not assigned to any nic

 

${name}_SERVICE_HOST

${name}_SERVICE_PORT

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":202.0,"y":94.0,"rotation":0.0,"id":282,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":56,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":10,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":263,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-62.0,90.7157287525381],[-11.0,90.7157287525381],[-11.0,55.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":185.0,"y":137.0,"rotation":0.0,"id":265,"width":110.5,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":43,"lockAspectRatio":false,"lockShape":false,"children":[{"x":0.0,"y":0.5,"rotation":0.0,"id":263,"width":12.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":42,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":2.0,"strokeColor":"#6d9eeb","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":15.5,"y":0.0,"rotation":0.0,"id":264,"width":95.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":41,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

<host>:31000

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}]},{"x":288.0,"y":438.0,"rotation":0.0,"id":261,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":40,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":258,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":10,"py":0.7071067811865475,"px":0.9999999999999998}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-102.9994829041413,-236.7157287525381],[-117.99965526942754,-236.7157287525381],[-132.99982763471377,-236.7157287525381],[-148.0,-236.7157287525381]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":192.0,"y":84.0,"rotation":0.0,"id":260,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":39,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":53,"py":0.29289321881345237,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":258,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[-52.0,190.7157287525381],[-1.0,190.7157287525381],[-1.0,123.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":185.0,"y":195.0,"rotation":0.0,"id":257,"width":110.5,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":38,"lockAspectRatio":false,"lockShape":false,"children":[{"x":0.0,"y":0.5,"rotation":0.0,"id":258,"width":12.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":37,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":15.5,"y":0.0,"rotation":0.0,"id":259,"width":95.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":36,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

<host>:49153

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}]},{"x":50.0,"y":173.0,"rotation":0.0,"id":10,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":3,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#1155cc","fillColor":"#1155cc","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":11,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

proxy

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":456.0,"y":-5.0,"rotation":0.0,"id":288,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":61,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":286,"py":0.0,"px":0.7071067811865476}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":252,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":-82.17649372239768,"endArrowRotation":-82.17649372213663,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-338.51976925964476,358.0],[-338.51976925964476,329.75],[-266.0,329.75],[-266.0,301.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":15.0,"y":320.5,"rotation":0.0,"id":139,"width":80.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":15,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

SLAVE HOST

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":140.0,"y":275.5,"rotation":0.0,"id":279,"width":44.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":55,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":5,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

nat

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":184.0,"y":284.0,"rotation":0.0,"id":278,"width":110.5,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":54,"lockAspectRatio":false,"lockShape":false,"children":[{"x":0.0,"y":0.5,"rotation":0.0,"id":252,"width":12.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.circle","order":34,"lockAspectRatio":true,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.ellipse.basic_v1","strokeWidth":2.0,"strokeColor":"#999999","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]},{"x":15.5,"y":-7.0,"rotation":0.0,"id":251,"width":95.0,"height":28.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":33,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

10.10.10.2:80

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]}]},{"x":182.0,"y":84.0,"rotation":0.0,"id":254,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":35,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":252,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":53,"py":0.7071067811865475,"px":0.9999999999999998}}},"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[2.0,206.5],[-12.668996335391626,206.5],[-27.33799267078325,206.5],[-42.00698900617488,206.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":50.0,"y":263.0,"rotation":0.0,"id":53,"width":90.0,"height":40.0,"uid":"com.gliffy.shape.basic.basic_v1.default.round_rectangle","order":9,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.round_rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#b7b7b7","fillColor":"#b7b7b7","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":54,"width":86.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

iptables

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":15.0,"y":223.0,"rotation":0.0,"id":295,"width":130.0,"height":27.5,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":62,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.5999999999999996,"y":0.0,"rotation":0.0,"id":296,"width":124.79999999999998,"height":12.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

ephemeral proxy port

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":466.0,"y":5.0,"rotation":0.0,"id":297,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":64,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":295,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":258,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":-2.226088371282604,"endArrowRotation":-80.888785880177,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-321.0,231.75],[-275.0,231.75],[-275.0,202.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":15.0,"y":92.0,"rotation":0.0,"id":298,"width":147.0,"height":54.5,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":65,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#ffffff","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.9399999999999995,"y":0.0,"rotation":0.0,"id":299,"width":141.11999999999998,"height":48.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mesos-managed host port resource, declared in pod container ports spec

"hostPort"

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":466.0,"y":5.0,"rotation":0.0,"id":300,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":67,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":298,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":263,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":21.082066264888986,"endArrowRotation":21.082066264590114,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-304.0,114.25],[-292.5,114.25],[-292.5,138.5],[-281.0,138.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":210.0,"y":160.0,"rotation":0.0,"id":302,"width":74.35714285714289,"height":22.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":68,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":0.0,"strokeColor":"#ffffff","fillColor":"none","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":1.4871428571428578,"y":0.0,"rotation":0.0,"id":303,"width":71.38285714285716,"height":24.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

container port

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[]}]},{"x":466.0,"y":5.0,"rotation":0.0,"id":304,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":70,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":302,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":269,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":-6.405570867964701,"endArrowRotation":-6.405570867687305,"interpolationType":"quadratic","cornerRadius":null,"controlPath":[[-181.6428571428571,166.0],[-154.69642857142856,166.0],[-154.69642857142856,113.0],[-127.75,113.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":220.0,"y":408.0,"rotation":0.0,"id":306,"width":192.5,"height":70.0,"uid":"com.gliffy.shape.basic.basic_v1.default.group","order":306,"lockAspectRatio":false,"lockShape":false,"children":[{"x":62.5,"y":40.0,"rotation":0.0,"id":147,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

forwarded connection

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":24.5,"y":48.0,"rotation":0.0,"id":148,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":18,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"1.0,1.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[0.0,-2.0],[17.0,-2.0],[17.0,-2.0],[34.0,-2.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":62.5,"y":20.0,"rotation":0.0,"id":144,"width":130.0,"height":12.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":17,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

socket listener

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"children":[]},{"x":24.5,"y":28.0,"rotation":0.0,"id":143,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":10.0,"controlPath":[[0.0,-2.0],[17.0,-2.0],[17.0,-2.0],[34.0,-2.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[]},{"x":0.0,"y":0.0,"rotation":0.0,"id":152,"width":192.5,"height":70.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":1,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[]}]}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"none","stroke":"#999999","strokeWidth":0,"dashStyle":"8.0,2.0","gradient":false},"com.gliffy.shape.uml.uml_v1.default":{"fill":"#FFFFFF","stroke":"#000000","strokeWidth":1}},"lineStyles":{"global":{"stroke":"#000000","strokeWidth":2,"dashStyle":"1.0,1.0","endArrow":1,"orthoMode":1}},"textStyles":{"global":{"size":"11px","color":"#000000","bold":false}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.uml.uml_v1.default","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.ui.ui_v2.forms_components","com.gliffy.libraries.network.network_v3.home","com.gliffy.libraries.images"],"autosaveDisabled":false},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/contrib/mesos/docs/networking.png b/contrib/mesos/docs/networking.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c4b3a794ee5bb352f5eb1d829142b80a7ad70f GIT binary patch literal 46650 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 nziW92Yl;1?B=P_0#{aVQM1I5Mproxymesos-slavedockeriptableskubelet-managedpod,networknamespaceSLAVEHOSTsocketlistenerforwardedconnection<veth>172.17.42.xeth0<bridge>172.17.42.1docker010.10.10.2:80<host>:49153<host>:31000:8080webapppausenatkubernetes-managedserviceportal:80isthedeclaredserviceport10.10.10.2allocatedfromportal_netrange,notassignedtoanynic${name}_SERVICE_HOST${name}_SERVICE_PORTephemeralproxyportmesos-managedhostportresource,declaredinpodcontainerportsspec"hostPort"containerport \ No newline at end of file diff --git a/docs/getting-started-guides/mesos.md b/docs/getting-started-guides/mesos.md index ba5bfee44d0..4e55f0d6951 100644 --- a/docs/getting-started-guides/mesos.md +++ b/docs/getting-started-guides/mesos.md @@ -60,6 +60,8 @@ It provides a step by step walk through of adding Kubernetes to a Mesos cluster **NOTE:** There are [known issues with the current implementation][7] and support for centralized logging and monitoring is not yet available. Please [file an issue against the kubernetes-mesos project][8] if you have problems completing the steps below. +Further information is available in the Kubernetes on Mesos [contrib directory][13]. + ### Prerequisites * Understanding of [Apache Mesos][6] @@ -344,6 +346,8 @@ Address 1: 10.10.10.1 Try out some of the standard [Kubernetes examples][9]. +Read about Kubernetes on Mesos' architecture in the [contrib directory][13]. + **NOTE:** Some examples require Kubernetes DNS to be installed on the cluster. Future work will add instructions to this guide to enable support for Kubernetes DNS. @@ -361,6 +365,7 @@ Future work will add instructions to this guide to enable support for Kubernetes [10]: http://open.mesosphere.com/getting-started/cloud/google/mesosphere/#vpn-setup [11]: ../../cluster/addons/dns/skydns-rc.yaml.in [12]: ../../cluster/addons/dns/skydns-svc.yaml.in +[13]: ../../contrib/mesos/README.md