Tartalomjegyzék

Private registry használata

Secret készítése (kubectl)

# kubectl create secret docker-registry regcred \
  --docker-server=registry.example.com \
  --docker-username=FELHASZNÁLÓNÉV \
  --docker-password='JELSZÓ'

Secret készítése (YAML)

A config.json-ban nem kell az username és a password mező, elég az auth.

# echo -n 'felhasználónév:jelszó' | base64
ZmVsaGFzem7DoWzDs27DqXY6amVsc3rDsw==

# cat > config.json <<EOF
{
  "auths": {
    "registry.example.com": {
      "auth": "$(echo -n 'felhasználónév:jelszó' | base64)"
    }
  }
}
EOF

# cat > regcred.yaml <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: regcred
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: $(base64 -w 0 config.json)
EOF

# kubectl apply -f regcred.yaml
secret/regcred created

# kubectl get all
No resources found in default namespace.

# kubectl get secrets
NAME      TYPE                             DATA   AGE
regcred   kubernetes.io/dockerconfigjson   1      47s

Deployment

# cat > deployment.yaml <<'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-nginx
  template:
    metadata:
      labels:
        app: demo-nginx
    spec:
      imagePullSecrets:
        - name: regcred
      containers:
        - name: nginx
          image: registry.example.com/username/demo-nginx:1.00
          imagePullPolicy: IfNotPresent
EOF

# kubectl apply -f deployment.yaml 
deployment.apps/demo-nginx created

Az imagePullPolicy értéke :latest tag esetén Always, egyéb esetben IfNotPresent.

Amennyiben hiba történik és nem szeretnénk kivárni az időzített próbálkozást, akkor futtassuk az alábbi utasítást:

# kubectl rollout restart deployment.apps/demo-nginx