TL;DL
LonghornがインストールされているK8sクラスタ内のノードに入って
sudo apt install nfs-common
を実行
Longhornのinstall
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.3.0/deploy/longhorn.yaml
LonghornUIにアクセスできるようにingressの設定
USER=<USERNAME_HERE>; PASSWORD=<PASSWORD_HERE>; echo "${USER}:$(openssl passwd -stdin -apr1 <<< ${PASSWORD})" >> auth
kubectl -n longhorn-system create secret generic basic-auth --from-file=auth
longhorn-ingress.ymlを作成
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: longhorn-ingress
namespace: longhorn-system
annotations:
# type of authentication
nginx.ingress.kubernetes.io/auth-type: basic
# prevent the controller from redirecting (308) to HTTPS
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
# name of the secret that contains the user/password definitions
nginx.ingress.kubernetes.io/auth-secret: basic-auth
# message to display with an appropriate context why the authentication is required
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required '
# custom max body size for file uploading like backing image uploading
nginx.ingress.kubernetes.io/proxy-body-size: 10000m
spec:
rules:
- http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: longhorn-frontend
port:
number: 80
kubectl -n longhorn-system apply -f longhorn-ingress.yml
K8sクラスタ内のノードにアクセスしてnfs-commonをinstall
sudo apt install nfs-common
PVC作成例
Longhornがinstallされている場合はPVCを作成すればPVCで要求したPVを自動作成してくれるのでPVCのみを記述すればOK
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-test
labels:
<PVと接続したいPodのラベル>
spec:
storageClassName: longhorn
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi