apiVersion: v1 kind: PersistentVolumeClaim metadata: name: adguardhome2-pvc namespace: dns annotations: nfs.io/storage-path: "adguardhome2-config" spec: storageClassName: "nfs-client" accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: adguardhome2 namespace: dns spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: adguardhome2 template: metadata: labels: app: adguardhome2 spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 preference: matchExpressions: - key: kubernetes.io/hostname operator: In values: - iris containers: - name: adguardhome2 image: adguard/adguardhome:latest imagePullPolicy: Always ports: - containerPort: 53 protocol: TCP - containerPort: 53 protocol: UDP - containerPort: 3000 protocol: TCP name: install-port - containerPort: 80 protocol: TCP name: web-port resources: requests: cpu: 100m memory: 256Mi volumeMounts: - name: adguardhome2-storage mountPath: /opt/adguardhome/work - name: adguardhome2-storage mountPath: /opt/adguardhome/conf volumes: - name: adguardhome2-storage persistentVolumeClaim: claimName: adguardhome2-pvc --- apiVersion: v1 kind: Service metadata: name: adguardhome2-svc namespace: dns spec: type: LoadBalancer selector: app: adguardhome2 loadBalancerIP: 192.168.15.201 ports: - name: dns-tcp port: 53 targetPort: 53 protocol: TCP - name: dns-udp port: 53 targetPort: 53 protocol: UDP - name: web port: 80 targetPort: 80 --- apiVersion: v1 kind: Service metadata: name: adguard2-install-svc namespace: dns spec: type: ClusterIP selector: app: adguardhome2 ports: - name: install port: 3000 targetPort: 3000 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: adguardhome2-ingress namespace: dns spec: ingressClassName: nginx rules: - host: adguard2.haven http: paths: - path: / pathType: Prefix backend: service: name: adguardhome2-svc port: number: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: adguardhome2-install-ingress namespace: dns spec: ingressClassName: nginx rules: - host: install.adguard2.haven http: paths: - path: / pathType: Prefix backend: service: name: adguard2-install-svc port: number: 3000