User Tools

Site Tools


wikiv3:wiki_kube_nfs

Dokuwiki nfs dynamic

$ kubectl create namespace wiki-system
namespace/wiki-system created
claim-nfs.yaml
---
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:          <none>
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:   <none>
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:        <none>
$ 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:        <none>
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:       <none>
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
dokuwiki-deployment.yaml
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   <none>           <none>
 
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
dokuwiki-service.yaml
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
wiki-ingress.yaml
---
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     <none>                    443/TCP                      21h
calico-system      calico-kube-controllers-metrics      ClusterIP      10.96.248.255     <none>                    9094/TCP                     21h
calico-system      calico-typha                         ClusterIP      10.96.247.112     <none>                    5473/TCP                     21h
default            kubernetes                           ClusterIP      10.96.0.1         <none>                    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   <none>                    443/TCP                      14h
kube-system        kube-dns                             ClusterIP      10.96.0.10        <none>                    53/UDP,53/TCP,9153/TCP       45h
wiki-system        dokuwiki                             NodePort       fd00:0:0:100::3   <none>                    80:30772/TCP,443:31022/TCP   14h
wiki               dokuwiki                             NodePort       10.96.162.196     <none>                    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   <none>        80:30772/TCP,443:31022/TCP   14h
$ kubectl describe service dokuwiki -n wiki-system
Name:                     dokuwiki
Namespace:                wiki-system
Labels:                   app=dokuwiki
Annotations:              <none>
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:                   <none>
$ 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:           <none>
Namespace:        wiki-system
Address:          172.28.128.100
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host                      Path  Backends
  ----                      ----  --------
  wiki.juntotelecom.com.br
                            /   dokuwiki:8080 ()
Annotations:                <none>
Events:                     <none>
wikiv3/wiki_kube_nfs.txt · Last modified: by 127.0.0.1