mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	update example/liveness to v1beta3;
update the exec-liveness.yaml to reflect PR#8011 add a README
This commit is contained in:
		@@ -164,6 +164,10 @@ func TestExampleObjectSchemas(t *testing.T) {
 | 
				
			|||||||
		"../examples/glusterfs/v1beta3": {
 | 
							"../examples/glusterfs/v1beta3": {
 | 
				
			||||||
			"glusterfs": &api.Pod{},
 | 
								"glusterfs": &api.Pod{},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							"../examples/liveness": {
 | 
				
			||||||
 | 
								"exec-liveness": &api.Pod{},
 | 
				
			||||||
 | 
								"http-liveness": &api.Pod{},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		"../examples": {
 | 
							"../examples": {
 | 
				
			||||||
			"pod":         &api.Pod{},
 | 
								"pod":         &api.Pod{},
 | 
				
			||||||
			"replication": &api.ReplicationController{},
 | 
								"replication": &api.ReplicationController{},
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										76
									
								
								examples/liveness/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								examples/liveness/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
				
			|||||||
 | 
					## Overview
 | 
				
			||||||
 | 
					This example shows two types of pod health checks: HTTP checks and container execution checks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The [exec-liveness.yaml](./exec-liveness.yaml) demonstrates the container execution check.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					    livenessProbe:
 | 
				
			||||||
 | 
					      exec:
 | 
				
			||||||
 | 
					        command:
 | 
				
			||||||
 | 
					        - cat
 | 
				
			||||||
 | 
					        - /tmp/health
 | 
				
			||||||
 | 
					      initialDelaySeconds: 15
 | 
				
			||||||
 | 
					      timeoutSeconds: 1
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Kubelet executes the command cat /tmp/health in the container and reports failure if the command returns a non-zero exit code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that the container removes the /tmp/health file after 10 seconds,
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					so when Kubelet executes the health check 15 seconds (defined by initialDelaySeconds) after the container started, the check would fail.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The [http-liveness.yaml](./http-liveness.yaml) demonstrates the HTTP check.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					    livenessProbe:
 | 
				
			||||||
 | 
					      httpGet:
 | 
				
			||||||
 | 
					        path: /healthz
 | 
				
			||||||
 | 
					        port: 8080
 | 
				
			||||||
 | 
					      initialDelaySeconds: 15
 | 
				
			||||||
 | 
					      timeoutSeconds: 1
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					The Kubelet sends a HTTP request to the specified path and port to perform the health check. If you take a look at image/server.go, you will see the server starts to respond with an error code 500 after 10 seconds, so the check fails.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This [guide](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/examples/walkthrough/k8s201.md#health-checking) has more information on health checks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Get your hands dirty
 | 
				
			||||||
 | 
					To show the health check is actually working, first create the pods:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# cluster/kubectl.sh create -f exec-liveness.yaml
 | 
				
			||||||
 | 
					# cluster/kbuectl.sh create -f http-liveness.yaml
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check the status of the pods once they are created:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# cluster/kubectl.sh get pods
 | 
				
			||||||
 | 
					POD             IP           CONTAINER(S)   IMAGE(S)                            HOST                                     LABELS          STATUS    CREATED     MESSAGE
 | 
				
			||||||
 | 
					liveness-exec   10.244.3.7                                                      kubernetes-minion-f08h/130.211.122.180   test=liveness   Running   3 seconds   
 | 
				
			||||||
 | 
					                             liveness       gcr.io/google_containers/busybox                                                             Running   2 seconds   
 | 
				
			||||||
 | 
					liveness-http   10.244.0.8                                                      kubernetes-minion-0bks/104.197.10.10     test=liveness   Running   3 seconds   
 | 
				
			||||||
 | 
					                             liveness       gcr.io/google_containers/liveness                                                            Running   2 seconds   
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Check the status half a minute later, you will see the termination messages:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# cluster/kubectl.sh get pods
 | 
				
			||||||
 | 
					POD             IP           CONTAINER(S)   IMAGE(S)                            HOST                                     LABELS          STATUS    CREATED      MESSAGE
 | 
				
			||||||
 | 
					liveness-exec   10.244.3.7                                                      kubernetes-minion-f08h/130.211.122.180   test=liveness   Running   34 seconds   
 | 
				
			||||||
 | 
					                             liveness       gcr.io/google_containers/busybox                                                             Running   3 seconds    last termination: exit code 137
 | 
				
			||||||
 | 
					liveness-http   10.244.0.8                                                      kubernetes-minion-0bks/104.197.10.10     test=liveness   Running   34 seconds   
 | 
				
			||||||
 | 
					                             liveness       gcr.io/google_containers/liveness                                                            Running   13 seconds   last termination: exit code 2
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					The termination messages indicate that the liveness probes have failed, and the containers have been killed and recreated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also see the container restart count being incremented by running `kubectl describe`.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					# cluster/kubectl.sh describe pods liveness-exec | grep "Restart Count"
 | 
				
			||||||
 | 
					Restart Count:      8
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You would also see the killing and creating events at the bottom of the *kubectl describe* output:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					  Thu, 14 May 2015 15:23:25 -0700       Thu, 14 May 2015 15:23:25 -0700 1       {kubelet kubernetes-minion-0uzf}        spec.containers{liveness}               killing      Killing 88c8b717d8b0940d52743c086b43c3fad0d725a36300b9b5f0ad3a1c8cef2d3e
 | 
				
			||||||
 | 
					  Thu, 14 May 2015 15:23:25 -0700       Thu, 14 May 2015 15:23:25 -0700 1       {kubelet kubernetes-minion-0uzf}        spec.containers{liveness}               created      Created with docker id b254a9810073f9ee9075bb38ac29a4b063647176ad9eabd9184078ca98a60062
 | 
				
			||||||
 | 
					  Thu, 14 May 2015 15:23:25 -0700       Thu, 14 May 2015 15:23:25 -0700 1       {kubelet kubernetes-minion-0uzf}        spec.containers{liveness}               started      Started with docker id b254a9810073f9ee9075bb38ac29a4b063647176ad9eabd9184078ca98a60062
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
@@ -1,22 +1,21 @@
 | 
				
			|||||||
apiVersion: v1beta1
 | 
					apiVersion: v1beta3
 | 
				
			||||||
desiredState:
 | 
					 | 
				
			||||||
  manifest:
 | 
					 | 
				
			||||||
    containers:
 | 
					 | 
				
			||||||
      - image: gcr.io/google_containers/busybox
 | 
					 | 
				
			||||||
        name: liveness
 | 
					 | 
				
			||||||
        livenessProbe:
 | 
					 | 
				
			||||||
          exec:
 | 
					 | 
				
			||||||
            command:
 | 
					 | 
				
			||||||
              - "cat"
 | 
					 | 
				
			||||||
              - "/tmp/health"
 | 
					 | 
				
			||||||
          initialDelaySeconds: 15
 | 
					 | 
				
			||||||
        command:
 | 
					 | 
				
			||||||
          - "/bin/sh"
 | 
					 | 
				
			||||||
          - "-c"
 | 
					 | 
				
			||||||
          - "echo ok > /tmp/health; sleep 10; echo fail > /tmp/health; sleep 600"
 | 
					 | 
				
			||||||
    id: liveness-exec
 | 
					 | 
				
			||||||
    version: v1beta1
 | 
					 | 
				
			||||||
id: liveness-exec
 | 
					 | 
				
			||||||
kind: Pod
 | 
					kind: Pod
 | 
				
			||||||
labels:
 | 
					metadata:
 | 
				
			||||||
  test: liveness
 | 
					  labels:
 | 
				
			||||||
 | 
					    test: liveness
 | 
				
			||||||
 | 
					  name: liveness-exec
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  containers:
 | 
				
			||||||
 | 
					  - args:
 | 
				
			||||||
 | 
					    - /bin/sh
 | 
				
			||||||
 | 
					    - -c
 | 
				
			||||||
 | 
					    - echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
 | 
				
			||||||
 | 
					    image: gcr.io/google_containers/busybox
 | 
				
			||||||
 | 
					    livenessProbe:
 | 
				
			||||||
 | 
					      exec:
 | 
				
			||||||
 | 
					        command:
 | 
				
			||||||
 | 
					        - cat
 | 
				
			||||||
 | 
					        - /tmp/health
 | 
				
			||||||
 | 
					      initialDelaySeconds: 15
 | 
				
			||||||
 | 
					      timeoutSeconds: 1
 | 
				
			||||||
 | 
					    name: liveness
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,18 @@
 | 
				
			|||||||
apiVersion: v1beta1
 | 
					apiVersion: v1beta3
 | 
				
			||||||
desiredState:
 | 
					 | 
				
			||||||
  manifest:
 | 
					 | 
				
			||||||
    containers:
 | 
					 | 
				
			||||||
      - image: gcr.io/google_containers/liveness
 | 
					 | 
				
			||||||
        name: liveness
 | 
					 | 
				
			||||||
        livenessProbe:
 | 
					 | 
				
			||||||
          httpGet:
 | 
					 | 
				
			||||||
            path: "/healthz"
 | 
					 | 
				
			||||||
            port: 8080
 | 
					 | 
				
			||||||
          initialDelaySeconds: 15
 | 
					 | 
				
			||||||
        command:
 | 
					 | 
				
			||||||
          - /server
 | 
					 | 
				
			||||||
    id: liveness-http
 | 
					 | 
				
			||||||
    version: v1beta1
 | 
					 | 
				
			||||||
id: liveness-http
 | 
					 | 
				
			||||||
kind: Pod
 | 
					kind: Pod
 | 
				
			||||||
labels:
 | 
					metadata:
 | 
				
			||||||
  test: liveness
 | 
					  labels:
 | 
				
			||||||
 | 
					    test: liveness
 | 
				
			||||||
 | 
					  name: liveness-http
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  containers:
 | 
				
			||||||
 | 
					  - args:
 | 
				
			||||||
 | 
					    - /server
 | 
				
			||||||
 | 
					    image: gcr.io/google_containers/liveness
 | 
				
			||||||
 | 
					    livenessProbe:
 | 
				
			||||||
 | 
					      httpGet:
 | 
				
			||||||
 | 
					        path: /healthz
 | 
				
			||||||
 | 
					        port: 8080
 | 
				
			||||||
 | 
					      initialDelaySeconds: 15
 | 
				
			||||||
 | 
					      timeoutSeconds: 1
 | 
				
			||||||
 | 
					    name: liveness
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,29 +0,0 @@
 | 
				
			|||||||
apiVersion: v1beta3
 | 
					 | 
				
			||||||
kind: ReplicationController
 | 
					 | 
				
			||||||
metadata: 
 | 
					 | 
				
			||||||
  labels: 
 | 
					 | 
				
			||||||
    test: liveness
 | 
					 | 
				
			||||||
  name: liveness-exec
 | 
					 | 
				
			||||||
spec: 
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  selector: 
 | 
					 | 
				
			||||||
    test: liveness
 | 
					 | 
				
			||||||
  template: 
 | 
					 | 
				
			||||||
    metadata: 
 | 
					 | 
				
			||||||
      labels: 
 | 
					 | 
				
			||||||
        test: liveness
 | 
					 | 
				
			||||||
    spec: 
 | 
					 | 
				
			||||||
      containers: 
 | 
					 | 
				
			||||||
        - command: 
 | 
					 | 
				
			||||||
            - "/bin/sh"
 | 
					 | 
				
			||||||
            - "-c"
 | 
					 | 
				
			||||||
            - "echo ok > /tmp/health; sleep 10; echo fail > /tmp/health; sleep 600"
 | 
					 | 
				
			||||||
          image: gcr.io/google_containers/busybox
 | 
					 | 
				
			||||||
          livenessProbe: 
 | 
					 | 
				
			||||||
            exec: 
 | 
					 | 
				
			||||||
              command: 
 | 
					 | 
				
			||||||
                - "cat"
 | 
					 | 
				
			||||||
                - "/tmp/health"
 | 
					 | 
				
			||||||
            initialDelaySeconds: 15
 | 
					 | 
				
			||||||
          name: liveness
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
apiVersion: v1beta3
 | 
					 | 
				
			||||||
kind: ReplicationController
 | 
					 | 
				
			||||||
metadata: 
 | 
					 | 
				
			||||||
  labels: 
 | 
					 | 
				
			||||||
    test: liveness
 | 
					 | 
				
			||||||
  name: liveness-http
 | 
					 | 
				
			||||||
spec: 
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  selector: 
 | 
					 | 
				
			||||||
    test: liveness
 | 
					 | 
				
			||||||
  template: 
 | 
					 | 
				
			||||||
    metadata: 
 | 
					 | 
				
			||||||
      labels: 
 | 
					 | 
				
			||||||
        test: liveness
 | 
					 | 
				
			||||||
    spec: 
 | 
					 | 
				
			||||||
      containers: 
 | 
					 | 
				
			||||||
        - command: 
 | 
					 | 
				
			||||||
            - "/server"
 | 
					 | 
				
			||||||
          image: gcr.io/google_containers/liveness
 | 
					 | 
				
			||||||
          livenessProbe: 
 | 
					 | 
				
			||||||
            httpGet: 
 | 
					 | 
				
			||||||
              path: "/healthz"
 | 
					 | 
				
			||||||
              port: 8080
 | 
					 | 
				
			||||||
            initialDelaySeconds: 15
 | 
					 | 
				
			||||||
          name: liveness
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user