Cách thiết lập Kubernetes Cluster trên AWS bằng Kops

theanh

Administrator
Nhân viên
Kops được sử dụng để đưa cụm Kubernetes lên theo cách dễ nhất có thể. Đây là một công cụ dòng lệnh được sử dụng để tạo Cụm Kubernetes. Kops chính thức hỗ trợ AWS trong khi GCP, DigitalOcean và OpenStack đang ở giai đoạn Beta. Kops cũng có thể tạo các tệp Terraform cho cấu hình cụm cần thiết. Người ta không chỉ có thể dễ dàng tạo cụm bằng Kops mà còn có thể sửa đổi, xóa và nâng cấp phiên bản Kubernetes trong cụm.

Trong bài viết này, chúng ta sẽ xem các bước để tạo cụm Kubernetes với 1 nút chính và 1 nút công nhân trên AWS. Trước khi tiến hành, chúng tôi cho rằng bạn đã quen thuộc với Kubernetes

Điều kiện tiên quyết​

  1. Tài khoản AWS (Tạo nếu bạn chưa có).
  2. EC2 Ubuntu 18.04 Instance (Nhấp vào đây để tìm hiểu cách tạo EC2 instance trên AWS).
  3. S3 Bucket (Nhấp vào đây để tìm hiểu cách tạo S3 Bucket trên AWS).
  4. Tên miền (Tìm kiếm "Cách mua tên miền trên AWS?" để hiểu các bước tạo tên miền trên AWS).
  5. Vai trò IAM có đủ quyền/quản trị viên (Nhấp vào đây để tìm hiểu cách tạo vai trò IAM trên AWS).

Chúng ta sẽ làm gì?​

  1. Đăng nhập vào AWS.
  2. Kiểm tra S3 Bucket, IAM Role.
  3. Gắn IAM Role vào phiên bản.
  4. Cài đặt Kubectl và Kops trên phiên bản EC2.
  5. Xác thực các quy tắc Recordset và vùng lưu trữ.
  6. Tạo cụm Kubernetes bằng Kops.
  7. Xóa cụm.

Đăng nhập vào AWS​

Nhấp vàođâyđể đến trang đăng nhập, tại đó bạn có thể nhập thông tin xác thực để vào tài khoản.



Sau khi đăng nhập thành công vào tài khoản AWS, bạn sẽ thấy AWS Management Console chính như sau.


Kiểm tra S3 Bucket, IAM Role​

Để tạo cụm bằng Kops, chúng ta cần một S3 bucket nơi Kops sẽ lưu trữ tất cả cấu hình cụm.

Kiểm tra bucket mà bạn muốn sử dụng để lưu trữ cấu hình Kops.



Xác minh xem vai trò IAM mà bạn sẽ sử dụng có đủ quyền/quản trị viên hay không. Kops không cần quyền quản trị, nếu bạn không biết nhiều về AWS IAM và quyền và không muốn gặp phải bất kỳ sự cố truy cập nào, bạn có thể sử dụng quyền quản trị.


Gắn Vai trò IAM vào phiên bản​

Sau khi có vai trò, hãy gắn vai trò đó vào phiên bản EC2 mà bạn sẽ sử dụng để thực thi các lệnh kops. Đi tới EC2 --> chọn phiên bản EC2 --> nhấp vào Hành động --> Bảo mật -- > Sửa đổi vai trò IAM.



Chọn vai trò IAM và lưu các thay đổi.


Cài đặt Kubectl và Kops trên phiên bản EC2​

Cho đến thời điểm này, bạn đã có một thùng S3 và một phiên bản EC2 với vai trò bắt buộc được đính kèm vào đó. Bây giờ hãy đăng nhập vào phiên bản EC2 mà bạn sẽ sử dụng để tạo cụm bằng Kops.

Bước tiếp theo là cài đặt Kubectl trên phiên bản EC2.

Thực hiện các lệnh sau để cài đặt kubectl trên Ubuntu Server

curl -LO "https://dl.k8s.io/release/$(curl -L -s

curl -LO "https://dl.k8s.io/$(curl -L -s

echo "$(<kubectl.sha256) kubectl" | sha256sum --check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

mkdir -p ~/.local/bin/kubectl

mv ./kubectl ~/.local/bin/kubectl

Kiểm tra phiên bản kubectl bằng lệnh sau.

phiên bản kubectl --client



Bây giờ bạn đã sẵn sàng cài đặt Kops trên cùng một phiên bản EC2.

Kiểm tra xem kops có tồn tại không, nếu không thì hãy cài đặt nó bằng các lệnh sau trên Ubuntu Server.

kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64

chmod +x kops-linux-amd64

sudo mv kops-linux-amd64 /usr/local/bin/kops

Bây giờ bạn sẽ có kops trên máy chủ.

kops


Xác thực các quy tắc Recordset và một vùng lưu trữ.​

Kops cần các bản ghi DNS cần thiết để xây dựng một cụm.

Ở đây tôi có một vùng lưu trữ thứ hai trong route53.



Ngoài ra, tôi đã sao chép các máy chủ NS của mySUBDOMAIN vào miền CHA trong Route53.

Đi đến Route53 -- >Vùng lưu trữ -- >Đi đến vùng lưu trữ mặc định chính -- > Kiểm tra tập bản ghi và xác minh giá trị của nó.


Tạo cụm Kubernetes bằng Kops​

Bây giờ chúng ta đã sẵn sàng để tạo cụm. Trước khi tạo cụm, hãy xem chúng ta nhận được gì khi thử liệt kê các cụm.

kops get clusters

Lệnh trên sẽ không thành công vì nó cần một thùng S3 làm tham số.

kops get clusters --state s3://kops.devopslee.com

Vì không có cụm nào hiện có nên lệnh sẽ không liệt kê bất cứ thứ gì.

Nếu bạn không muốn cung cấp tên thùng s3 làm tham số cho lệnh, bạn có thể xuất giá trị của nó trong thiết bị đầu cuối vào biến "KOPS_STATE_STORE".

export KOPS_STATE_STORE=s3://kops.devopslee.com

Lần này bạn không cần chỉ định nhóm S3 trong lệnh

kops get clusters



Bây giờ, chúng ta hãy thử tạo một cụm với-
  1. 1 nút chính với phiên bản typet2.medium
  2. 1 nút công nhân với phiên bản typet2.micro
  3. Vùng khả dụng asus-east-1a,us-east-1b,us-east-1c
kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c

Lệnh trên sẽ báo lỗi vì chúng ta chưa chỉ định bất kỳ khóa ssh nào.

Kiểm tra xem bạn có cặp khóa trong phiên bản của mình không.

ls -l ~/.ssh/

Nếu bạn không có bất kỳ cặp khóa nào, bạn có thể tạo cặp khóa đó bằng lệnh sau.

ssh-keygen



Lần này, nếu bạn thực thi lại lệnh create, lệnh sẽ không thành công vì S3 đã được lệnh trước đó cập nhật với cấu hình cụm ngay cả khi lệnh không thành công do không có khóa ssh.

kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c --ssh-public-key ~/.ssh/id_rsa.pub

Vậy thì, hãy xóa cấu hình cụm và tạo lại cụm bằng khóa ssh.

kops delete cluster --name kops.devopslee.com --state s3://kops.devopslee.com --yes



Lần này chúng ta sẽ truyền khóa công khai ssh trong khi tạo cụm.

kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c --ssh-public-key ~/.ssh/id_rsa.pub



Đầu tiên, clusterconfiguration sẽ được tạo.



Bây giờ, chúng ta đã có cấu hình cụm. Nếu muốn thay đổi bất kỳ cấu hình nào, chúng ta có thể thực hiện, nếu không, chúng ta có thể tiến hành tạo cụm. Bạn có thể vào thùng S3 và xem cấu hình cụm trong đó.



Lần này, bạn sẽ thấy cụm đã khả dụng.

kops get cluster

Nhưng các tài nguyên vẫn chưa được tạo.

Để tạo các tài nguyên ngay lập tức, chúng ta cần cập nhật cụm với tùy chọn --yes cho lệnh.

kops update cluster --name kops.devopslee.com --yes



Việc tạo cụm sẽ mất một thời gian. Bạn có thể xác thực trạng thái của cụm bằng lệnh "validate" sau.

kops validate cluster --wait 10m



Sau khi tất cả các tài nguyên cụm được tạo, cụm sẽ sẵn sàng để sử dụng.



Khi các phiên bản EC2 đã sẵn sàng, kops sẽ cập nhật vùng lưu trữ bằng các bản ghi A chứa IP của máy chủ chính.



Bây giờ bạn đã sẵn sàng để sử dụng cụm. Để kiểm tra các pod hiện có trong không gian tên mặc định, hãy thực hiện lệnh sau.

kubectl get pods

Bạn thậm chí có thể kiểm tra các pod từ tất cả các không gian tên

kubectl get pods -A

Kiểm tra các nút trong cụm.

kubectl get nodes

Để lấy thêm thông tin chi tiết về các nút, hãy sử dụng -o wide trong lệnh.

kubectl get nodes -o wide




Xóa cụm​

Nếu bạn không cần cụm nữa, bạn có thể dễ dàng xóa cụm bằng Kops.

kops get cluster

Bạn chỉ cần thực hiện một lệnh duy nhất.

kopsdelete cluster --name kops.devopslee.com --state s3://kops.devopslee.com --yes



Kops sẽ xóa tất cả các tài nguyên mà nó đã tạo cho cụm để cụm hoạt động đầy đủ


Kết luận​

Trong bài viết này, chúng ta đã xem tất cả các bước để tạo cụm Kubernetes bằng Kops. Chúng tôi thấy rằng Kops cần một miền để tạo một cụm chức năng đầy đủ. Chúng tôi thấy việc tạo và xóa một cụm bằng Kops dễ dàng như thế nào.
 
Back
Bên trên