Merge branch 'master' of https://github.com/kubernetes/kubernetes.github.io into release-1.6
* 'master' of https://github.com/kubernetes/kubernetes.github.io: concepts/abstractions: init containers example. updated vsphere getting started guide addressed review comments addressed chenopis's review comments
This commit is contained in:
@@ -95,6 +95,98 @@ Here are some ideas for how to use Init Containers:
|
|||||||
More detailed usage examples can be found in the [StatefulSets documentation](/docs/concepts/abstractions/controllers/statefulsets/)
|
More detailed usage examples can be found in the [StatefulSets documentation](/docs/concepts/abstractions/controllers/statefulsets/)
|
||||||
and the [Production Pods guide](/docs/user-guide/production-pods.md#handling-initialization).
|
and the [Production Pods guide](/docs/user-guide/production-pods.md#handling-initialization).
|
||||||
|
|
||||||
|
### Init Containers in use
|
||||||
|
|
||||||
|
The following yaml file outlines a simple Pod which has two Init Containers.
|
||||||
|
The first waits for `myservice` and the second waits for `mydb`. Once both
|
||||||
|
containers complete the Pod will begin.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: myapp-pod
|
||||||
|
labels:
|
||||||
|
app: myapp
|
||||||
|
annotations:
|
||||||
|
pod.beta.kubernetes.io/init-containers: '[
|
||||||
|
{
|
||||||
|
"name": "init-myservice",
|
||||||
|
"image": "busybox",
|
||||||
|
"command": ["sh", "-c", "until nslookup myservice; do echo waiting for myservice; sleep 2; done;"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "init-mydb",
|
||||||
|
"image": "busybox",
|
||||||
|
"command": ["sh", "-c", "until nslookup mydb; do echo waiting for mydb; sleep 2; done;"]
|
||||||
|
}
|
||||||
|
]'
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: myapp-container
|
||||||
|
image: busybox
|
||||||
|
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
|
||||||
|
```
|
||||||
|
|
||||||
|
This Pod can be started and debugged with the following commands:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl create -f myapp.yaml
|
||||||
|
pod "myapp-pod" created
|
||||||
|
$ kubectl get -f myapp.yaml
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
myapp-pod 0/1 Init:0/2 0 6m
|
||||||
|
$ kubectl describe -f myapp.yaml
|
||||||
|
i11:32 $ kubectl describe -f examples/init-container.yaml
|
||||||
|
Name: myapp-pod
|
||||||
|
Namespace: default
|
||||||
|
[...]
|
||||||
|
Labels: app=myapp
|
||||||
|
Status: Pending
|
||||||
|
[...]
|
||||||
|
Init Containers:
|
||||||
|
init-myservice:
|
||||||
|
[...]
|
||||||
|
State: Running
|
||||||
|
[...]
|
||||||
|
init-mydb:
|
||||||
|
[...]
|
||||||
|
State: Running
|
||||||
|
[...]
|
||||||
|
Containers:
|
||||||
|
myapp-container:
|
||||||
|
[...]
|
||||||
|
State: Waiting
|
||||||
|
Reason: PodInitializing
|
||||||
|
Ready: False
|
||||||
|
[...]
|
||||||
|
Events:
|
||||||
|
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
|
||||||
|
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||||
|
16s 16s 1 {default-scheduler } Normal Scheduled Successfully assigned myapp-pod to 172.17.4.201
|
||||||
|
16s 16s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Pulling pulling image "busybox"
|
||||||
|
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Pulled Successfully pulled image "busybox"
|
||||||
|
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Created Created container with docker id 5ced34a04634; Security:[seccomp=unconfined]
|
||||||
|
13s 13s 1 {kubelet 172.17.4.201} spec.initContainers{init-myservice} Normal Started Started container with docker id 5ced34a04634
|
||||||
|
$ kubectl logs myapp-pod -c init-myservice # Inspect the first init container
|
||||||
|
$ kubectl logs myapp-pod -c init-mydd # Inspect the second init container
|
||||||
|
```
|
||||||
|
|
||||||
|
Once we start the `mydb` and `myservice` Services we can see the Init Containers
|
||||||
|
complete and the `myapp-pod` is created:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ kubectl create -f services.yaml
|
||||||
|
service "myservice" created
|
||||||
|
service "mydb" created
|
||||||
|
$ kubectl get -f myapp.yaml
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
myapp-pod 1/1 Running 0 9m
|
||||||
|
```
|
||||||
|
|
||||||
|
This example is very simple but should provide some inspiration for you to
|
||||||
|
create your own Init Containers.
|
||||||
|
|
||||||
## Detailed behavior
|
## Detailed behavior
|
||||||
|
|
||||||
During the startup of a Pod, the Init Containers are started in order, after the
|
During the startup of a Pod, the Init Containers are started in order, after the
|
||||||
@@ -181,4 +273,4 @@ Kubelet and Apiserver versions; see the [release notes](https://github.com/kuber
|
|||||||
{% endcapture %}
|
{% endcapture %}
|
||||||
|
|
||||||
|
|
||||||
{% include templates/concept.md %}
|
{% include templates/concept.md %}
|
||||||
|
|||||||
@@ -79,8 +79,7 @@ Sample Config:
|
|||||||
|
|
||||||
#### Known issues
|
#### Known issues
|
||||||
|
|
||||||
* [Volumes are not removed from a VM configuration if the VM is down](https://github.com/kubernetes/kubernetes/issues/33061). The workaround is to manually remove the disk from VM settings before powering it up.
|
* [Unable to execute command on pod container using kubectl exec](https://github.com/kubernetes/kubernetes-anywhere/issues/337)
|
||||||
* [FS groups are not supported in 1.4.7](https://github.com/kubernetes/kubernetes/issues/34039) - This issue is fixed in 1.4.8
|
|
||||||
|
|
||||||
### Kube-up (Deprecated)
|
### Kube-up (Deprecated)
|
||||||
|
|
||||||
@@ -216,7 +215,7 @@ going on (find yourself authorized with your SSH key, or use the password
|
|||||||
|
|
||||||
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
|
IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level
|
||||||
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
|
-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ----------------------------
|
||||||
Vmware vSphere | Kube-anywhere | Photon OS | Flannel | [docs](/docs/getting-started-guides/vsphere) | | Community ([@abrarshivani](https://github.com/abrarshivani)), ([@kerneltime](https://github.com/kerneltime)), ([@BaluDontu](https://github.com/BaluDontu))([@luomiao](https://github.com/luomiao))
|
Vmware vSphere | Kube-anywhere | Photon OS | Flannel | [docs](/docs/getting-started-guides/vsphere) | | Community ([@abrarshivani](https://github.com/abrarshivani)), ([@kerneltime](https://github.com/kerneltime)), ([@BaluDontu](https://github.com/BaluDontu)), ([@luomiao](https://github.com/luomiao)), ([@divyenpatel](https://github.com/divyenpatel))
|
||||||
|
|
||||||
For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart.
|
For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user