You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Your Name e9da09d5f4 Push k8s training 3 months ago
..
README.md Push k8s training 3 months ago
auth-nginx.conf Push k8s training 3 months ago
deploy.yaml Push k8s training 3 months ago

README.md

Publication of our microservice

We will create a Deployment resource that provides declarative updates for Pods along with other useful features.

1. Declare a deployment

First, the Deployment declaration will be quite similar to the one of our ReplicationController.

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: simple-deploy-nginx
spec:

Once it is running, we will modify the manifest in order to add a basic authentication flow. Deployments can detect changes and perform hot reloads of pods configuration.

Precisely, it must present some additional elements :

  • a ConfigMap containing the file auth-nginx.conf and mounted on /etc/nginx/conf.d
  • a Secret containing the file .htpasswd and mounted on /secrets

Both ConfigMaps and Secrets store the data the same way (in key/value pairs), but ConfigMaps are meant for plain text data. Secrets values on the other hand, are base64 encoded as they can contain binary data.

htpasswd -c .htpasswd alice create a new credential file that contains the MD5 hash of alice's password.

---
apiVersion: v1
kind: Secret
data: {}

Don't forget to create a service to expose your deployment inside the cluster.

You can also scale replicas up and down in a deployment.

The application should prompt you to enter a login and password before serving the page.

2. Expose your deployment

Once again, expose your deployment through a ClusterIP that makes it reachable from inside the cluster.