Hướng Dẫn Triển Khai Kubernetes Dashboard với Ingress trên Nginx
Trong một ngày Hà Nội mưa, thời tiết se lạnh, tôi ngồi suy nghĩ về tương lai và quyết định viết một bài hướng dẫn về cách triển khai Kubernetes Dashboard với Ingress trên Nginx. Hãy cùng nhau tìm hiểu cách làm này và tận hưởng những kết quả mà nó mang lại.
1. Cài Đặt Nginx Ingress
Để bắt đầu, bạn cần cài đặt Nginx Ingress Controller. Sử dụng các lệnh sau:
bash
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm search repo nginx
helm pull ingress-nginx/ingress-nginx
tar -zxvf ingress-nginx-4.11.3.tgz
helm -n <namespaces> install <release name> -f <value file> <helm chart>
helm -n ingress-nginx install ingress-nginx -f ingress-nginx/values.yaml ingress-nginx
Chỉnh Sửa File values.yaml
Mở file values.yaml
bằng lệnh:
bash
vim values.yaml
Tìm phần service và chỉnh sửa loại từ LoadBalancer
thành NodePort
, sau đó thêm các cổng cho NodePort
như sau:
yaml
http: "30080"
https: "30443"
2. Cài Đặt Nginx
Sử dụng lệnh sau để cài đặt Nginx:
bash
apt install nginx -y
3. Tạo File Cấu Hình cho Domain
Tạo một file cấu hình cho domain của bạn bằng lệnh:
bash
vim /etc/nginx/conf.d/dashboard.conf
Nội dung file sẽ như sau:
upstream k8s-cluster {
server 192.168.100.10:30443;
server 192.168.100.11:30443;
server 192.168.100.12:30443;
}
server {
listen 8000;
server_name product.co;
location / {
proxy_pass http://k8s-cluster;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4. Cài Đặt Kubernetes Dashboard
Thực hiện các lệnh sau để cài đặt Kubernetes Dashboard:
bash
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm update repo
helm repo list
Sau đó, kéo thiết lập Dashboard:
bash
helm pull repo kubernetes-dashboard/kubernetes-dashboard
tar -zxvf kubernetes-dashboard-7.10.0.tgz
Mở file values.yaml
:
bash
vim kubernetes-dashboard/values.yaml
Chỉnh sửa phần type
từ NodePort
sang ClusterIP
.
5. Tạo Service Account và Cluster Role Binding
Tạo một service account với tên dashboard-user
và thiết lập cluster role binding:
yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-user
namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
name: dashboard-user
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: "dashboard-user"
type: kubernetes.io/service-account-token
Mục đích của việc này là bảo vệ dữ liệu của cluster bạn. Kubernetes Dashboard yêu cầu xác thực qua Bearer Token.
6. Tạo Ingress cho Dashboard
Tạo file ingress-dashboard.yml
và áp dụng nó để truy cập Dashboard từ bên ngoài thông qua domain mà bạn đã chỉ định.
7. Truy Cập và Tận Hưởng
Thêm host
trên máy cá nhân của bạn và mở trình duyệt để truy cập vào Kubernetes Dashboard, nhập token để xác thực.
8. Khắc Phục Sự Cố
Nếu bạn gặp phải lỗi xác thực khi truy cập Dashboard, hãy chắc chắn rằng bạn đang sử dụng giao thức https
. Thay đổi địa chỉ truy cập nếu cần thiết và thử lại.
Hy vọng rằng bạn sẽ có những trải nghiệm thú vị khi làm việc với Kubernetes Dashboard và Ingress. Chúc các bạn cuối tuần vui vẻ!
source: viblo