INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Secure container registry in microk8s

№ 11332 В разделе Sysadmin от August 27th, 2021,
В подшивках: ,

Microk8s includes docker registry feature but absolutely not secure, just for local developers use.

So remove old service “registry” (NodePort) and create new one:

apiVersion: v1
kind: Service
metadata:
  name: registry-external
  namespace: container-registry
  labels:
    app: registry
spec:
  ports:
  - port: 5000
    name: registry
    protocol: TCP
    targetPort: registry
  selector:
    app: registry
  type: ClusterIP

New service points to the same place but not opens port 32000.

Now create secret, do not change filename, its important:

htpasswd -bc auth kubernetes PruedAtshyohuciabIdcav
kubectl create secret generic basic-auth --from-file=auth --dry-run -o yaml

Good! Add new secret to your kube.

apiVersion: v1
data:
  auth: a3ViZXJuZXRlczokYXByMSRHQXNKamVGbiRzWFNDSVNxOGwuYVlwTkhTajlpQ2EuCg==
kind: Secret
metadata:
  creationTimestamp: null
  name: basic-auth

And now create ingress resource with basic auth pointed to new secret

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-http01
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: basic-auth
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
  name: registry
  namespace: container-registry
spec:
  rules:
  - host: registry.k8s.huy.net
    http:
      paths:
      - backend:
          serviceName: registry-external
          servicePort: registry
        path: /
  tls:
  - hosts:
    - registry.k8s.huy.net
    secretName: tls-registry-k8s-huy-net

You did it!

Нет комментариев »

Add additional cluster domain for microk8s

№ 11327 В разделе Sysadmin от August 19th, 2021,
В подшивках:

Open /var/snap/microk8s/current/certs/csr.conf.template and add:

[ alt_names ]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster
DNS.5 = kubernetes.default.svc.cluster.local
DNS.6 = blindage.org
DNS.7 = k8s.blindage.org
IP.1 = 127.0.0.1
IP.2 = 10.152.183.1
#MOREIPS
IP.3 = 192.168.1.9
IP.4 = 109.227.241.137

Now refresh certificates with command microk8s.refresh-certs

Нет комментариев »

Kubernetes: kubectl, helm and K9S for Windows 7 32 bit

№ 11273 В разделе Sysadmin от April 26th, 2021,
В подшивках: ,

My small notebook cant run 64 bit software so I builded 32 versions of kubectl and helm.

Downloads:

Нет комментариев »

Kubernetes: wait all pods actually terminated after scale to 0

№ 11269 В разделе Sysadmin от April 26th, 2021,
В подшивках: , ,

Use labels of deployment:

echo "$(date): Stop app pods"

kubectl -n default scale --replicas=0 deployment/my-application
kubectl -n default wait --for=delete pod -l app.kubernetes.io/name=appname \
                                         -l app.kubernetes.io/instance=my-application \
                                         --timeout=90s

echo "$(date): Start backup"

Нет комментариев »

Kubernetes: создание кастомных зон в DNS

№ 11263 В разделе Sysadmin от April 23rd, 2021,
В подшивках: ,

Итак, понадобилось мне поднять кастомную зону внутри моего домашнего кластера и первый же очевидный вариант это поднять зону в CoreDNS.

Для этого в конфигмап CoreDNS добавляем новый файл home.db:

  home.db: |
    home. IN      SOA     sns.dns.icann.org. noc.dns.icann.org. 2015082541  7200   3600 1209600 3600 
    gdns.home.            IN      A  8.8.8.8
    mqtt.home.         IN      A       1.1.1.2

А в Corefile указываем этот файл в качестве обслуживающего новую зону

  Corefile: |
    .:53 {
        ...
        file /etc/coredns/home.db home
    }

Ну и все, теперь в деплойменте можно указать новый файл для монтирования:

      volumes:
        - name: config-volume
          configMap:
            name: coredns
            items:
              - key: Corefile
                path: Corefile
              - key: home.db
                path: home.db

После обновления деплоймента под сам перезапустится и зона сразу заработает

root@mat-generator-app-6644bb76f-66vxd:/genmat# nslookup gdns.home
Server:         10.152.183.10
Address:        10.152.183.10#53

Name:   gdns.home
Address: 8.8.8.8

root@mat-generator-app-6644bb76f-66vxd:/genmat# nslookup mqtt.home
Server:         10.152.183.10
Address:        10.152.183.10#53

Name:   mqtt.home
Address: 1.1.1.2

Нет комментариев »

Облачная платформа
Яндекс.Метрика

Fortune cookie: Condoms are like listening to a symphony with cotton in your ears. [Taking a shower in raincoat? Ed.]