Commit Graph

1031 Commits (a45b5c3ebfc8288b8f2400df80376c59aab0b7c7)

Author SHA1 Message Date
Victor Marmol a59e5f8995 Refactor pod killing to be done in a single killPod(). 2015-03-26 11:25:48 -07:00
Victor Marmol 106cc037ee Merge pull request #5995 from ArtfulCoder/pause_no_port_forward_for_net_host
Kill running Pod running with -net=true if kubelet does not allow it
2015-03-26 11:03:58 -07:00
Victor Marmol d2ea1a793b Merge pull request #5982 from yifan-gu/ref_manager
kubelet: Add container reference manager.
2015-03-26 10:20:13 -07:00
Abhishek Shah 5c42070eeb Kill running Pod running with -net=true if kubelet does not allow it 2015-03-26 10:13:06 -07:00
Yifan Gu a06bc96414 kubelet: Add container reference manager.
Move the reference managing logic into container reference manager.
This enables pluggable container runtime to manage the container references.
2015-03-26 09:50:54 -07:00
gmarek 5a11748018 Move Capacity from NodeSpec to NodeStatus 2015-03-26 15:28:48 +01:00
Piotr Szczesniak 31901ed9d0 Changed PodInfo to be a list
This change is to make API consistent with our convention.

Fixes #3622
2015-03-26 10:15:25 +01:00
Victor Marmol 8183a4805e Merge pull request #5973 from ArtfulCoder/pause_no_port_forward_for_net_host
Stop port forwarding from pause in net=host mode
2015-03-25 18:13:04 -07:00
Abhishek Shah cd5ed38250 Stop port forwarding from pause in net=host mode 2015-03-25 17:55:37 -07:00
Victor Marmol b1c06eb52e Merge pull request #5969 from yujuhong/selflink
Kubelet: no need to overwrite SelfLink for pods from the apiserver
2015-03-25 16:59:56 -07:00
Yu-Ju Hong 4e909c6cee Kubelet: no need to overwrite SelfLink for pods from the apiserver
Pods from the apiserver should already have SelfLink set. There is no need to
create one ourselves.
2015-03-25 16:34:02 -07:00
Victor Marmol 9e77c3d7e5 Use default ContainerInfoRequest in Kubelet HTTP.
Fixes #5777.
2015-03-25 15:37:06 -07:00
Yu-Ju Hong 6145b3b9c4 Merge pull request #5738 from smarterclayton/cleanup_clients
Clients should not check conditions, UpdateStatus() is inconsistent
2015-03-25 13:59:47 -07:00
David Oppenheimer 76889fa3ae Merge pull request #5818 from simon3z/boot-id
nodecontroller: record node reboot event
2015-03-25 13:50:21 -07:00
Clayton Coleman b1ab14315b Clients should not check conditions, UpdateStatus() is inconsistent
Corrects some of the cargo culting that has crept into the API.
2015-03-25 16:25:04 -04:00
Yu-Ju Hong 5d628770c1 Merge pull request #5926 from vmarmol/fast-test
Reduce testing time of status_manager_test.
2015-03-25 12:52:27 -07:00
Federico Simoncelli afbf401464 nodeinfo: add boot id system information
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-25 15:06:53 -04:00
Victor Marmol 65070d6d81 Reduce testing time of status_manager_test.
Adds tests for syncBatch().
2015-03-25 11:45:06 -07:00
Victor Marmol cf7e2756b5 Add HostNetworkSources capability to limit use of HostNetwork. 2015-03-25 11:23:06 -07:00
Victor Marmol d9cd7a78f7 Allow starting a container with --net=host. 2015-03-25 11:22:03 -07:00
Victor Marmol 5eb373692b Merge pull request #5928 from yujuhong/pod_status
Kubelet: pass the acutal pod for status update
2015-03-25 10:51:32 -07:00
Victor Marmol f7135b3dd4 Merge pull request #5827 from spothanis/master
added cloud provider flag to kubelet
2015-03-25 10:50:18 -07:00
Yu-Ju Hong b4b0bc75c4 Kubelet: pass the acutal pod for status update
Pod status update should include the ObjectMeta of the pod. This change is
required for #5738 to merge.
2015-03-25 09:58:46 -07:00
Filip Grzadkowski 74da3b14b0 Delete pod_cache and rely on updating pod status by kublet. 2015-03-25 15:08:09 +01:00
Sreekanth Pothanis 1c06cde4c4 added cloud provider flag to kubelet
This is to fix issue #5667
2015-03-24 19:32:50 -07:00
Yu-Ju Hong ff3d36edc5 Fix flakey TestGetSetPods 2015-03-24 18:29:35 -07:00
Yu-Ju Hong a9c9d27fdd Merge pull request #5893 from vmarmol/remove-server
Remove unused ServerSource.
2015-03-24 18:09:32 -07:00
Victor Marmol bacd859b33 Remove unused ServerSource.
We no longer use server as a source in the Kubelet.
2015-03-24 17:47:09 -07:00
Yifan Gu e02c6994dc kubelet.container: Fix volume map type. 2015-03-24 16:08:04 -07:00
Yifan Gu 31bb11ac2a kubelet: Move pod name helpers to pkg/kubelet/container/runtime.go 2015-03-24 16:08:04 -07:00
Yifan Gu 13250c904f kubelet: Replace GetKubeletDockerContainers with GetPods in syncPod/SyncPods. 2015-03-24 16:01:38 -07:00
Yifan Gu eec6456f51 kubelet.container: Add helpers in container runtime to filter pod/containers. 2015-03-24 16:01:38 -07:00
Yifan Gu f4c3ccf639 dockertools: Introduce GetPods() for docker runtime. 2015-03-24 16:01:37 -07:00
David Oppenheimer 30c3583900 Merge pull request #5806 from ddysher/condition-rename
Rename ConditionFull->ConditionTrue, ConditionNone->ConditionFalse
2015-03-24 15:50:11 -07:00
Victor Marmol 270c850b3b Merge pull request #5826 from yujuhong/pod_manager
Kubelet: refactor pod manager
2015-03-24 15:33:54 -07:00
Yu-Ju Hong 08e4a883b6 Kubelet: refactor pod manager
This change cleans up the pod manager extensively so that
 * Mirror pods are actually stored in the pod manager.
 * Both (non-mirror) pods and mirror pods are indexed by UID and full name for
   easy lookup and mapping. This is required for the next change to send
   full pod along with the pod status update.

This change also renames mirrorManager as mirrorClient since it is merely a
client to contact the API server and create/delete mirror pods.
2015-03-24 15:10:26 -07:00
Deyuan Deng ca68f4a9d1 Rename ConditionFull->ConditionTrue, ConditionNone->ConditionFalse 2015-03-24 17:28:59 -04:00
David Oppenheimer c1730989cb Merge pull request #5870 from dchen1107/podstatus
Fix a bug of running node selector predicate on kubelet introduced by #5...
2015-03-24 14:05:27 -07:00
David Oppenheimer 3f57378972 Merge pull request #5399 from ddysher/nc-keep-sync
Node controller monitor node status
2015-03-24 13:30:06 -07:00
Dawn Chen e2e1d9e943 Fix a bug of running node selector predicate on kubelet introduced by #5715.
part of #5207, and fixed #5810
2015-03-24 13:13:25 -07:00
Deyuan Deng c5675b8924 Use fake time in nodecontroller unittest; rename receiver 's' to 'nc' 2015-03-24 14:23:48 -04:00
Deyuan Deng b51d491f05 Delete all pods based on condition transition time. 2015-03-24 14:23:48 -04:00
Deyuan Deng cf548765c9 Change kubelet update frequency to 2s, and make it a constant. 2015-03-24 14:23:48 -04:00
markturansky 2fd82f60f4 Move escape function to util and clarify name 2015-03-24 13:52:31 -04:00
Filip Grzadkowski 632ca506ce * Update pod status only when it changes.
* Refactor syncing logic into a separate struct
2015-03-24 16:41:00 +01:00
Victor Marmol 07f928be64 Cap container hostname length to 63 chars.
Fixes #5829.
2015-03-23 19:36:45 -07:00
Yu-Ju Hong f440989017 Kubelet: add podManager for managing internal pod storage
This change moves pod array and mirrorPods into podManager, along with all
methods accessing these internal pod storages. This is the first step of the
refactoring, and no function change is involved.
2015-03-23 15:11:10 -07:00
Clayton Coleman d020ca00b8 Pass hostname to all kubelet config sources instead of os.Hostname()
Make applyDefaults be tied to the current config source.
2015-03-23 15:58:45 -04:00
Clayton Coleman b442f76961 Syntax errors in file_test were added right as validation became more strict 2015-03-23 14:43:09 -04:00
Saad Ali e8f70428fb Merge pull request #5715 from jszczepkowski/kubelet-nodesel
Running node selector predicate on kubelet.
2015-03-23 11:06:00 -07:00
Victor Marmol adac4328e8 Merge pull request #5713 from AAzza/kubelet_build_parse_dockername
Refactor build/parse DockerName from Kubelet. #3511
2015-03-23 08:45:53 -07:00
Victor Marmol 4e3c07543e Merge pull request #5784 from wojtek-t/applyDefaultsInTryDecode
Hide applyDefaults method under pkg/kubelet/config
2015-03-23 07:32:00 -07:00
Wojciech Tyczynski b395c40e19 Refactor pkg/kubelet/config 2015-03-23 10:29:46 +01:00
Jerzy Szczepkowski 34a8a3a844 Running node selector predicate on kubelet.
Added checking on kubelet if scheduled pods have matching node selector. This is the last step to fix #5207.
2015-03-23 08:21:58 +01:00
Clayton Coleman 65425f690c Move field errors to pkg/util/fielderrors
Allows pkg/api to take a reference to labels.Selector and fields.Selector
2015-03-22 17:43:34 -04:00
Nataliia Uvarova 73c2338320 Refactor build/parse dockername. #3511
Functions Build/ParseDockerName now work with struct instead of the long
list of arguments. This new struct also was reused in the kubelet.go
instead of auxilary podContainer struct.
2015-03-21 09:09:03 +01:00
Victor Marmol 4d2e7981bb Merge pull request #5730 from yujuhong/static_stats
Kubelet: support retrieving stats using UID of mirror pods
2015-03-20 17:05:23 -07:00
Yu-Ju Hong f3f3c8f151 Fix volume imports 2015-03-20 16:22:35 -07:00
Yifan Gu 3b4685ef6c kubelet.runtime: update the import path for volume. 2015-03-20 16:16:27 -07:00
Yu-Ju Hong 15e9760bd4 Kubelet: support retrieving stats using UID of mirror pod
Kubelet supports retrieving stats for pods/containers with and without UID.
This does not always work for the static pods because users may get the UIDs of
the mirror pods from the API server, and use them to query Kubelet. In this
case, Kubelet would fail to locate the containers due to mismatched UIDs.

This change adds a intenral mirror to static pod UID mapping and teaches all
public-facing functions to perform UID lookup before proceeding. This allows
users to use either mirror or static pod's UID to retrieve stats.
2015-03-20 15:40:49 -07:00
Vish Kannan f118ca8fb4 Merge pull request #5642 from thockin/volume_multi_plugins
Prep for multiple kinds of volume plugins
2015-03-20 15:12:30 -07:00
Dawn Chen fbd362d3c7 Merge pull request #5572 from yifan-gu/rkt_support
Add container runtime
2015-03-20 14:38:48 -07:00
Yu-Ju Hong 0206115703 Merge pull request #5697 from vmarmol/doc
Correct documentation about stats arguments.
2015-03-20 14:22:33 -07:00
Victor Marmol 5cfe0c04f8 Merge pull request #5705 from wojtek-t/refactor_file_test
Refactor pkg/kubelet/config/file_test.go
2015-03-20 14:08:06 -07:00
Tim Hockin bfadae77e0 Promote volume plugins, prep for persistent vols
Move pkg/kubelet/volume/... to pkg/volume/...
Some renames to make the soon-to-come persistent volumes work clearer.
2015-03-20 13:49:40 -07:00
Yifan Gu 487d34e409 kubelet: add container runtime cache and fake runtime. 2015-03-20 13:15:20 -07:00
Yifan Gu 319d537cf9 kubelet: add container runtime interface. 2015-03-20 13:15:20 -07:00
Wojciech Tyczynski 9c4ef28b2d Comments 2015-03-20 20:13:16 +01:00
Wojciech Tyczynski 3b367f8ab8 Refactor file_test.go 2015-03-20 20:13:16 +01:00
Abhishek Gupta b0c23c1046 Headless Services: Adding option to specify None for PortalIP 2015-03-20 12:10:03 -07:00
Victor Marmol c5f73516b6 Merge pull request #5704 from wojtek-t/kubelet_file_read_pod
Kubelet read pods from file
2015-03-20 10:00:49 -07:00
Victor Marmol e94c5c3fa9 Merge pull request #5677 from smarterclayton/remove_healthz_global
Remove global map from healthz
2015-03-20 08:32:39 -07:00
Wojciech Tyczynski 7a7e64331c Kubelet file read both ContainerManifest and Pod 2015-03-20 12:09:09 +01:00
Wojciech Tyczynski c5d8c391fb Refactor kubelet/config to share code 2015-03-20 09:40:52 +01:00
Victor Marmol fc8f4411ef Correct documentation about stats arguments. 2015-03-19 22:11:04 -07:00
Clayton Coleman 84ab8f7254 Reduce probe logging level
Too chatty for normal operation
2015-03-19 23:06:21 -04:00
Yu-Ju Hong 0d0fb5f07b Kubelet: per-pod workers should avoid grabbing the pod array lock
Per-pod worker syncs the pod and container status, and write the pod status in
the pod status cache. Given that it already owns a copy of the pod, it can
bypass the additional pod lookup step completely. This change adds a new
generatePodStatusByPod() method to achieve this. In general, per-pod worker
should avoid accessing the internal pod array completely, as this would may
lead to high contention.

This change also changes the return type of GetPodByFullName to reflect the
name, and consolidates GetPodByFullName() and GetPodByName().
2015-03-19 18:25:41 -07:00
Clayton Coleman 015bc3b7bd Remove global map from healthz
It currently is impossible to use two healthz handlers on different
ports in the same process.  This removes the global variables in favor
of requiring the consumer to specify all health checks up front.
2015-03-19 19:49:44 -04:00
Tim Hockin 1cbde2c5c7 Merge pull request #5664 from calfonso/nfs_mount_plugin
Addresses cross compile for syscall.Unmount by delegating to Mount.
2015-03-19 16:19:01 -07:00
Tim Hockin 4ee6eb8c73 Make net plugins build on non-unix 2015-03-19 16:15:33 -07:00
CJ Cullen 7ddcecfd1c Revert "Revert "[WIP] southbound networking hooks in kubelet"" 2015-03-19 16:14:13 -07:00
Zach Loafman b5d1e538df Revert "[WIP] southbound networking hooks in kubelet" 2015-03-19 16:08:08 -07:00
Rajat Chopra 7857aa7751 kubelet networking plugin 2015-03-19 14:15:52 -07:00
Chris Alfonso 9d0c9e7dc3 Addresses cross compile for syscall.Unmount by delegating to Mount. 2015-03-19 16:46:14 -04:00
Jerzy Szczepkowski c0ff504ad3 Merge pull request #5501 from jszczepkowski/kubelet-spechost
Running resource predicate on kubelet.
2015-03-19 21:34:27 +01:00
Victor Marmol 6f6485909e Merge pull request #5598 from wojtek-t/kubelet_http_read_pod
Kubelet read pods from http
2015-03-19 11:49:28 -07:00
Tim Hockin 9bc2b0c2db Merge pull request #4601 from calfonso/nfs_mount_plugin
NFSMount storage plugin for kubelet.
2015-03-19 11:19:12 -07:00
Wojciech Tyczynski c512c549a1 Kubelet http read both ContainerManifest and Pod 2015-03-19 18:57:00 +01:00
Dawn Chen 4910be6dcb Remove PodIP from ContainerStatus 2015-03-19 10:42:01 -07:00
Chris Alfonso 1a45e37d17 NFSMount storage plugin for kubelet.
* If you want to test this out when an actual NFS export a good place
 to start is by running the NFS server in a container:

docker run -d --name nfs --privileged cpuguy83/nfs-server /tmp

More detail can be found here:
https://github.com/cpuguy83/docker-nfs-server
2015-03-19 13:37:38 -04:00
Filip Grzadkowski f89f91b7bd Validate that there is at least one container in the pod 2015-03-19 12:31:53 +01:00
Jerzy Szczepkowski 5845f6ad48 Running resource predicate on kubelet.
Added checking on kubelet if scheduled pods do not exceed resources. Related to #5207.
2015-03-19 10:40:10 +01:00
Yu-Ju Hong 187cbcfabf Merge pull request #5627 from vmarmol/fix-test
Fix data race in imageManager test.
2015-03-18 18:24:18 -07:00
Yu-Ju Hong 05c61d2e47 Merge pull request #5622 from vmarmol/http
Add SelfLink to Kubelet http source.
2015-03-18 18:09:05 -07:00
Victor Marmol 6db6e41a34 Merge pull request #5632 from yujuhong/manifest
kubelet/config/http_test: use versioned ContainerManifest
2015-03-18 17:58:19 -07:00
Yu-Ju Hong 7b71780dfc kubelet/config/http_test: use versioned ContainerManifest 2015-03-18 17:40:40 -07:00
Dawn Chen 52e1ee9d5b Merge pull request #5619 from vmarmol/rate
Spread out pod status updates to apiserver.
2015-03-18 17:26:02 -07:00
Victor Marmol 3a3b950009 Fix data race in imageManager test.
The background monitoring thread was using the DockerClient before we
had written our fake data. This commit stops the background thread from
running during tests.

Fixes #5611.
2015-03-18 17:02:03 -07:00
Victor Marmol ce96182cc3 Add SelfLink to Kubelet http source. 2015-03-18 16:38:41 -07:00
Victor Marmol cda4b6c598 Spread out pod status updates to apiserver.
Lowers pod status interval to every 2m and spreads updates within that
time window.
2015-03-18 15:43:07 -07:00
Yifan Gu 027f6854d0 kubelet: Remove docker container in prober's interface
Also change
kubelet.docketIDToRef[dockertools.DockerID]*api.ObjectReference{} to
kubelet.containerIDToRef[string]*api.ObjectReference{}.
2015-03-18 14:28:27 -07:00
Yu-Ju Hong 6e8a8b741a Kubelet: simplify the lock acquring pattern
Avoid holding both podStatusesLock and podLock at the same time.
2015-03-18 11:45:29 -07:00
Victor Marmol 9586b39bb7 Merge pull request #5555 from fgrzadkowski/sync_pod_status
Periodically update pod status from kubelet.
2015-03-18 10:14:07 -07:00
Dawn Chen f746123438 Merge pull request #5580 from ncdc/docker-ParseRepositoryTag
Use docker's ParseRepositoryTag when pulling
2015-03-18 08:55:56 -07:00
Dawn Chen 9e781bc57d Merge pull request #5569 from vmarmol/image-gc
Garbage collecting images in the Kubelet.
2015-03-18 08:55:08 -07:00
Filip Grzadkowski 1a352b74ba Periodically update pod status from kubelet. 2015-03-18 12:11:39 +01:00
Victor Marmol d78ecf820e Garbage collecting images in the Kubelet.
Integrated the imageManager into the Kubelet and applies the garbage
collection policy every 5 minutes. The default policy allows up to 90%
disk usage, after which images are garbage collected to bring limit back
down to 80%.

Fixes #157.
2015-03-17 17:56:02 -07:00
Andy Goldstein 7b07960758 Use docker's ParseRepositoryTag when pulling 2015-03-17 20:15:13 -04:00
Yu-Ju Hong b84de4e986 Merge pull request #5571 from vmarmol/fix
Adding errors to Kubelet events.
2015-03-17 16:14:58 -07:00
Dawn Chen cbe4a1a679 Merge pull request #5510 from vmarmol/gc
Introduce and implement container GC policy
2015-03-17 16:02:17 -07:00
Victor Marmol 0c664a343c Adding errors to Kubelet events.
This will help while debugging issues that generate events.

Also removed unecessary log line.
2015-03-17 15:55:25 -07:00
Zach Loafman 5496686f33 Revert "Use docker's ParseRepositoryTag when pulling" 2015-03-17 15:16:33 -07:00
Salvatore Dario Minonne 31ddefc347 Finalize fields.Selector 2015-03-17 22:55:43 +01:00
Dawn Chen 2a5610dbcb Merge pull request #5558 from ncdc/docker-ParseRepositoryTag
Use docker's ParseRepositoryTag when pulling
2015-03-17 12:56:22 -07:00
Victor Marmol d1ed571e28 Use containerGC in the Kubelet.
New policy default is 100 containers max.

Fixes #5457.
2015-03-17 10:50:32 -07:00
Victor Marmol 4c17c09a8f Separate GC policy into containerGC struct.
The policy today takes a min GC age, max dead containers per pod, and
max containers overall. When GC is called, only dead containers created
more than min GC age ago are considered. The policy tries to keep one
dead instance of every pod's containers.
2015-03-17 10:50:06 -07:00
Dawn Chen 5a04bf6316 Merge pull request #5512 from vmarmol/igc
Introduce and implement image GC policy
2015-03-17 10:36:22 -07:00
Andy Goldstein c08f41c18b Use docker's ParseRepositoryTag when pulling 2015-03-17 13:23:17 -04:00
Victor Marmol 6bcbf12a3d Add image garbage collection policy to imageManager. 2015-03-17 09:19:04 -07:00
Victor Marmol 303a1f7ea1 Adding cAdvisor API to get image usage information. 2015-03-17 09:17:38 -07:00
Yu-Ju Hong 929fb63b33 Sync static pods from Kubelet to the API server
Currently, API server is not aware of the static pods (manifests from
sources other than the API server, e.g. file and http) at all. This is
inconvenient since users cannot check the static pods through kubectl.
It is also sub-optimal because scheduler is unaware of the resource
consumption by these static pods on the node.

This change syncs the information back to the API server by creating a
mirror pod via API server for each static pod.

 - Kubelet creates containers for the static pod, as it would do
   normally.

 - If a mirror pod gets deleted, Kubelet will re-create one. The
   containers are sync'd to the static pods, so they will not be
   affected.

 - If a static pod gets removed from the source (e.g. manifest file
   removed from the directory), the orphaned mirror pod will be deleted.

Note that because events are associated with UID, and the mirror pod has
a different UID than the original static pod, the events will not be
shown for the mirror pod when running `kubectl describe pod
<mirror_pod>`.
2015-03-17 08:45:56 -07:00
Filip Grzadkowski 18b728ff44 Revert "Periodically update pod status from kubelet." 2015-03-17 13:51:45 +01:00
Victor Marmol 009737e69e Merge pull request #5205 from fgrzadkowski/sync_pod_status
Periodically update pod status from kubelet.
2015-03-16 17:04:31 -07:00
Tim Hockin b42652cd3d Retool mount detection for tests 2015-03-16 16:17:47 -07:00
Filip Grzadkowski 336525a27d Periodically update pod status from kubelet. 2015-03-16 23:03:03 +01:00
Tim Hockin 1725c23eb2 Implement volume plugin wrappers
Convert git_repo and secret into wrappers around empty_dir.
2015-03-16 14:07:58 -07:00
Victor Marmol bdc1981eb5 Merge pull request #5433 from wojtek-t/remove_bound_pods
Remove BoundPods from Kubelet
2015-03-16 13:38:24 -07:00
Wojciech Tyczynski 5d95e9e671 Remove BoundPods from Kubelet 2015-03-16 19:17:21 +01:00
Jeff Lowdermilk e37fd2a84d Merge pull request #5477 from dchen1107/clean
Convert RestartPolicy to string for v1beta3.
2015-03-16 10:23:52 -07:00
Dawn Chen 34e9c82c70 Convert RestartPolicy to string for v1beta3.
Fixed #3607 and spiritually support #5475
2015-03-13 18:38:07 -07:00
Victor Marmol dc96ea6300 Run cAdvisor inside the Kubelet.
cAdvisor is started as a Kubelet dependency during startup of the
Kubelet before the sync loops start.
2015-03-13 16:06:02 -07:00
Victor Marmol b00e82ed93 Merge pull request #5466 from dchen1107/docker
Fix a regression introduced lately: When any given PodInfraContainer on ...
2015-03-13 16:04:01 -07:00
Satnam Singh ce7658a302 Merge pull request #5445 from vmarmol/unused
Remove unused handleUpdate() in Kubelet.
2015-03-13 16:00:17 -07:00
Dawn Chen 732d4cb2b9 Fix a regression introduced lately: When any given PodInfraContainer on a node
is killed, kubelet kills all remaining containers no matter which pod that
container belongs to.

Fixed #5373
2015-03-13 15:46:30 -07:00
Dawn Chen 0cc2b62b4a Merge pull request #5265 from ddysher/kubelet-post-status
kubelet post node status to master
2015-03-13 15:29:22 -07:00
Tim Hockin caca5e7358 Add tmpfs support to EmptyDir
# *** ERROR: *** docs are out of sync between cli and markdown
# run hack/run-gendocs.sh > docs/kubectl.md to regenerate

#
# Your commit will be aborted unless you regenerate docs.
    COMMIT_BLOCKED_ON_GENDOCS
2015-03-13 13:36:13 -07:00
Vish Kannan 13253d09e1 Merge pull request #5444 from vmarmol/lock
Lock access and update to Kubelet pods.
2015-03-13 11:06:50 -07:00
Victor Marmol 04233cdb88 Remove unused handleUpdate() in Kubelet. 2015-03-13 10:35:50 -07:00
Victor Marmol 0e485310cf Lock access and update to Kubelet pods. 2015-03-13 10:31:26 -07:00
gmarek 3489d1ae01 Refactor kubelet syncPod method 2015-03-13 18:22:42 +01:00
Victor Marmol 4675fcc57d Make ParseDockerName() return an error.
This forces callers to handle cases where the container name could not
be parsed.
2015-03-12 16:33:16 -07:00
Dawn Chen ee4e887183 Merge pull request #5395 from vmarmol/fix
Garbage collect unidentified Kubernetes containers.
2015-03-12 12:58:22 -07:00
Victor Marmol 51122998e3 Garbage collect unidentified Kubernetes containers.
These containers may be caused by a change in the Kubernetes naming
convention. The old containers are killed, the new ones started, but the
old ones are never GC'd. This change makes Kubelet GC all Kubernetes
containers, old and new.

Fixes #5372.
2015-03-12 11:40:35 -07:00
Brian Grant 19b6c85fa5 Merge pull request #5363 from wojtek-t/no_bound_pods_in_scheduler
Make scheduler to watch PodSpec.Host instead Status.Host
2015-03-12 10:57:03 -07:00
Victor Marmol 2939abb6cb Merge pull request #5383 from wojtek-t/kubelet_test
Speedup pkg/kubelet/runonce_test.go
2015-03-12 10:22:03 -07:00
Victor Marmol f9d2ab6e48 Use time.Sleep() instead of <-time.After(). 2015-03-12 09:25:09 -07:00
Wojciech Tyczynski dca3db0a50 Speedup pkg/kubelet/runonce_test.go 2015-03-12 17:12:04 +01:00
Timothy St. Clair 308bb84cf3 Minor cleanup for etcd cleaning from kubelet 2015-03-12 09:39:22 -05:00
Wojciech Tyczynski 9f2f10d6db Make scheduler to watch PodSpec.Host instead Status.Host 2015-03-12 13:38:58 +01:00
Eric Tune ae9bc28f8b Remove mentions of etcd in kubelet. 2015-03-11 16:40:20 -07:00
Eric Tune ac7bf05079 Kubelet has not even heard of etcd. 2015-03-11 16:29:31 -07:00
Brendan Burns b53b2e1de0 Add and extend timeouts. 2015-03-11 14:12:46 -07:00
Dawn Chen 88e0b04916 Merge pull request #5287 from ncdc/master
Remove debugging log message from ExecInContainer
2015-03-11 09:45:37 -07:00
Wojciech Tyczynski 0ffd607c79 PodWorkers test. 2015-03-11 16:58:22 +01:00
Wojciech Tyczynski 80576dfed3 Change PodWorkers to have desired cache. 2015-03-11 16:38:31 +01:00
Andy Goldstein 0c798bbe52 Remove debugging log message from ExecInContainer 2015-03-11 10:07:14 -04:00
Deyuan Deng 9982aaa960 kubelet post node status to master 2015-03-10 23:17:36 -04:00
Brian Grant 9aa744925e Merge pull request #5030 from simon3z/nodeinfo
Add support for fetching node collected information
2015-03-10 14:05:41 -07:00
Paul Morie a486ab078f Fix selfLink issues in integration test 2015-03-10 14:40:16 -04:00
markturansky c7e619d4a0 Change volume.NewBuild arg from podUID to ObjectReference 2015-03-10 14:40:16 -04:00
Brian Grant 186f17737e Merge pull request #5252 from erictune/remove_etcd_flags
Remove --etcd_servers flag from kubelet and proxy.
2015-03-10 11:06:12 -07:00
Dawn Chen 106e38ebb3 Merge pull request #5213 from yifan-gu/clean_syncPod
Refactor pkg/kubelet/kubelet.go: shouldContainerBeRestarted().
2015-03-10 09:44:32 -07:00
Brian Grant 6062e14313 Merge pull request #5220 from nikhiljindal/camelCaseFieldSelectors
Changing v1beta3 field selectors to be camelCased
2015-03-10 09:35:03 -07:00
Eric Tune 2ca265ae3b Remove --etcd_servers flag from kubelet and proxy.
All the distros that use this have been updated,
or have PRs out to update them, or owners
have been asked to fix RPMs.

Removing this prevents further use of this model.

Remove now dead code: EtcdClientOrDie

Remove now dead pkg/proxy/config/etcd.go.

Remove unused imports.
2015-03-10 09:29:09 -07:00
Federico Simoncelli 644d775bc1 kubelet: retport system info in node information
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-10 10:11:02 -04:00
Federico Simoncelli 1b18440f35 kubelet: add GetNodeInfo implementation
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-03-10 10:11:01 -04:00
Mike Danese c1b1f29bdc migrate healthz in pkg/kubelet/server.go to custom health checks 2015-03-09 19:26:07 -07:00
nikhiljindal 916ca9cc68 Changing v1beta3 field selectors to be camelCased 2015-03-09 18:01:01 -07:00
Yifan Gu 241ef34fba Refactor pkg/kubelet/kubelet.go: shouldContainerBeRestarted().
Simplify the function signature.
2015-03-09 17:42:57 -07:00
Victor Marmol e187be9fe1 Merge pull request #5143 from vmarmol/cadvisor-pkg
Refactoring Kubelet's cAdvisor interface into a package.
2015-03-09 11:36:03 -07:00
Victor Marmol ab3c9de34b Refactoring cAdvisor interface into a package.
This will make it easier to start running the real cAdvisor alongside
Kubelet. This change is primarily no-op refactoring. The main behavioral
change is that we always create a cAdvisor interface and expect it to
always be available. When we make a request, if cAdvisor is not
connected the request fails with a connection error. This failure is
handled today as well.
2015-03-09 11:19:05 -07:00
Rohit Jnagal 77546692a7 Merge pull request #5187 from vmarmol/wait-docker
Kubelet: wait up to 5m for Docker to come up.
2015-03-09 10:09:09 -07:00
Victor Marmol ca84aae454 Kubelet: wait up to 5m for Docker to come up.
The Kubelet assumes Docker is running during its execution and on
machine boot it is a race between Docker coming up and Kubelet calling
Docker. This PR waits for Docker to be up before the Kubelet begins
doing useful work. On timeout, Kubelet exits and expects to be
restarted.
2015-03-09 09:50:34 -07:00
Clayton Coleman 0f87337667 Kubelet tests broken on Macs with uppercase names
Hostname behavior across operating systems is inconsistent (Macs can
have uppercase host names, so can some other systems).  In general,
always strings.ToLower(os.Hostname()).
2015-03-08 23:44:32 -04:00
Vish Kannan 53ec66caf4 Merge pull request #5152 from vmarmol/cadvisor-dep
Rename cAdvisor info API to cadvisorApi
2015-03-06 18:09:28 -08:00
Victor Marmol 1866adddd3 Merge pull request #5157 from yifan-gu/clean_prober
Adjust prober's logging verbose.
2015-03-06 18:04:12 -08:00
Yifan Gu da5d7c7814 Adjust prober's logging. 2015-03-06 17:30:29 -08:00
Victor Marmol 798513844c Merge pull request #5148 from yifan-gu/clean_prober
Refactor pkg/kubelet/kubelet.go: probeContainer().
2015-03-06 17:04:57 -08:00
Yifan Gu 276fb1731c Refactor pkg/kubelet/kubelet.go: probeContainer().
Put the retry loop in probe.go into a function.
2015-03-06 16:57:20 -08:00
Yifan Gu 131e8a0e35 Refactor pkg/kubelet/kubelet.go: probeContainer().
Update the probe_test.go.
2015-03-06 16:38:09 -08:00
Yifan Gu 09af0cd3b5 Refactor pkg/kubelet/kubelet.go: probeContainer().
Split the function into probeContainerLiveness() and probeContainerReadiness().
2015-03-06 16:37:58 -08:00
Victor Marmol 43b469bd9f Rename cAdvisor info API to cadvisorApi 2015-03-06 16:06:38 -08:00
Dawn Chen 9439c0f3bd Merge pull request #5103 from yujuhong/naming
kubelet: revamp the pod/container naming scheme
2015-03-06 15:58:58 -08:00
Victor Marmol a35f4374c5 Update cAdvisor ContainerInfo references to v1 API.
The cAdvisor data structures were versioned recently. We use the v1
versions so this commit makes that explicit.
2015-03-06 15:42:06 -08:00
Yu-Ju Hong fe70be9261 kubelet: revamp the pod/container naming scheme
There are two main goals for this change.

 1. Fix the naming scheme in kubelet so that it accepts DNS subdomain
    name/namespaces correctly (#4920). The design is discussed in #3453.

 2. Prepare for syncing the static pods back to the apiserver(#4090). This
    includes

  - Eliminate the source component in the internal full pod name (#4922). Pods
    no longer need sources as they will all be sync'd via apiserver.

  - Changing the naming scheme for the static (file-, http-, and etcd-based)
    pods such that they are distinguishable when syncing back to the apiserver.

The changes includes:
  *	name = <pod.Name>-<hostname>
  * namespace = <cluster_namespace> (i.e. "default" for now).
  * container_name = k8s_<contianer_name>.<hash_of_container>_<pod_name>_<namespace>_<uid>_<random>

Note that this is not backward-compatible, meaning the kubelet won't recognize
existing running containers using the old naming scheme.
2015-03-06 13:14:45 -08:00
Yu-Ju Hong 32fd331e73 Revert "Split up kubelet "source seen" logic"
We want to sync pods from file/http/etcd sources to the apiserver, hence
differentiating sources is no longer desired.

This reverts commit 110ab6f1bd.
2015-03-06 12:57:48 -08:00
Deyuan Deng 50de1a80c2 kubelet should take a client interface 2015-03-06 15:01:55 -05:00
Dawn Chen 2d0743b143 Merge pull request #5019 from yujuhong/reject_pods
kubelet: reject pods on host port conflict
2015-03-06 11:42:04 -08:00
Dawn Chen 3835e0e6e6 Merge pull request #4943 from vmarmol/image-manager
Implementing ImageManager to take over image lifecycle.
2015-03-06 11:09:38 -08:00
Victor Marmol 4f3f073f3c Implementing ImageManager to take over image lifecycle.
All images are tracked, when they were created and when they were last
used. FreeSpace() evicts these images in least recently used order,
breaking ties with oldest first.
2015-03-06 10:48:28 -08:00
Yu-Ju Hong 3ccdb8db98 kubelet: reject pods on host port conflict
When a host port conflict is detected, kubelet should set the pod status to
fail. The failed status will then be polled by other components at a later time,
which allows replication controller to create a new pod if necessary.

To achieve this, this change stores the pod status information in a status map
upon the detecton of port conflict. GetPodStatus() consults this status map
before attempting to query docker. The entries in the status map will be removed
when the pod is no longer associated with the node.
2015-03-06 10:46:49 -08:00
gmarek 4a01a4dbf5 Refactor Kubelets syncPod function by wrapping some functionalities into functions 2015-03-06 18:32:11 +01:00
Brendan Burns d4755704b1 Merge pull request #5104 from liggitt/secure_kubelet
Plumb tls and cert options into kubelet start
2015-03-06 15:32:23 +01:00
Dawn Chen 54b2b47caa Merge pull request #4756 from vishh/kubelet
Relax constraints on container status while fetching container logs
2015-03-05 21:49:48 -08:00
Victor Marmol 79f2773745 Merge pull request #5120 from dchen1107/docker
monit health check kubelet and restart unhealthy one
2015-03-05 17:39:03 -08:00
Dawn Chen 7a47ea8913 Ask monit health check kubelet; if failed, restart. 2015-03-05 17:29:38 -08:00
Dawn Chen 43b4f41202 Allow /healthz check from localhost 2015-03-05 17:27:56 -08:00
Victor Marmol b314dc6025 Merge pull request #5032 from yifan-gu/clean_syncPod
Refactor pkg/kubelet/kubelet.go: syncPod().
2015-03-05 17:24:20 -08:00
Yifan Gu ed1823e276 Refactor pkg/kubelet/kubelet.go: syncPod().
Makes the syncPod() takes only the containers that belongs to the pod.
2015-03-05 16:40:50 -08:00
Victor Marmol 33e6c3ebb3 DockerCache doesn't get containers at startup.
Fixes #5092.
2015-03-05 16:25:13 -08:00