[Ansible] Cài đặt AWX Operator trên Kubernetes – Phần 9
Xin chào tất cả bạn đọc, hôm nay hãy để Nhân Hòa giới thiệu về Ansible AWX operator cho Kubernetes với Operator SDK và Ansible.
I. Mục đích
Operator này giúp đem lại 1 cách thức triển khai AWX trên Kubernetes-native thông qua 1 AWX Custom Resource Definition (CRD).
II. Cài đặt
1. Tạo 1 minikube cluster
Nếu bạn đang không có sẵn 1 K8s cluster thì awx-operator
cũng có thể triển khai trên Minikube cluster cho mục đích thử nghiệm. Để biết cách thức triển khai K8s cluster thông qua Minikube, hãy xem tại đây.
2. Cài đặt cơ bản
Khi bạn đã có K8s cluster rồi, bạn có thể triển khai AWX Operator sử dụng Kustomize, từ phiên bản 1.14 của kubectl thì kustomize đã trở thành 1 tính năng built-in, do đó không cần cài đặt gì thêm.
Đầu tiên, tạo 1 file gọi là kustomization.yaml
với nội dung như sau:
apiVersion: kustomize.config.k8s.io/v1
kind: Kustomization
resources:
# Ta có thể tìm kiếm phiên bản mới nhất ở https://github.com/ansible/awx-operator/releases
- github.com/ansible/awx-operator/config/default?ref=2.0.1
images:
- name: quay.io/ansible/awx-operator
newTag: 2.0.1
namespace: awx
Áp dụng kustomization
kubectl apply -k .
Tiếp đến, ta hãy tạo 1 tệp tên awx-demo.yaml
trong cùng folder và có nội dung như sau
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
Thêm file vừa tạo vào anh sách resources
trong tệp kustomization.yaml
...
resources:
- github.com/ansible/awx-operator/config/default?ref=<tag>
# Thêm dòng dưới đây vào
- awx-demo.yaml
...
Cuối cùng, áp dụng thay đổi để tạo 1 AWX instance mới trong cluster:
kubectl apply -k . -n awx
Sau vài phút, 1 AWX instance mới sẽ được triển khai. Ta có thể nhìn vào pod logs để biết quá trình cài đặt diễn ra đến đâu:
kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager -n awx
Ta có thể kiểm tra trạng thái của pods và services do awx operator tạo ra, nếu là running
tức là quá trình khởi tạo đã hoàn tất
kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -n awx
kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator" -n awx
Quá trình deploy instance có thể tốn nhiều thời gian, để kiểm tra tiến trình này đã hoàn thành hay chưa, hãy thực hiện lệnh
kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"
kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator" -n awx
Bây giờ, hãy lấy thông tin đăng nhập bằng cách chạy lệnh sau
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo
Như vậy thông tin để đăng nhập AWX UI sẽ là admin
và kết quả trả về của lệnh trên. Còn đường dẫn sẽ là <Cluster_IP>:<NodePort>
trong đó Cluster IP là bất kỳ IP nào thuộc cluster, còn NodePort là Port của awx-demo-service
có được khi chúng ta sử dụng lệnh get svc
3. Cài đặt AWX với Helm
AWX Operator cũng có thể cài đặt sử dụng Helm trên 1 K8s cluster có sẵn.
Việc cài đặt với helm rất đơn giản, hãy sử dụng các lệnh sau (yêu cầu helm đã được cài đặt trên cluster)
helm repo add awx-operator https://ansible.github.io/awx-operator/
helm repo update
helm search repo awx operator
helm install -n awx --create namespace my-awx-operator awx-operator/awx-operator
III. Tổng kết
Trong bài viết này, Nhân Hòa đã giới thiệu đến các bạn những bước đơn giản nhất để cài đặt AWX trên 1 Kubernetes cluster.
Mình là Vương Bảo Trung, đang là thực tập và học việc tại Nhân Hòa, rất mong các bạn tiếp tục theo dõi bài viết của mình tại Wiki Nhân Hòa.
Chúc các bạn luôn may mắn và thành công trong công việc!