---
title: Mira's attempts to understand Kuwubernetes
date: 2025-04-07
---

# Install k3s, helm

- run `curl -sfL https://get.k3s.io | sh - on first node
- `curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash`

`export KUBECONFIG=/etc/rancher/k3s/k3s.yaml`

```yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: adminer
  name: adminer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: adminer
  template:
    metadata:
      labels:
        app: adminer
    spec:
      containers:
        - image: adminer:latest
          name: adminer
          ports:
            - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: adminer-svc
spec:
  type: ClusterIP
  selector:
    app: adminer
  ports:
    - port: 8080
      targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: adminer-http
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
  rules:
    - host: adminer.lipotropin.lan
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: adminer-svc
                port:
                  number: 8080
```

- Use `kubectl apply -f <yaml>` to deploy a yaml file

The above two result in the following

```
$ kubectl describe svc
Name:                     adminer
Namespace:                default
Labels:                   io.kompose.service=adminer
Annotations:              <none>
Selector:                 io.kompose.service=adminer
Type:                     ClusterIP
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.43.229.81
IPs:                      10.43.229.81
Port:                     8090  8090/TCP
TargetPort:               8080/TCP
Endpoints:                10.42.0.10:8080
Session Affinity:         None
Internal Traffic Policy:  Cluster
Events:                   <none>
```

Adminer can be accesed at `10.42.0.10:8080`

> [!TODO] how tf do I access this from 127.0.0.1 or outside?

---

- Deployment: seems to translate to docker service
- Service: seems to handle connecting to the deployment?
- NodePort: something to do with routing
  - `kubectl expose deployment <deployment_name> --port=<port> --target-port=<target_port> --type=NodePort`

`kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.1/standard-install.yaml`
`export KUBECONFIG=/etc/rancher/k3s/k3s.yaml`

---

# TODO:

- [x] cyberchef
- [x] adminer
- [x] soulseek
- [x] postgres
- [x] mariadb
- [x] Ntfy
- [x] gluetun?
- [x] Jackett
- [x] qbittorrent
- [x] radarr
- [ ] sonarr
- [ ] syncthing
- [ ] forgejo
- [ ] kuma
- [ ] paperless-ngx
  - [ ] goternberg
  - [ ] redis
  - [ ] tika
- [ ] jellyfin
- [ ] Website
- [ ] crowdsec
- [ ] dufs
- [ ] minecraft
- [ ] flaresolverr?
