Pods and Deployments
Working with Pods
Pod Documentation
Using the build in oc explain
it is simple to get the ducumentation for the running version of OpenShift. Here are a few basics.
Get built-in documentation for Pods
oc explain pod
Get the pod spec
oc explain pod.spec
Details on the pod's containers
oc explain pod.spec.containers
Details about the pod's containers images
oc explain pod.spec.containers.image
Working with pod files
Example of a pod file
apiVersion: v1
kind: Pod
metadata:
name: hello-world-pod
labels:
app: hello-world-pod
spec:
containers:
- env:
- name: MESSAGE
value: Hi there! You've run a pod.
image: quay.docker.io/practicalopenshift/hello-worldmcleary/helloworld-go
imagePullPolicy: Always
name: hello-world-override
resources: {}
Create a Pod on OpenShift based on a file
oc create -f pod.yaml
Use oc get
to information from OpenShift
Get pods
oc get pods
Watch pods deploy
oc get pods --watch
Get all resources
oc get all
Access the shell of a running container. Use oc get pods
to get the pod name.
oc rsh <pod-name>
Use port forwards to interact with the pod on the local machine. Get the pod name from the oc get pods
.
oc port-forward <pod-name> <local_port>:pod_port>
Delete OpenShift resources use the following syntax
oc delete <resource type> <resource name>
Delete a pod
oc delete pod <pod-name>
Deployments
Deploy an existing image based on its tag
oc new-app mcleary/helloworld-go:latest --as-deployment-config
Deploy an application from Git
oc new-app https://github.com/clusterapps/helloworld-go.git --as-deployment-config
Follow build progress when using
oc logs -f bc/helloworld-go
Set the name for the DeploymentConfig
oc new-app mcleary/helloworld-go --name hello-app --as-deployment-config
DeploymentConfig with a parameter
oc new-app MESSAGE="This is a parameter" mcleary/helloworld-go --name hello-app --as-deployment-config
DeploymentConfig with many patameters
oc new-app mysql MYSQL_USER=user MYSQL_PASSWORD=pass MYSQL_DATABASE=testdb -l db=mysql
Get information about a DeploymentConfig
Describe the DC to get its labels
oc describe dc/hello-app
Get the full YAML definition
oc get -o yaml dc/hello-app
Roll out the latest version of the application
oc rollout latest dc/hello-app
Roll back to the previous version of the application
oc rollback dc/hello-app
Delete a single resource
oc delete <resource> <name>
oc delete dc hello-app # Delete deployment config
oc delete svc hello-app # Delete a service
Delete all application resources using labels (get labels from oc describe)
oc delete all -l app=app=hello-app
Delete everything in a project
oc delete all --all