Contents

Kubernetes Image Security

Image

nginx-pod.yaml

1
2
3
4
5
6
7
8
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
    - name: nginx
      image: nginx
image
image: nginx

Image Value Structure

Structure
image: <repository>/<user/account>/<image/repository>

Example

1
  image: gcr.io/kubernetes-e2e-test-images/dnsutils  

Private Repository

Login

1
docker login private-repository.io
1
2
3
4
5
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: registry-user
Password:
WARNING! Your password will be stored unencrypted in /home/vagrant/.docker/config.json.
Login Succeeded

Run Private Image

1
docker run private-repository.io/apps/internal-app

Private Repository in Kubernetes

Create Private Repository Secret in Kubernetes

1
2
3
4
5
kubectl create secret docker-registry regcred \
  --docker-server=private-repository.io \
  --docker-username=registry-user \
  --docker-password=registry-password \
  --docker-email=registry-user@org.com

Private Repository in YAML

nginx-pod.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  imagePullSecrets:
    - name: regcred
  containers:
    - name: nginx
      image: private-repository.io/apps/internal-app