Yu-Ju Hong
c075719f05
Kubelet: fix the runtime cache to not cache the stale pods
...
If a pod worker sees stale pods from the runtime cache which were retrieved
before their last sync finished, it may think that the pod were not started
correctly, and attemp to fix that by killing/restarting containers.
There are two issues that may cause runtime cache to store stale pods:
1. The timstamp is recorded *after* getting the pods from the container
runtime. This may lead the consumer to think the pods are newer than they
actually are.
2. The cache updates are triggered by many goroutines (pod workers, and the
updating thread). There is no mechanism to enforece that the cache would
only be updated to newer pods.
This change fixes the above two issues by making sure one always record the
timestamp before getting pods from the container runtime, and updates the
cached pods only if the timestamp is newer.
2015-05-05 18:28:38 -07:00
Victor Marmol
b0129089da
Merge pull request #7712 from rjnagal/kubelet
...
Expose pod name as a label on containers.
2015-05-04 14:52:16 -07:00
Rohit Jnagal
1511dbf0b5
Expose pod name as a label on containers.
...
Full pod name is exposed under key 'kubernetes.io/pod'.
It helps in introspection by looking at all containers in a pod through
docker ps -a -f label=kubernetes.io/pod=podXXX
We also plan to visualize this in cAdvisor.
2015-05-04 21:20:42 +00:00
Victor Marmol
ba7e940a57
Make rkt implement the container Runtime
2015-05-04 11:16:33 -07:00
Victor Marmol
e44d9df0f4
Changes to rkt's PortForward to match Runtime API.
2015-05-04 11:16:33 -07:00
Victor Marmol
79fc8bee34
Change GetContainerLogs() signature.
...
This works for both runtimes. We need to eventually unify the ID scheme
for this method.
2015-05-04 11:16:32 -07:00
Victor Marmol
60a77221f5
Add dummy ListImages and RemoveImage to rkt runtime.
2015-05-04 11:14:54 -07:00
Victor Marmol
2ad933e124
Merge pull request #7674 from yujuhong/enable_runtime
...
Kubelet: replace DockerManager with the Runtime interface
2015-05-04 11:10:20 -07:00
Yu-Ju Hong
1ad4dd7803
Kubelet: replace DockerManager with the Runtime interface
...
This change instructs kubelet to switch to using the Runtime interface. In order
to do it, the change moves the Prober instantiation to DockerManager.
Note that most of the tests in kubelet_test.go needs to be migrated to
dockertools. For now, we use type assertion to convert the Runtime interface to
DockerManager in most tests.
2015-05-04 10:19:46 -07:00
Paul Morie
b538642464
Inject mounter into volume plugins
2015-05-04 11:28:57 -04:00
Daniel Smith
4a6ab7fd36
Merge pull request #7597 from eparis/copyright
...
Use generic copyright holder name in license boilerplate
2015-05-01 17:01:39 -07:00
Victor Marmol
c5a86387a4
Merge pull request #7657 from yujuhong/docker_runtime
...
Removes RunPod in the Runtime interface
2015-05-01 16:09:44 -07:00
Yu-Ju Hong
ae1b24f07f
Merge pull request #7652 from vmarmol/runtime-switch
...
Kubelet: Add container runtime option.
2015-05-01 14:50:30 -07:00
Eric Paris
6b3a6e6b98
Make copyright ownership statement generic
...
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Yu-Ju Hong
4fe3366b04
Removes RunPod in the Runtime interface
...
SyncPod subsumes RunPod, so the latter is no longer needed.
After this change, DockerManager implements the Runtime interface.
2015-05-01 14:47:04 -07:00
Victor Marmol
d9d61c3511
Kubelet: Add container runtime option.
2015-05-01 14:26:54 -07:00
Yifan Gu
1b77615deb
kubelet/rkt: Add SyncPod() to rkt.
2015-05-01 13:02:05 -07:00
Victor Marmol
3b9eba2c1b
Add SyncPod() to DockerManager and use in Kubelet.
...
This allows us to abstract away the logic of syncing a pod by the
runtime. It will allow other runtimes to perform their own sync as well.
2015-05-01 11:03:08 -07:00
Victor Marmol
bb8ee5b0db
Add lifecycle tests from kubelet_test to lifecycle.
2015-05-01 11:02:10 -07:00
Victor Marmol
7a737892f5
Extract out interface for GetPods().
...
This will remove the circular import with dockertools for
DockerManager. Eventually, this will be Runtime.
2015-05-01 11:02:10 -07:00
Vish Kannan
cadfde0bd1
Merge pull request #7277 from guenter/cgroup-parent
...
Add --cgroup_parent flag to Kubelet to set the parent cgroup for pods
2015-05-01 10:24:58 -07:00
Yu-Ju Hong
f74fab4e56
Merge pull request #7603 from vmarmol/runtime-syncpod-api
...
Add SyncPod() and remove Kill/Run InContainer().
2015-05-01 09:41:50 -07:00
Victor Marmol
6316b485ad
Add SyncPod() and remove Kill/Run InContainer().
...
SyncPod allows us to abstract away how a pod is started and updated. It
also simplifies what the runtime has to implement.
2015-05-01 00:32:29 -07:00
Yifan Gu
3751ecc766
kubelet/container: Move ShouldContainerBeRestarted() to runtime.
2015-04-30 22:55:25 -07:00
Yifan Gu
428652bdc7
kubelet/rkt: Add KillPod() and GetPodStatus() for rkt.
2015-04-30 18:32:32 -07:00
Victor Marmol
03b5c32576
Merge pull request #7553 from yifan-gu/rkt_runner
...
kubelet/rkt: Add RunInContainer()/ExecInContainer()/PortForward().
2015-04-30 18:31:08 -07:00
Yifan Gu
9ce568a142
kubelet/rkt: Add GetPods() for rkt.
2015-04-30 18:00:18 -07:00
Yifan Gu
1636fd2e1c
kubelet/rkt: Add RunPod() for rkt.
2015-04-30 17:31:35 -07:00
Yifan Gu
2e4be0bcf1
kubelet/rkt: Add RunInContainer()/ExecInContainer()/PortForward().
2015-04-30 17:25:16 -07:00
Victor Marmol
262c34e7db
Merge pull request #7543 from yifan-gu/pod_manifest
...
kubelet/rkt: Add routines for converting kubelet pod to rkt pod.
2015-04-30 17:18:19 -07:00
Victor Marmol
3235799595
Merge pull request #7601 from yujuhong/kill_container
...
Add KillContainerInPod in DockerManager
2015-04-30 17:05:00 -07:00
Victor Marmol
df8490f52f
Merge pull request #7555 from yifan-gu/rkt_pod_info
...
kubelet/rkt: Add podInfo.
2015-04-30 17:04:51 -07:00
Yu-Ju Hong
b37f23f1eb
Add KillContainerInPod in DockerManager
...
This changes adds one of the functions that DockerManager needs to implement
the Runtime interface.
2015-04-30 16:23:39 -07:00
Victor Marmol
441a4e6f30
Merge pull request #7578 from yujuhong/docker_manager
...
Add image-related methods to DockerManager
2015-04-30 16:16:39 -07:00
Victor Marmol
a94aeb27fa
Merge pull request #7586 from yujuhong/container_info
...
Remove more docker references in kubelet
2015-04-30 16:16:23 -07:00
Yifan Gu
7e8afc7c96
kubelet/rkt: Add routines for converting kubelet pod to rkt pod.
2015-04-30 15:24:47 -07:00
Victor Marmol
0e89d65563
Merge pull request #7545 from yifan-gu/getlog
...
Getlog
2015-04-30 15:15:44 -07:00
Victor Marmol
57cc1218ca
Merge pull request #7549 from yifan-gu/rkt_gc
...
Rkt gc
2015-04-30 15:15:07 -07:00
Alex Robinson
f3352d96e6
Merge pull request #7595 from a-robinson/typo
...
Fix typo in kubelet prober code
2015-04-30 14:42:18 -07:00
Yifan Gu
01841a8c19
kubelet/rkt: Add podInfo.
...
podInfo reprensents the state of rkt pods.
It is used to for reporting the pod and container status to kubelet.
2015-04-30 14:39:10 -07:00
Yu-Ju Hong
644ec0dbfb
Remove ErrNoKubeletContainers
...
We no longer use it.
2015-04-30 13:35:21 -07:00
Yu-Ju Hong
83c599e4d4
Add image-related methods to DockerManager
...
This change is part of the efforts to make DockerManager implement the Runtime
interface.
The change also modifies the interface slightly to work with existing
code, and aggregates the type converting functions to convert.go.
2015-04-30 13:27:52 -07:00
Alex Robinson
faa3292bb3
Fix typo in kubelet prober code.
2015-04-30 13:17:10 -07:00
Yu-Ju Hong
2f7b951140
Remove more docker references in kubelet
...
This change also renames TrimRuntimePrefixFromImage to TrimRuntimePrefix to
better reflect that the usage is not limited to images (e.g. ID).
2015-04-30 13:16:11 -07:00
Victor Marmol
2c381a6f6f
Merge pull request #7550 from yifan-gu/rkt_pull
...
Rkt pull
2015-04-30 13:09:14 -07:00
CJ Cullen
015c0656a6
Merge pull request #7568 from yujuhong/rm_getcontainers
...
Remove GetContainers from Runtime interface
2015-04-30 12:01:58 -07:00
Yu-Ju Hong
11be6811b3
Merge pull request #7563 from vmarmol/runtime-pre
...
Move lifecycle handlers to their own subpackage
2015-04-30 11:22:58 -07:00
Clayton Coleman
d03b5299f9
Merge pull request #7432 from piosz/termination_notice
...
Added TerminationGracePeriod field to PodSpec and grace-period flag to kubectl stop
2015-04-30 13:55:51 -04:00
Tobi Knaup
b96c4046a8
Add --cgroup_root flag to Kubelet to set the parent cgroup for all pods.
...
Implements #6991 .
2015-04-30 10:32:27 -07:00
Yifan Gu
ca4643ef31
kubelet/rkt: Add GetContainerLogs() for rkt.
2015-04-30 10:31:31 -07:00