Hướng dẫn eks commands cheat sheet - Bảng trò chuyện lệnh X
Nhiều quy trình của Hướng dẫn sử dụng này Sử dụng các công cụ dòng lệnh sau: Show
Có hai hướng dẫn bắt đầu có sẵn để tạo cụm Kubernetes mới với các nút trong Amazon EKS:
Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. For more information see the AWS CLI version 2 installation instructions and migration guide. [ aws ]aws ] Description¶Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on Amazon Web Services without needing to stand up or maintain your own Kubernetes control plane. Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.
Available Commands¶
Article đi kèm với Youtube Video. Mong các bạn Subcribe và Share để giúp mình có động lực hơn nữa nha Nếu bạn cảm thấy bài blog có ích hãy Vote nha!Youtube Video. Mong các bạn Subcribe và Share để giúp mình có động lực hơn nữa nha Nếu bạn cảm thấy bài blog có ích hãy Vote nha!Mấy video đầu tiên thường nhiều lỗi nên mình rất mong các bạn góp ý để mình cải thiện nha. Hôm nay, mình sẽ hướng dẫn cài đặt một Kubernetes Cluster đơn giản trên AWS EKS (Elastic Kubernetes Service). Sau đó, mình sẽ deploy NGINX Web Server trên cluster này.Kubernetes Cluster đơn giản trên AWS EKS (Elastic Kubernetes Service). Sau đó, mình sẽ deploy NGINX Web Server trên cluster này. Các command mà mình sử dụng trong video này được chạy trong môi trường máy ảo Vagrant Ubuntu 18. Tuy nhiên, bạn hoàn toàn có thể tham khảo để cài đặt trên các môi trường khác Macbook và Windows.Vagrant Ubuntu 18. Tuy nhiên, bạn hoàn toàn có thể tham khảo để cài đặt trên các môi trường khác Macbook và Windows. Amazon cũng có document hướng dẫn trên trang chủ nhưng viết cách hơi rườm rà và khó hiểu. Bạn có thể tham khảo ở đây. Elastic Kubernetes Service (EKS) là một dịch vụ trên AWS để deploy, quản lý và scale các application chạy bằng container sử dụng Kubernetes. Nếu bạn hoàn toàn chưa biết gì về Kubernetes, bạn có thể đọc bài đầu tiên của mình hoặc thử google về Kubernetes nha . Okay vậy chúng ta hãy cùng nhau bắt đầu !!! Trước khi bắt đầuĐể sử dụng AWS EKS, bạn sẽ cần phải chuẩn bị và cài đặt những thứ sau:
Tài khoản AWSkubectlAmazon Web Services và đăng ký. AWS CLI: eksctl kubectlAWS CLI là command line tool để thao tác, giao tiếp với kubernetes cluster. Để cài đặt kubectl, bạn có thể làm theo hướng dẫn trên document của AWS. (Bạn cũng có thể làm theo hướng dẫn trên trang chủ của kubernetes) eksctlAWS EKS thì sẽ như sau: Bước đầu tiên mà bạn cần làm là đăng ký một tài khoản AWS mới. Nếu bạn đã có tài khoản AWS thì bạn có thể sử dụng luôn. Để tạo tài khoản AWS, bạn có thể đăng nhập vào trang chủ của Amazon Web Services và đăng ký.kubectl từ Amazon S3
Có một điểm duy nhất mà bạn cần lưu ý: Khi đăng ký thì sẽ cần điền thông tin thẻ ghi nợ quốc tế (Credit Card hay Debit Card). Tuy nhiên, bạn cũng đừng lo lắng quá bởi vì bạn sẽ chỉ bị tính phí với các dịch vụ mà bạn sử dụng. Nếu bạn không dùng gì cũng bạn sẽ không mất tiền.
Tài khoản mới còn được sử dụng Free Plan nên cứ thoải mái lên nhé.PATH rồi). Để dời vào 5 thì sẽ cần sudo.
kubectl là command line tool để thao tác, giao tiếp với kubernetes cluster. Để cài đặt kubectl, bạn có thể làm theo hướng dẫn trên document của AWS. (Bạn cũng có thể làm theo hướng dẫn trên trang chủ của kubernetes)
Nếu làm theo hướng dẫn trên AWS EKS thì sẽ như sau:kubectl. AWS CLIeksctl Bước đầu tiên mà bạn cần làm là đăng ký một tài khoản AWS mới. Nếu bạn đã có tài khoản AWS thì bạn có thể sử dụng luôn. Để tạo tài khoản AWS, bạn có thể đăng nhập vào trang chủ của Amazon Web Services và đăng ký.
Có một điểm duy nhất mà bạn cần lưu ý: Khi đăng ký thì sẽ cần điền thông tin thẻ ghi nợ quốc tế (Credit Card hay Debit Card). Tuy nhiên, bạn cũng đừng lo lắng quá bởi vì bạn sẽ chỉ bị tính phí với các dịch vụ mà bạn sử dụng. Nếu bạn không dùng gì cũng bạn sẽ không mất tiền.
eksctlBước đầu tiên mà bạn cần làm là đăng ký một tài khoản AWS mới. Nếu bạn đã có tài khoản AWS thì bạn có thể sử dụng luôn. Để tạo tài khoản AWS, bạn có thể đăng nhập vào trang chủ của Amazon Web Services và đăng ký.eksctl là một tiện ích command line để tạo và quản lý Kubernetes Cluster trên Amazon EKS. Có một điểm duy nhất mà bạn cần lưu ý: Khi đăng ký thì sẽ cần điền thông tin thẻ ghi nợ quốc tế (Credit Card hay Debit Card). Tuy nhiên, bạn cũng đừng lo lắng quá bởi vì bạn sẽ chỉ bị tính phí với các dịch vụ mà bạn sử dụng. Nếu bạn không dùng gì cũng bạn sẽ không mất tiền.eksctl mới nhất bằng command sau:]
Tài khoản mới còn được sử dụng Free Plan nên cứ thoải mái lên nhé.eksctl binary file vào 5.
kubectl là command line tool để thao tác, giao tiếp với kubernetes cluster. Để cài đặt kubectl, bạn có thể làm theo hướng dẫn trên document của AWS. (Bạn cũng có thể làm theo hướng dẫn trên trang chủ của kubernetes)
Nếu làm theo hướng dẫn trên AWS EKS thì sẽ như sau: Đầu tiên là tải Binary File kubectl từ Amazon S3Tiếp theo, thêm quyền thực thi cho binary file kubectl sử dụng command chmod.AWS CLI, thì bạn sẽ cần phải chuẩn bị 3 thứ:
Mặc dù bạn có thể sử dụng giao diện quản lý AWS để tạo EKS Cluster, nhưng tốt nhất bạn hãy tập sử dụng AWS CLI. Để cài đặt phiên bản AWS CLI mới nhất bạn có thể tham khảo document hướng dẫn trên AWS. (Tham khảo: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.htmll). Cài đặt khá đơn giản, đầu tiên là tài file zip của AWS CLI sau đó giải nén và cài đặt.user mới. Để kiểm tra, sử dụng command aws version Bạn có thể tham khảo cách cài đặt trên trang chủ của eksctl eksctl là một tiện ích command line để tạo và quản lý Kubernetes Cluster trên Amazon EKS.Administrator Access cho User này Lưu ý: Đối với môi trường production thì bạn không nên làm gán quyền admin như này mà phải giới hạn permission của từng User. Để cài đặt, mình sẽ tải phiên bản eksctl mới nhất bằng command sau:]Access Key ID và Secret Access Key Tiếp theo là di chuyển eksctl binary file vào 5.
Để configure AWS CLI, thì bạn sẽ cần phải chuẩn bị 3 thứ: 0Access Key IDAWS CLI. Secret Access KeyIAM PermissionEKS Cluster, mình cần phải lưu ý các bạn một chút
Để setup 3 thông tin này mình mở giao diện AWS Management Console. Đầu tiên mình sẽ cần phải tạo một user mới. cung cấp ba option để deploy Kubernetes vào EKS:
Tiếp theo mình sẽ chuyển qua Terminal để chạy command aws configureOption 2. Đầu tiên là nhập Access Key ID, sau đó là Secret Access KeySSH key để có thể access vào EC2 Node trong Cluster khi cần thiết (Đây cũng là best practices mà Google khuyên các bạn làm theo). Mình đang ở Tokyo nên phần Default Region thì mình sẽ điền là ap-northeast-1 tương ứng với Tokyo. Nếu bạn ở VN thì bạn cũng có thể dùng region này. 1Output Format thì mình sẽ dùng json.k8s-demo và sẽ lưu kết quả vào k8s-demo.pem file. Để kiểm tra xem mình configure thành công hay chưa thì mình sẽ sử dụng command:k8s-demo.pem sẽ trông tương tự như sau: Tiếp theo, mình sẽ thay đổi permission của file k8s-demo.pem bằng command 1k8s-demo.pem bằng command 1 2Để tạo EKS Cluster và các EC2 Node mình sử dụng command sau: 3Khi bạn chạy command này, thì eksctl sẽ sử dụng AWS CloudFormation để tạo các infrastructure cần thiết và setup Master Node (Control Plane). Khi Master Node đã đi vào hoạt động, thì 2 sẽ tiếp tục tạo một Node Group để chạy các EC2 Instance. Sau đó các EC2 Instance này sẽ được config và tự động tham gia vào cluster.AWS CloudFormation để tạo các infrastructure cần thiết và setup Master Node (Control Plane). Khi
Master Node đã đi vào hoạt động, thì 2 sẽ tiếp tục tạo một Node Group để chạy các EC2 Instance. Sau đó các EC2 Instance này sẽ được config và tự động tham gia vào cluster.Mặc định: 2 sẽ tạo 2 Worker Node 4 để tạo EKS Cluster ( 4 khá rẻ và phổ biến) **Command này chạy khá lâu, sẽ tốn tầm 10-15 phút. **Worker Node 4 để tạo EKS Cluster ( 4 khá rẻ và phổ biến) **Command này chạy khá lâu, sẽ tốn tầm 10-15 phút. **Trong quá trình chờ, Bạn có thể sử dụng giao diện quản lý AWS CloudFormation kiểm tra trạng thái. Sau khi thành công mình sẽ có một EKS Cluster có tên là k8s-demo. EKS Cluster có tên là k8s-demo. Để kiểm tra,, mình sẽ sử dụng kubectl: 4Vậy là mình đã tạo thành công một EKS cluster!!!EKS cluster!!! 3. Deploy NGINX Web Server vào EKS ClusterTiếp theo, mình sẽ deploy NGINX Web Server vào EKS Cluster mình vừa tạo. Để deploy, đầu tiên mình sẽ chạy command sau:NGINX Web Server vào EKS Cluster mình vừa tạo. Để deploy, đầu tiên mình sẽ chạy command sau: 5Deployment này mặc định sẽ chỉ chạy 1 Pod NGINX. Mình sẽ scale lên thành 5 Pod NGINX như sau: 6Để có thể truy cập NGINX từ bên ngoài EKS cluster, chúng ta sẽ phải deploy một LoadBalancer Service vào cluster bằng command sau:NGINX từ bên ngoài EKS cluster, chúng ta sẽ phải deploy một LoadBalancer Service vào cluster bằng command sau: 7
Để xem thông tin về LoadBalancer trên, mình sẽ chạy command sau:LoadBalancer trên, mình sẽ chạy command sau: 8Nếu bạn chạy command này sớm quá, Bạn sẽ thấy cột EXTERNAL-IP hiện là 6. Bạn sẽ phải chờ một vài phút để ELB được tạo. Sau đó bạn sẽ thấy một URL khá dài như sau (URL của bạn sẽ khác so với hình nhé) EXTERNAL-IP hiện là 6. Bạn sẽ phải chờ một vài phút để ELB được tạo. Sau đó bạn sẽ
thấy một URL khá dài như sau (URL của bạn sẽ khác so với hình nhé)
Đây sẽ là URL để bạn truy cập NGINX Web Server mà bạn vừa deploy. Okay, mình sẽ mở browser và truy cập thử vào URL đó:NGINX Web Server mà bạn vừa deploy. Okay, mình sẽ mở browser và truy cập thử vào URL đó: Browser sẽ hiển thị: 7. Okay, vậy là mình đã deploy thành công NGINX Web Server vào EKS Cluster.EKS Cluster.4. Dọn dẹp AWS ResourcesBước cuối cùng, để tránh bị mất phí sử dụng, mình sẽ phải xóa các AWS resources đã sử dụng.AWS resources đã sử dụng. Đầu tiền là xóa EKS Cluster bằng command:EKS Cluster bằng command: 9
Và, tiếp theo là xóa EC2 KeyPair(EC2 Keypair thì không tốn tiền những mà mình cũng sẽ xóa luôn)EC2 KeyPair (EC2 Keypair thì không tốn tiền những mà mình cũng sẽ xóa luôn) 0Sau khi xóa, thì mình sẽ vào AWS Management Console để kiểm traAWS Management Console để kiểm tra
Kết thúcOkay, vậy là chúng ta đã cùng nhau cài đặt một Kubernetes Cluster trên Elastic Kubernetes Service (EKS). Đối với những bạn mới bắt đầu sử dụng AWS thì mình thấy để deploy một Kubernetes Cluster trên Amazon EKS khá rắc rối vì có nhiều thứ phải làm.Elastic Kubernetes Service (EKS). Đối với những bạn mới bắt đầu sử dụng AWS thì mình thấy để deploy một Kubernetes Cluster trên Amazon EKS khá rắc rối vì có nhiều thứ phải làm. Nếu bạn mới bắt đầu tìm hiểu Kubernetes, thì bạn có thể thử cài đặt trên localhost bằng minikube. Khi bạn đã sẵn sàng sử dụng Kubernetes trong môi trường production giải pháp tối ưu nhất là sử dụng Kubernetes Services từ các Cloud Provider.minikube. Khi bạn đã sẵn sàng sử dụng Kubernetes trong môi trường production giải pháp tối ưu nhất là sử dụng Kubernetes Services từ các Cloud Provider. Trong bài tiếp theo, mình sẽ tiếp tục hướng dẫn cài đặt Kubernetes Cluster trên hai Cloud Provider khác là - Microsoft Azure và Google Cloud PlatformMicrosoft Azure và Google Cloud Platform Hãy Subscribe Youtube Channel của mình và Share để ủng hộ mình nha ! Subscribe Youtube Channel của mình và Share để ủng hộ mình nha !Nếu bạn muốn mình làm thêm content nào về Kubernetes thì cứ để lại comment, mình sẽ cố gắng làm sớm nhất có thể.
|