====== Dokuwiki nfs dynamic ======
$ kubectl create namespace wiki-system
namespace/wiki-system created
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nfs-claim-wiki
namespace: wiki-system
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-client
resources:
requests:
storage: 4Gi
$ kubectl apply -f claim-nfs.yaml
persistentvolumeclaim/nfs-claim-wiki created
$ kubectl get pv,pvc -n wiki-system
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-0bc5876b-4e33-4666-bac8-358c4f75435a 4Gi RWX Delete Bound wiki-system/nfs-claim-wiki nfs-client 75s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/nfs-claim-wiki Bound pvc-0bc5876b-4e33-4666-bac8-358c4f75435a 4Gi RWX nfs-client 75s
$ kubectl describe pv pvc-0bc5876b-4e33-4666-bac8-358c4f75435a -n wiki-system
Name: pvc-0bc5876b-4e33-4666-bac8-358c4f75435a
Labels:
Annotations: pv.kubernetes.io/provisioned-by: k8s-sigs.io/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pv-protection]
StorageClass: nfs-client
Status: Bound
Claim: wiki-system/nfs-claim-wiki
Reclaim Policy: Delete
Access Modes: RWX
VolumeMode: Filesystem
Capacity: 4Gi
Node Affinity:
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 172.28.128.126
Path: /nfs/kubedata/wiki-system-nfs-claim-wiki-pvc-0bc5876b-4e33-4666-bac8-358c4f75435a
ReadOnly: false
Events:
$ kubectl describe pvc nfs-claim-wiki -n wiki-system
Name: nfs-claim-wiki
Namespace: wiki-system
StorageClass: nfs-client
Status: Bound
Volume: pvc-0bc5876b-4e33-4666-bac8-358c4f75435a
Labels:
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
volume.kubernetes.io/storage-provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 4Gi
Access Modes: RWX
VolumeMode: Filesystem
Used By:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 4m5s persistentvolume-controller waiting for a volume to be created, either by external provisioner "k8s-sigs.io/nfs-subdir-external-provisioner" or manually created by system administrator
Normal Provisioning 4m5s k8s-sigs.io/nfs-subdir-external-provisioner_nfs-client-provisioner-7d976fc48b-qdh2l_0a791334-90c3-4bab-8828-bc74aaf09ead External provisioner is provisioning volume for claim "wiki-system/nfs-claim-wiki"
Normal ProvisioningSucceeded 4m5s k8s-sigs.io/nfs-subdir-external-provisioner_nfs-client-provisioner-7d976fc48b-qdh2l_0a791334-90c3-4bab-8828-bc74aaf09ead Successfully provisioned volume pvc-0bc5876b-4e33-4666-bac8-358c4f75435a
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: dokuwiki
name: dokuwiki
namespace: wiki-system
spec:
replicas: 1
selector:
matchLabels:
app: dokuwiki
strategy: {}
template:
metadata:
labels:
app: dokuwiki
spec:
containers:
- image: docker.io/bitnami/dokuwiki:latest
name: dokuwiki
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
- containerPort: 8443
volumeMounts:
- mountPath: /bitnami/dokuwiki
name: dokuwiki-data
volumes:
- name: dokuwiki-data
persistentVolumeClaim:
claimName: nfs-claim-wiki
$ kubectl apply -f dokuwiki-deployment.yaml
deployment.apps/dokuwiki created
$ kubectl get all -n wiki-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/dokuwiki-744884c8b7-dm7vc 1/1 Running 0 48s 10.244.101.68 kube-worker-01.juntotelecom.com.br
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/dokuwiki 1/1 1 1 48s dokuwiki docker.io/bitnami/dokuwiki:latest app=dokuwiki
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/dokuwiki-744884c8b7 1 1 1 48s dokuwiki docker.io/bitnami/dokuwiki:latest app=dokuwiki,pod-template-hash=744884c8b7
apiVersion: v1
kind: Service
metadata:
labels:
app: dokuwiki
name: dokuwiki
namespace: wiki-system
spec:
clusterIP: fd00:0:0:100::3
ports:
- name: "80"
port: 80
targetPort: 8080
- name: "443"
port: 443
targetPort: 8443
selector:
app: dokuwiki
type: NodePort
status:
loadBalancer: {}
$ kubectl apply -f dokuwiki-service.yaml
service/dokuwiki created
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
creationTimestamp: null
name: dokuwiki
namespace: wiki
spec:
ingressClassName: nginx
rules:
- host: wiki.juntotelecom.com.br
http:
paths:
- backend:
service:
name: dokuwiki
port:
number: 8080
path: /
pathType: Prefix
status:
loadBalancer: {}
$ kubectl apply -f wiki-ingress.yaml
ingress.networking.k8s.io/dokuwiki created
$ kubectl get service -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
calico-apiserver calico-api ClusterIP 10.96.134.144 443/TCP 21h
calico-system calico-kube-controllers-metrics ClusterIP 10.96.248.255 9094/TCP 21h
calico-system calico-typha ClusterIP 10.96.247.112 5473/TCP 21h
default kubernetes ClusterIP 10.96.0.1 443/TCP 45h
ingress-nginx ingress-nginx-controller LoadBalancer fd00:0:0:100::1 2804:694:4c00:4007::115 80:30726/TCP,443:32525/TCP 14h
ingress-nginx ingress-nginx-controller-admission ClusterIP fd00:0:0:100::2 443/TCP 14h
kube-system kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP,9153/TCP 45h
wiki-system dokuwiki NodePort fd00:0:0:100::3 80:30772/TCP,443:31022/TCP 14h
wiki dokuwiki NodePort 10.96.162.196 80:30303/TCP,443:31771/TCP 39h
$ kubectl get service -n wiki-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dokuwiki NodePort fd00:0:0:100::3 80:30772/TCP,443:31022/TCP 14h
$ kubectl describe service dokuwiki -n wiki-system
Name: dokuwiki
Namespace: wiki-system
Labels: app=dokuwiki
Annotations:
Selector: app=dokuwiki
Type: NodePort
IP Family Policy: SingleStack
IP Families: IPv6
IP: fd00:0:0:100::3
IPs: fd00:0:0:100::3
Port: 80 80/TCP
TargetPort: 8080/TCP
NodePort: 80 30772/TCP
Endpoints: [fd00::33:2603:770f:59b3:71c4]:8080
Port: 443 443/TCP
TargetPort: 8443/TCP
NodePort: 443 31022/TCP
Endpoints: [fd00::33:2603:770f:59b3:71c4]:8443
Session Affinity: None
External Traffic Policy: Cluster
Events:
$ kubectl get ingress -n wiki-system
NAME CLASS HOSTS ADDRESS PORTS AGE
dokuwiki nginx wiki.juntotelecom.com.br 172.28.128.100 80 14h
$ kubectl describe ingress dokuwiki -n wiki-system
Name: dokuwiki
Labels:
Namespace: wiki-system
Address: 172.28.128.100
Default backend: default-http-backend:80 ()
Rules:
Host Path Backends
---- ---- --------
wiki.juntotelecom.com.br
/ dokuwiki:8080 ()
Annotations:
Events: