Nội dung được trích dẫn từ tài liệu kỹ thuật chính thức của Longhorn 1.1.2.
Longhorn có thể được cài đặt trong môi trường air gap thông qua tệp manifest, Helm chart hoặc giao diện Rancher UI.
Mục lục
- Yêu cầu trước
- Sử dụng Manifest File
- Sử dụng Helm Chart
- Sử dụng Rancher App
- Khắc phục sự cố
Yêu cầu trước
- Đẩy các hình ảnh (images) thành phần Longhorn vào registry riêng của bạn.
- Đẩy các hình ảnh thành phần Kubernetes CSI driver vào registry riêng của bạn.
Lưu ý:
- Danh sách đầy đủ các hình ảnh cần thiết nằm trong tệp longhorn-images.txt. Đầu tiên, tải xuống danh sách hình ảnh bằng lệnh sau:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn-images.txt
Ta cung cấp một tập lệnh save-images.sh để nhanh chóng kéo danh sách hình ảnh trong tệp longhorn-images.txt. Nếu bạn chỉ định tên tệp --images dưới dạng tar.gz, tập lệnh sẽ lưu tất cả các hình ảnh vào tên tệp được cung cấp. Ví dụ sau đây sẽ kéo và lưu các hình ảnh Longhorn vào tệp longhorn-images.tar.gz:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/save-images.sh
chmod +x save-images.sh
./save-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz
Tập lệnh load-images.sh được cung cấp để đẩy các hình ảnh Longhorn vào registry riêng của bạn. Nếu bạn chỉ định tên tệp --images dưới dạng tar.gz, tập lệnh sẽ tải các hình ảnh từ tệp tar và đẩy chúng. Ví dụ sau đây sẽ đẩy các hình ảnh từ tệp longhorn-images.tar.gz lên registry riêng của bạn:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/load-images.sh
chmod +x load-images.sh
./load-images.sh --image-list longhorn-images.txt --images longhorn-images.tar.gz --registry <YOUR-PRIVATE-REGISTRY>
Sử dụng Manifest File
- Lấy tệp manifest deployment của Longhorn:
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn.yaml
- Tạo namespace Longhorn:
kubectl create namespace longhorn-system
- Nếu registry riêng yêu cầu xác thực, tạo secret docker-registry trong namespace longhorn-system:
kubectl -n longhorn-system create secret docker-registry <SECRET_NAME> --docker-server=<REGISTRY_URL> --docker-username=<REGISTRY_USER> --docker-password=<REGISTRY_PASSWORD>
Thêm tên secret <SECRET_NAME> vào trường imagePullSecrets.name trong các tài nguyên sau:
- Deployment
longhorn-driver-deployer - DaemonSet
longhorn-manager - Deployment
longhorn-ui
Ví dụ:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: longhorn-ui
name: longhorn-ui
namespace: longhorn-system
spec:
replicas: 1
selector:
matchLabels:
app: longhorn-ui
template:
metadata:
labels:
app: longhorn-ui
spec:
containers:
- name: longhorn-ui
image: longhornio/longhorn-ui:v0.8.0
ports:
- containerPort: 8000
env:
- name: LONGHORN_MANAGER_IP
value: "http://longhorn-backend:9500"
imagePullSecrets:
- name: <SECRET_NAME>
serviceAccountName: longhorn-service-account
- Chỉnh sửa tệp manifest:
- Chỉnh sửa biến môi trường của các thành phần Kubernetes CSI driver trong Deployment
longhorn-driver-deployerđể chỉ đến hình ảnh từ registry riêng của bạn:
- name: CSI_ATTACHER_IMAGE
value: <REGISTRY_URL>/csi-attacher:<CSI_ATTACHER_IMAGE_TAG>
- name: CSI_PROVISIONER_IMAGE
value: <REGISTRY_URL>/csi-provisioner:<CSI_PROVISIONER_IMAGE_TAG>
- name: CSI_NODE_DRIVER_REGISTRAR_IMAGE
value: <REGISTRY_URL>/csi-node-driver-registrar:<CSI_NODE_DRIVER_REGISTRAR_IMAGE_TAG>
- name: CSI_RESIZER_IMAGE
value: <REGISTRY_URL>/csi-resizer:<CSI_RESIZER_IMAGE_TAG>
- name: CSI_SNAPSHOTTER_IMAGE
value: <REGISTRY_URL>/csi-snapshotter:<CSI_SNAPSHOTTER_IMAGE_TAG>
- Chỉnh sửa hình ảnh Longhorn để chỉ đến hình ảnh từ registry riêng của bạn:
image: <REGISTRY_URL>/longhorn-ui:<LONGHORN_UI_IMAGE_TAG>
- Triển khai Longhorn với tệp manifest đã chỉnh sửa:
kubectl apply -f longhorn.yaml
Sử dụng Helm Chart
Trong phiên bản v1.1.2, Longhorn tự động thêm tiền tố <REGISTRY_URL> cho các hình ảnh. Bạn chỉ cần thiết lập tham số registryUrl để lấy hình ảnh từ registry riêng của mình.
Lưu ý: Khi bạn thiết lập registryUrl là registry riêng của mình, Longhorn sẽ cố gắng chỉ lấy hình ảnh từ registry đó. Đảm bảo rằng tất cả các hình ảnh thành phần Longhorn đều có sẵn trong registry này.
Sử dụng tên hình ảnh mặc định
Nếu bạn giữ nguyên tên hình ảnh theo khuyến nghị, chỉ cần thực hiện các bước sau:
- Clone kho lưu trữ Longhorn:
git clone https://github.com/longhorn/longhorn.git
- Trong tệp
chart/values.yaml:
- Thiết lập URL registry riêng. Nếu registry yêu cầu xác thực, hãy chỉ định user, password và secret của registry riêng.
defaultSettings:
registrySecret: <SECRET_NAME>
privateRegistry:
registryUrl: <REGISTRY_URL>
registryUser: <REGISTRY_USER>
registryPasswd: <REGISTRY_PASSWORD>
registrySecret: <REGISTRY_SECRET_NAME>
Sử dụng tên hình ảnh tùy chỉnh
Nếu muốn sử dụng tên hình ảnh tùy chỉnh, hãy làm theo các bước sau:
- Clone kho lưu trữ Longhorn:
git clone https://github.com/longhorn/longhorn.git
- Trong tệp
chart/values.yaml:
- Không bao gồm tiền tố registry riêng vì nó sẽ tự động được thêm vào.
image:
longhorn:
engine:
repository: longhornio/longhorn-engine
tag: <LONGHORN_ENGINE_IMAGE_TAG>
manager:
repository: longhornio/longhorn-manager
tag: <LONGHORN_MANAGER_IMAGE_TAG>
ui:
repository: longhornio/longhorn-ui
tag: <LONGHORN_UI_IMAGE_TAG>
instanceManager:
repository: longhornio/longhorn-instance-manager
tag: <LONGHORN_INSTANCE_MANAGER_IMAGE_TAG>
shareManager:
repository: longhornio/longhorn-share-manager
tag: <LONGHORN_SHARE_MANAGER_IMAGE_TAG>
csi:
attacher:
repository: longhornio/csi-attacher
tag: <CSI_ATTACHER_IMAGE_TAG>
provisioner:
repository: longhornio/csi-provisioner
tag: <CSI_PROVISIONER_IMAGE_TAG>
nodeDriverRegistrar:
repository: longhornio/csi-node-driver-registrar
tag: <CSI_NODE_DRIVER_REGISTRAR_IMAGE_TAG>
resizer:
repository: longhornio/csi-resizer
tag: <CSI_RESIZER_IMAGE_TAG>
snapshotter:
repository: longhornio/csi-snapshotter
tag: <CSI_SNAPSHOTTER_IMAGE_TAG>
- Cài đặt Longhorn:
- Helm2:
helm install ./chart --name longhorn --namespace longhorn-system
- Helm3:
kubectl create namespace longhorn-system
helm install longhorn ./chart --namespace longhorn-system
Sử dụng Rancher App
Nếu bạn giữ nguyên tên hình ảnh theo khuyến nghị, chỉ cần thực hiện các bước sau:
- Trong phần
Private Registry Settings, chỉ định:
- URL registry riêng
- User registry riêng
- Password registry riêng
- Tên secret registry riêng
Longhorn sẽ sử dụng thông tin này để tự động tạo secret và sử dụng nó để lấy hình ảnh từ registry riêng của bạn.
Khắc phục sự cố
Nếu người dùng quên gửi secret để xác thực với registry riêng, DaemonSet longhorn-manager sẽ không thể được tạo.
- Tạo Kubernetes secret:
kubectl -n longhorn-system create secret docker-registry <SECRET_NAME> --docker-server=<REGISTRY_URL> --docker-username=<REGISTRY_USER> --docker-password=<REGISTRY_PASSWORD>
- Tạo đối tượng setting
registry-secretthủ công:
apiVersion: longhorn.io/v1beta1
kind: Setting
metadata:
name: registry-secret
namespace: longhorn-system
value: <SECRET_NAME>
Áp dụng:
kubectl apply -f registry-secret.yml
- Xóa và cài đặt lại Longhorn:
- Helm2:
helm uninstall ./chart --name longhorn --namespace longhorn-system
helm install ./chart --name longhorn --namespace longhorn-system
- Helm3:
helm uninstall longhorn ./chart --namespace longhorn-system
helm install longhorn ./chart --namespace longhorn-system