Skip to content

Instantly share code, notes, and snippets.

@riljian
Last active May 25, 2021 12:49
Show Gist options
  • Save riljian/35f6eeb9e99b32891a534f4fe5f472bc to your computer and use it in GitHub Desktop.
Save riljian/35f6eeb9e99b32891a534f4fe5f472bc to your computer and use it in GitHub Desktop.
network-kubernetes
apiVersion: v1
kind: Namespace
metadata:
name: external-network
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default-local-storage
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: network-pv
spec:
capacity:
storage: 5Mi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /var/local/network-pv
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- kubernetes-worker-1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: network-pv-claim
namespace: external-network
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: external-dns
namespace: external-network
labels:
app: coredns
spec:
replicas: 1
selector:
matchLabels:
app: coredns
template:
metadata:
labels:
app: coredns
spec:
volumes:
- name: network-pv
persistentVolumeClaim:
claimName: network-pv-claim
containers:
- name: coredns
image: coredns/coredns
args: ["-conf", "network/Corefile"]
ports:
- containerPort: 53
name: dns
volumeMounts:
- mountPath: "/network"
name: network-pv
---
apiVersion: v1
kind: Service
metadata:
name: external-dns
namespace: external-network
spec:
selector:
app: coredns
ports:
- name: tcp
protocol: TCP
port: 53
targetPort: 53
- name: udp
protocol: UDP
port: 53
targetPort: 53
externalIPs:
- 192.168.56.101
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: "k8s.io/ingress-nginx"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment