Skip to content

GKE

GKE service account

kubectl create clusterrolebinding USER_XXXX-cluster-admin-binding \
  --clusterrole=cluster-admin \
  --user=USER_XXXX@XX.com

Docker secret for container registry

kubectl create secret docker-registry SECRET_NAME \
  --docker-server=https://eu.gcr.io \
  --docker-username=_json_key \
  --docker-email=XX@XXX \
  --docker-password="$(cat token.json)"

For local use only

 docker login -u _json_key -p "$(cat service_account_key.json)" https://eu.gcr.io

Change credsStore value to empty string to use plain text registry.

You can also use different credHelpers (recommended).

{
   "credHelpers": {
            "coolregistry.com": ... ,
            "gcr.io": "gcr",
            "asia.gcr.io": "gcr",
            ...
      }
}

Annotations and custom configuration

Ingress Load balancer

kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: "global-ip-name"
ingress.kubernetes.io/ssl-cert: "cert1,cert2"

In order to generate SSL managed certificates, use gcloud command:

gcloud beta compute ssl-certificates create [SSL_CERTIFICATE_NAME] \
    --domains [DOMAIN]
gcloud beta compute ssl-certificates list

Cloud Armor policy

Create binding backend configuration

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: backend-config
  namespace: ingress
spec:
  securityPolicy:
   name: "cloud-armor-policy-name"

Bind service to cloud armor policy

beta.cloud.google.com/backend-config: '{"ports": {"80":"backend-config"}}'