To deploy your container to an Oracle Container Engine for Kubernetes cluster, upload the image to a registry and then create a deployment manifest file that describes the deployment to the Oracle Container Engine for Kubernetes cluster.
Upload the Docker Image to Oracle Cloud Infrastructure Registry
The Oracle Cloud Infrastructure Registry is a private registry on which you can store your application images. You can use any registry for this purpose as long as your cloud infrastructure can access it.
To upload your image to Oracle Cloud
Infrastructure Registry, you need to tag it appropriately and then upload it to the registry. To upload an image on to Oracle Cloud
Infrastructure Registry, specify the fully qualified path to the target location in Oracle Cloud
Infrastructure Registry where you want to upload the image, optionally including the name of a repository. Here, you've tagged it already with the Docker plugin for gradle, by specifying the tag name in
tag = 'data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest'
Once the image is ready to be uploaded to Oracle Cloud Infrastructure Registry, sign in to the Oracle Cloud Infrastructure console to set up an access token in Oracle Cloud Infrastructure. The access token helps you to sign in to Oracle Cloud Infrastructure using the Docker command-line interface (CLI).
- In the Oracle Cloud Infrastructure console, in the top-right corner, click User menu and then click User Settings to view the details.
- On the Auth Tokens page, click Generate Token.
- In the Generate Token dialog box, enter a friendly description for the authentication token and click Generate Token. The new authentication token is displayed.
- Copy the authentication token to a secure location from where you can retrieve it later, because you won't see the authentication token again in the Oracle Cloud Infrastructure console.
- Close the Generate Token dialog box and close the Oracle Cloud Infrastructure console.
After creating the authentication token, upload your image to Oracle Cloud Infrastructure Registry.
- Sign in to Oracle Cloud
Infrastructure using the standard Docker CLI.
docker login data-region.ocir.io
- Enter your user name in the format,
email@example.com. When prompted, enter the authentication token that you saved earlier.
- Upload your image to Oracle Cloud
docker push data-region.ocir.io/my-tenant/my-repo/omc-sample-app
Once uploaded, you can view the image in your repository.
Deploy the Application to an Oracle Container Engine for Kubernetes Cluster
After uploading the image, you need to set up your Kubernetes deployment manifest to manage your application as a deployment unit, and then deploy the Kubernetes cluster.
This manifest describes a
Deployment object that needs to have one replica based on the image that you created.
- Create a manifest file,
omc-sample-svc.yaml, in your current directory similar to the following.
apiVersion: apps/v1 kind: Deployment metadata: name: omc-sample-app spec: selector: matchLabels: app: omc-sample-app replicas: 1 template: metadata: labels: app: omc-sample-app spec: containers: - name: omc-sample-app image: data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: name: omc-sample-app spec: selector: app: omc-sample-app ports: - protocol: "TCP" port: 8080 targetPort: 8080 type: LoadBalancer
The deployment is named
omc-sample-app, which creates the application containers. To enable access to the deployment as a whole, you create a service, which in this case is of type
LoadBalancer. When deployed, this automatically provisions an Oracle Cloud Infrastructure Load Balancing instance to manage and route traffic to the application.
- Deploy the application images by running
kubectlfrom your current directory.
kubectl apply -f omc-sample-svc.yaml