Commit Graph

58 Commits

Author SHA1 Message Date
Ananth Suryanarayana
d50d7763da Add opencontrail networking provisioning support in kubernetes salt based provisioning
OpenContrail is an open-source based networking software which provides virtualization support for the cloud.

This change-set adds ability to install and provision opencontrail software for networking in kubernetes based cloud environment.

There are basically 3 components

o kube-network-manager -- plugin between contrail components and kubernets components
o provision_master.sh -- OpenContrail software installer and provisioner in master node
o provision_minion.sh -- OpenContrail software installer and provisioner in minion node(s)

These are driven via salt configuration files

One can provision opencontrail by just setting "export NETWORK_PROVIDER=opencontrail"
Optionally, OPENCONTRAIL_TAG, and OPENCONTRAIL_KUBERNETES_TAG can be used to
specify opencontrail and contrail-kubernetes software versions to install and provision.

Public-IP Subnet provided by contrail can be configured via OPENCONTRAIL_PUBLIC_SUBNET
environment variable

At this moment, plan is to add support for aws, gce and vagrant based platforms

For more information on contrail-kubernetes, please visit https://github.com/juniper/contrail-kubernetes For more information on opencontrail, please visit http://www.opencontrail.org
2015-10-03 08:03:02 -07:00
Muhammed Uluyol
7129d477d3 Launch a cluster-local registry.
This registry can be accessed through proxies that run on each node
listening on port 5000. We send the proxy images to the nodes directly
to avoid requests that hit the network during cluster launch. For now,
we continue to pull the registry itself over the network, especially
given its large size (we should be able to dramatically shrink the
image). On GCE we create a PD and use that for storage, otherwise we
use an emptyDir. The registry is not enabled outside of GCE. All
communication is currently plain HTTP. In order to use SSL, we will
need to be able to request a certificate/key from the apiserver signed
by the apiserver's CA cert.
2015-08-20 18:44:05 -07:00
Brendan Burns
15b9d98733 Add support for supervisord as a monit alternative. 2015-08-06 15:48:45 -07:00
Justin Santa Barbara
463458bf5f AWS: Install ntp daemon on all nodes
The AWS API requires a signature on method calls, including the
timestamp to prevent replay attacks.  A time drift of up to 5 minutes
between client and server is tolerated.

However, if the client clock drifts by >5 minutes, the server will start
to reject API calls (with the cryptic "AWS was not able to validate the
provided access credentials").

To prevent this happening, we install ntp on all nodes.

Fix #11371
2015-08-01 14:32:08 -04:00
Victor Marmol
f1e66c718d Merge pull request #10590 from roberthbailey/kubelet-on-nodes
Install the kubectl binary on nodes in addition to the master.
2015-07-08 16:13:12 -07:00
Victor Marmol
dd37642369 Merge pull request #10488 from justinsb/salt_support_systemd
Salt: support systemd (don't assume Redhat <=> systemd)
2015-07-08 13:43:08 -07:00
Justin Santa Barbara
bcd92c7522 Salt: support systemd (don't assume Redhat <=> systemd)
Also work around problems with Salt & systemd services, in particular
that Salt doesn't issue a daemon-reload.
2015-07-03 01:40:15 -04:00
Alex Robinson
e5ea6ae854 Run fluentd on the master node by default.
This involves adding the logging-write scope to the master when running on GCE.
2015-07-01 20:07:52 +00:00
Robert Bailey
fedddee157 Install the kubectl binary on nodes in addition to the master. 2015-06-30 16:52:17 -07:00
derekwaynecarr
db202d4904 Remove nginx from vagrant 2015-06-23 13:07:50 -04:00
derekwaynecarr
2168cee414 Upgrade to Fedora 21, Docker 1.6, clean-up SDN 2015-06-04 10:59:23 -04:00
Dawn Chen
55501a6314 Have default LimitRange created for cluster: 100m cpu.share per container 2015-05-19 10:23:40 -07:00
Justin Santa Barbara
57f7b658bb AWS: Change apiserver to listen on 443 directly, not through nginx
Mirrors changes in GCE.  I think the same changes will be needed for vagrant.
2015-05-02 16:59:04 -04:00
Dawn Chen
87e0d5da08 Merge pull request #7186 from ArtfulCoder/no_log_pod_on_master
removed elasticsearch and fluentd-gcp pods from master
2015-04-22 14:40:07 -07:00
Abhishek Shah
8cf11fd608 removed elasticsearch and fluentd-gcp pods from master 2015-04-22 12:54:57 -07:00
Robert Bailey
dc45f7f9e6 Remove nginx and replace basic auth with bearer token auth for GCE.
- Configure the apiserver to listen securely on 443 instead of 6443.
 - Configure the kubelet to connect to 443 instead of 6443.
 - Update documentation to refer to bearer tokens instead of basic auth.
2015-04-22 11:11:20 -07:00
Justin Santa Barbara
b9fd56050a Add safe_format_and_mount script to aws
Apache licensed :-)
2015-04-10 13:25:42 -07:00
Abhishek Shah
4996ccbf2d Load docker images of kubernetes components after docker is installed. 2015-04-09 09:06:42 -07:00
Abhishek Shah
39bb6d3777 Enable log collection from master. 2015-04-02 18:37:07 -07:00
derekwaynecarr
c6bf46acd7 Fix vagrant with etcd in pod 2015-04-02 16:55:29 -04:00
Abhishek Shah
d1015e785f Add salt configuration to remove cadvisor.manifest from master. cadvisor is now part of kubelet 2015-03-26 10:15:30 -07:00
Brendan Burns
8bac135f85 Configure docker and kubelet on AWS master. 2015-03-24 17:19:06 -07:00
Victor Marmol
1a7f7245e7 Remove cAdvisor manifest from cluster startup.
cAdvisor is now integrated into the Kubelet and runs inside of it.
2015-03-13 16:06:42 -07:00
Brendan Burns
966e8301a0 Add kubelet to the master. 2015-03-13 12:09:24 -07:00
Brendan Burns
17ff8fb421 Configure docker on the master like we do on workers. 2015-03-12 10:37:30 -07:00
derekwaynecarr
22e559d769 Provision network before kubelet 2015-03-10 10:30:50 -04:00
derekwaynecarr
87a41b0934 Improve vagrant reliablility, fix race condition with openvswitch and docker 2015-02-21 13:31:50 -05:00
saadali
4dea0488e6 Add monit process monitoring for kubelet and docker 2015-02-19 22:22:05 -08:00
Zach Loafman
6b3bb763f0 Merge pull request #4287 from derekwaynecarr/docker_group_gone
Docker 1.4.1 on Fedora no longer provisions a docker group
2015-02-10 14:28:02 -08:00
derekwaynecarr
46eb657722 docker does not provision a docker group anymore, so do not add vagrant user to it 2015-02-10 11:15:22 -05:00
Rajat Chopra
1d12cad456 Fix vagrant networking. Include the master as part of overlay. And remove STP for efficiency.
fix e2e services for vagrant
Kubelet should wait on SDN to finish
Do not require docker on master for default clouds
2015-02-09 14:37:27 -08:00
Zach Loafman
6b8c332cd3 Revert "Fix vagrant networking" 2015-02-09 13:40:11 -08:00
Rajat Chopra
b61ea1bbf1 Fix vagrant networking. Include the master as part of overlay. And remove STP for efficiency. 2015-02-05 17:41:27 -08:00
Justin Santa Barbara
7790435915 Fix for bool vs string comparisons in salt templates
Fixes #4118
2015-02-04 14:09:10 -05:00
Brendan Burns
c7c11d7731 Add monit support for restarting etcd to the master. 2015-01-27 20:15:24 -08:00
Zach Loafman
a305269e18 Deferred creation of SkyDNS, monitoring and logging objects
This implements phase 1 of the proposal in #3579, moving the creation
of the pods, RCs, and services to the master after the apiserver is
available.

This is such a wide commit because our existing initial config story
is special:

* Add kube-addons service and associated salt configuration:
** We configure /etc/kubernetes/addons to be a directory of objects
that are appropriately configured for the current cluster.
** "/etc/init.d/kube-addons start" slurps up everything in that dir.
(Most of the difficult is the business logic in salt around getting
that directory built at all.)
** We cheat and overlay cluster/addons into saltbase/salt/kube-addons
as config files for the kube-addons meta-service.
* Change .yaml.in files to salt templates
* Rename {setup,teardown}-{monitoring,logging} to
{setup,teardown}-{monitoring,logging}-firewall to properly reflect
their real purpose now (the purpose of these functions is now ONLY to
bring up the firewall rules, and possibly to relay the IP to the user).
* Rework GCE {setup,teardown}-{monitoring,logging}-firewall: Both
functions were improperly configuring global rules, yet used
lifecycles tied to the cluster. Use $NODE_INSTANCE_PREFIX with the
rule. The logging rule needed a $NETWORK specifier. The monitoring
rule tried gcloud describe first, but given the instancing, this feels
like a waste of time now.
* Plumb ENABLE_CLUSTER_MONITORING, ENABLE_CLUSTER_LOGGING,
ELASTICSEARCH_LOGGING_REPLICAS and DNS_REPLICAS down to the master,
since these are needed there now.

(Desperately want just a yaml or json file we can share between
providers that has all this crap. Maybe #3525 is an answer?)

Huge caveats: I've gone pretty firm testing on GCE, including
twiddling the env variables and making sure the objects I expect to
come up, come up. I've tested that it doesn't break GKE bringup
somehow. But I haven't had a chance to test the other providers.
2015-01-21 12:25:50 -08:00
Tim Hockin
47141f05c7 standard config opt names: logging 2014-11-25 17:41:53 -08:00
Tim Hockin
52ad94d766 standard config opt names: node monitoring 2014-11-25 17:39:28 -08:00
Brendan Burns
5122e4cc3a Remove deprecated nsinit from the node definition. 2014-11-17 22:20:57 -08:00
Eric Paris
a99c3c7963 rename kube server binaries to kube-
apiserver becomes kube-apiserver
controller-manager -> kube-controller-manager
scheduler and proxy similarly.

Only thing I promise is that right now hack/build-go.sh and
build/release.sh exit with 0.  That's it.  Who knows if any of this
actually works....
2014-11-13 20:08:26 -05:00
Joe Beda
ee2f030623 Give the API server access to TLS certs.
Moved the cert generation to a separate salt state and put it in a more appropriate sharable location (`/srv/kubernetes/`).
2014-11-12 18:14:24 -08:00
Joe Beda
a839599883 Install client tools on master.
We now include kubecfg and kubectl in "server binary" tar and place them into /usr/local/bin on the master.
2014-11-07 17:13:18 -08:00
Joe Beda
8100c063b8 Turn on auto security updates for debian based systems.
Fixes #2008
2014-10-27 13:49:51 -07:00
Satnam Singh
39212f5e2e Flunentd to GCP logging node level configuration 2014-10-20 18:05:00 -07:00
Satnam Singh
b7722a631d Adjust test in salt file to use boolean value 2014-10-20 15:52:28 -07:00
Joe Beda
15cd6f07d6 Use binary releases for cluster push scripts.
This is for GCE right now.  Other clouds/clusters are probably broken.
2014-10-10 12:30:11 -07:00
Deyuan Deng
253907ab04 Add etcdctl in master 2014-10-04 11:26:01 -04:00
derekwaynecarr
63bd987561 Add vagrant user to docker group 2014-09-11 16:48:17 -04:00
Brendan Burns
686c3bec84 Add initial logrotate support. 2014-09-09 13:35:06 -07:00
Rajat Chopra
2dd57898d4 add ip per pod across vagrant minions 2014-08-26 11:29:35 -07:00