1 - Cài đặt và cấu hình kubectl
Công cụ command-line trong Kubernetes, kubectl, cho phép bạn thực thi các câu lệnh trong Kubernetes clusters. Bạn có thể sử dụng kubectl để triển khai các ứng dụng, theo dõi và quản lý tài nguyên của cluster, và xem log. Để biết các thao tác của kubectl, truy cập tới Tổng quan về kubectl.
Trước khi bạn bắt đầu
Bạn cần phải sử dụng phiên bản kubectl sai lệch không quá một phiên bản với version của cluster. Ví dụ, một client v1.2 nên được hoạt động với master v1.1, v1.2 và v1.3. Sử dụng phiên bản mới nhất của kubectl giúp tránh được các vấn đề không lường trước được.
Cài đặt kubectl trên Linux
Cài đặt kubectl binary với curl trên Linux
-
Tải về phiên bản mới nhất với câu lệnh:
curl -LO https://dl.k8s.io/release/`curl -LS https://dl.k8s.io/release/stable.txt`/bin/linux/amd64/kubectl
Để tải về phiên bản cụ thể, hãy thay thế phần
$(curl -LS https://dl.k8s.io/release/stable.txt)
trong câu lệnh với một phiên bản cụ thể.Ví dụ như, để tải về phiên bản 1.29.2 trên Linux, hãy nhập như sau:
curl -LO https://dl.k8s.io/release/v1.29.2/bin/linux/amd64/kubectl
-
Tạo kubectl binary thực thi.
chmod +x ./kubectl
-
Đưa bản binary vào biến môi trường PATH của bạn.
sudo mv ./kubectl /usr/local/bin/kubectl
-
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Cài đặt kubectl sử dụng trình quản lý gói
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl
Cài đặt với snap
Nếu bạn đang sử dụng Ubuntu hoặc distro Linux khác hỗ trợ trình quản lý gói snap, thì kubectl đã có sẵn trong snap.
-
Chuyển sang user snap và thực thi câu lệnh cài đặt:
sudo snap install kubectl --classic
-
Kiểm tra phiên bản bạn vừa cài là mới nhất:
kubectl version
Cài đặt kubectl trên macOS
Cài đặt kubectl binary với curl trên macOS
-
Tải về phiên bản mới nhất:
curl -LO "https://dl.k8s.io/release/$(curl -LS https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
Để tải về phiên bản cụ thể, hãy thay thế phần
$(curl -LS https://dl.k8s.io/release/stable.txt)
trong câu lệnh với phiên bản cụ thể.Ví dụ, để tải về phiên bản 1.29.2 trên macOS, gõ:
curl -LO https://dl.k8s.io/release/v1.29.2/bin/darwin/amd64/kubectl
-
Tạo kubectl binary thực thi.
chmod +x ./kubectl
-
Đưa bản binary vào biến môi trường PATH của bạn.
sudo mv ./kubectl /usr/local/bin/kubectl
-
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Cài đặt với Homebrew trên macOS
Nếu bạn đang trên macOS và sử dụng trình quản lý gói Homebrew, bạn có thể cài đặt kubectl với Homebrew.
-
Chạy câu lệnh cài đặt:
brew install kubectl
hoặc
brew install kubernetes-cli
-
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Cài đặt với Macports trên macOS
Nếu bạn đang trên macOS và sử dụng trình quản lý gói Macports, bạn có thể cài đặt kubectl với Macports.
-
Chạy câu lệnh cài đặt:
sudo port selfupdate sudo port install kubectl
-
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Cài đặt kubectl trên Windows
Cài đặt kubectl binary với curl trên Windows
-
Tải về phiên bản mới nhất 1.29.2 từ đường dẫn này.
Hoặc nếu bạn đã cài đặt
curl
, hãy sử dụng câu lệnh sau:curl -LO https://dl.k8s.io/release/v1.29.2/bin/windows/amd64/kubectl.exe
Để tìm ra phiên bản ổn định mới nhất, hãy xem https://dl.k8s.io/release/stable.txt.
-
Đưa bản binary vào biến môi trường PATH của bạn.
-
Kiểm tra chắn chắn phiên bản
kubectl
giống với bản đã tải về:kubectl version
kubectl
riêng của nó vào PATH.
Nếu bạn đã cài đặt Docker Desktop trước đây, bạn có thể cần đặt đường dẫn PATH của bạn trước khi bản cài đặt Docker Desktop thêm 1 PATH vào hoặc loại bỏ kubectl
của Docker Desktop.
Cài đặt với Powershell từ PSGallery
Nếu bạn đang ở trên Windows và sử dụng trình quản lý gói Powershell Gallery, bạn có thể cài đặt và cập nhật kubectl với Powershell.
-
Thực thi các câu lệnh cài đặt sau (hãy đảm bảo bạn tự định nghĩa
DownloadLocation
):Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]
Lưu ý: Nếu bạn không định nghĩaDownloadLocation
,kubectl
sẽ được cài đặt ở thư mục temp của user.Bản cài đặt sẽ tạo ra
$HOME/.kube
và hướng dẫn để tạo ra file cấu hình -
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Lưu ý: Cập nhật của bản cài đặt sẽ được thực hiện khi chạy lại các câu lệnh từ bước 1.
Cài đặt trên Windows sử dụng Chocolatey hoặc Scoop
Để cài đặt kubectl trên Windows bạn có thể sử dụng trình quản lý gói Chocolatey hoặc bộ cài đặt câu lệnh Scoop.
choco install kubernetes-cli
scoop install kubectl
```
kubectl version
```
-
Di chuyển tới thư mục home của bạn:
cd %USERPROFILE%
-
Tạo thư mục
.kube
:mkdir .kube
-
Di chuyển tới thư mục
.kube
bạn vừa mới tạo:cd .kube
-
Cấu hình kubectl để sử dụng Kubernetes cluster từ xa:
New-Item config -type file
Lưu ý: Chỉnh sửa file cấu hình với trình soạn thảo văn bản, như là Notepad.
Tải xuống từ một phần của Google Cloud SDK
Bạn có thể cài đặt kubectl từ một phần của Google Cloud SDK.
-
Cài đặt Google Cloud SDK.
-
Thực thi câu lệnh cài đặt
kubectl
:gcloud components install kubectl
-
Kiểm tra chắc chắn rằng phiên bản bạn cài là mới nhất:
kubectl version
Xác minh cấu hình kubectl
Để kubectl tìm kiếm và truy cập Kubernetes cluster, nó cần một kubeconfig file, được tự động tạo ra khi bạn tạo mới một cluster sử dụng kube-up.sh hoặc triển khai thành công một Minikube cluster. Mặc định thì cấu hình của kubectl được xác định tại ~/.kube/config
.
Kiểm tra kubectl được cấu hình đúng bằng việc xem trạng thái của cluster:
kubectl cluster-info
Nếu bạn trông thấy một URL phản hồi, thì kubectl đã được cấu hình đúng để truy cập vào cluster của bạn.
Nếu bạn trông thấy một tin nhắn tương tự bên dưới, thì kuberctl chưa được cấu hình đúng hoặc chưa thể kết nối với Kubernetes cluster.
The connection to the server <server-name:port> was refused - did you specify the right host or port?
Ví dụ như, nếu bạn đang định chạy một Kubernetes cluster trên laptop của bạn (locally), bạn sẽ cần một công cụ như Minikube được cài trước đó và chạy lại các câu lệnh bên trên.
Nếu kubectl cluster-info trả về url nhưng bạn không thể truy cập vào cluster của bạn, thì hãy kiểm tra nó đã được cấu hình đúng hay chưa, bằng cách:
kubectl cluster-info dump
Các lựa chọn cấu hình kubectl
Kích hoạt shell autocompletion
kubectl cung cấp autocompletion hỗ trợ cho Bash and Zsh, giúp bạn giảm thiểu việc phải gõ nhiều câu lệnh.
Bên dưới đâu là các bước để thiết lập autocompletion cho Bash (bao gồm sự khác nhau giữa Linux và macOS) và Zsh.
Giới thiệu
Kubelet completion script cho Bash được tạo ra với câu lệnh kubectl completion bash
. Sau khi script được tạo ra, bạn cần source (thực thi) script đó để kích hoạt tính năng autocompletion.
Tuy nhiên, completion script phụ thuộc vào bash-completion, nên bạn phải cài đặt bash-completion trước đó (kiểm tra bash-completion tồn tại với câu lệnh type _init_completion
).
Cài đặt bash-completion
bash-completion được cung cấp bởi nhiều trình quản lý gói (xem tại đây). Bạn có thể cài đặt với lệnh apt-get install bash-completion
hoặc yum install bash-completion
.
Các lệnh trên tạo ra /usr/share/bash-completion/bash_completion
, đây là script chính của bash-completion. Tùy thuộc vào trình quản lý gói của bạn, mà bạn phải source (thực thi) file này trong file ~/.bashrc
.
Để tìm ra file này, reload lại shell hiện tại của bạn và chạy lệnh type _init_completion
. Nếu thành công, bạn đã thiết lập xong, không thì hãy thêm đoạn sau vào file ~/.bashrc
của bạn:
source /usr/share/bash-completion/bash_completion
Reload lại shell của bạn và xác nhận bash-completion được cài đặt đúng bằng lệnh type _init_completion
.
Kích hoạt kubectl autocompletion
Bây giờ bạn cần đảm bảo rằng kubectl completion script được sourced trên tất cả các session của shell. Có 2 cách để làm việc này:
-
Source script trong file
~/.bashrc
:echo 'source <(kubectl completion bash)' >>~/.bashrc
-
Thêm script vào thư mục
/etc/bash_completion.d
:kubectl completion bash >/etc/bash_completion.d/kubectl
-
Nếu bạn có một alias cho kubectl, bạn có thể thêm một shell completion nữa cho alias đó:
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc
/etc/bash_completion.d
.
Các cách trên đều hiệu quả tương đương nhau. Sau khi reload lại shell, kubectl autocompletion sẽ làm việc.
Giới thiệu
Kubectl completion script trên Bash được tạo ra bởi kubectl completion bash
. Source script này sẽ kích hoạt tính năng kubectl completion.
Tuy nhiên, kubectl completion script phụ thuộc vào bash-completion mà bạn cài trước đó.
Cài đặt bash-completion
Bạn có thể kiểm tra bash-completion v2 đã cài đặt trước đó chưa với lệnh type _init_completion
. Nếu chưa, bạn có thể cài đặt nó với Homebrew:
brew install bash-completion@2
Từ đầu ra của lệnh này, hãy thêm đoạn sau vào file ~/.bashrc
của bạn:
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
Tải lại shell của bạn và xác minh rằng bash-completion v2 được cài đặt chính xác chưa bằng lệnh type _init_completion
.
Kích hoạt kubectl autocompletion
Bây giờ bạn phải đảm bảo rằng kubectl completion script đã được sourced trong tất cả các phiên shell của bạn. Có nhiều cách để đạt được điều này:
-
Source completion script trong file
~/.bashrc
:echo 'source <(kubectl completion bash)' >>~/.bashrc
-
Thêm completion script vào thư mục
/usr/local/etc/bash_completion.d
:kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
-
Nếu bạn có alias cho kubectl, bạn có thể mở rộng shell completion để làm việc với alias đó:
echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc
-
Nếu bạn đã cài kubectl với Homebrew (như đã giới thiệu bên trên)) thì kubectl completion script sẽ có trong
/usr/local/etc/bash_completion.d/kubectl
. Trong trường hợp này thì bạn không cần làm gì cả.
BASH_COMPLETION_COMPAT_DIR
, đó là lý do tại sao hai phương thức sau hoạt động.
Trong mọi trường hợp, sau khi tải lại shell của bạn, kubectl completion sẽ hoạt động.
Kubectl completion script cho Zsh được tạo ra với lệnh kubectl completion zsh
. Source completion script trong shell của bạn sẽ kích hoạt kubectl autocompletion.
Để nó hoạt động cho tất cả các shell, thêm dòng sau vào file ~/.zshrc
:
source <(kubectl completion zsh)
Nếu bạn có alias cho kubectl, bạn có thể mở rộng shell completion để làm việc với alias đó:
echo 'alias k=kubectl' >>~/.zshrc
echo 'compdef __start_kubectl k' >>~/.zshrc
Sau khi tải lại shell, kubectl autocompletion sẽ hoạt động.
Nếu bạn nhận được lỗi complete:13: command not found: compdef
, thêm dòng sau vào đầu file ~/.zshrc
:
autoload -Uz compinit
compinit
Tiếp theo là gì
- Cài đặt Minikube
- Xem hướng dẫn bắt đầu để biết thêm về việc tạo cluster.
- Tìm hiểu cách khởi chạy và hiển thị ứng dụng của bạn.
- Nếu bạn cần quyền truy cập vào một cluster mà bạn không tạo, hãy xem tài liệu Sharing Cluster Access.
- Đọc tài liệu tham khảo của kubectl
2 - Cài đặt Minikube
Tài liệu này sẽ hướng dẫn các bạn cách cài đặt Minikube, một công cụ chạy một Kubernetes cluster chỉ gồm một node trong một máy ảo (VM) trên máy tính của bạn.
Trước khi bạn bắt đầu
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên Linux không, chạy lệnh sau và chắc chắn rằng kết quả trả về là non-empty:
grep -E --color 'vmx|svm' /proc/cpuinfo
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên macOS không, chạy lệnh sau trên terminal:
sysctl -a | grep -E --color 'machdep.cpu.features|VMX'
Nếu bạn thấy VMX
ở kết quả trả về (có màu), thì VT-x đã được hỗ trợ.
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên Windows 8 và các phiên bản Windows cao hơn không, chạy lệnh sau trên terminal của Windows hoặc command promt.
systeminfo
Nếu bạn thấy những thông tin sau, ảo hóa được hỗ trợ trên Windows.
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Nếu bạn thấy thông tin sau, thì hệ thống đã được cài đặt Hypervisor và bạn có thể bỏ qua bước tiếp theo.
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
Cài đặt minikube
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• KVM, sử dụng QEMU
--vm-driver=none
để chạy các thành phần của Kubernetes ngay trên máy chủ chứ không phải trong một VM. Sử dụng driver này yêu cầu Docker và môi trường Linux chứ không phải một Hypervisor. Bạn nên sử dụng cài đặt apt của docker từ Docker khi sử dụng non driver. Cài đặt snap của docker không hoạt động với minikube.
Cài đặt Minikube sử dụng package
Có các gói thử nghiệm cho Minikube có sẵn; bạn có thể tìm thấy các gói Linux (AMD64) từ trang phát hành của Minikube trên Github.
Sử dụng các package tool của bản phân phối Linux của bạn để cài đặt package phù hợp.
Cài đặt Minikube thông qua tải xuống trực tiếp
Nếu bạn không cài đặt qua package, bạn có thể tải xuống bản binary và sử dụng.
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
Đây là một cách dễ dàng để thêm Minikube vào biến môi trường path của bạn:
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
Cài đặt Minikube sử dụng Homebrew
Một lựa chọn khác là bạn có thể cài đặt Minikube bằng cách sử dụng Linux Homebrew:
brew install minikube
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• HyperKit
Cài đặt Minikube
Cách đơn giản nhất để cài đặt Minikube trên macOS là sử dụng Homebrew:
brew install minikube
Bạn cũng có thể cài đặt trên macOS bằng việc tải xuống bản binary:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \
&& chmod +x minikube
Đây là một cách dễ dàng để thêm Minikube vào biến môi trường path của bạn:
sudo mv minikube /usr/local/bin
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• Hyper-V
Cài đặt Minikube sử dụng Chocolatey
Cách đơn giản nhất để cài đặt Minikube trên Windows là sử dụng Chocolatey (chạy với quyền admin):
choco install minikube
Sau khi Minikube hoàn tất việc cài đặt, hãy đóng CLI hiện tại và khởi động lại. Minikube sẽ được tự động thêm vào biến môi trường path của bạn.
Cài đặt Minikube sử dụng gói cài đặt thực thi
Để cài đặt Minikube thủ công trên Windows sử dụng Windows Installer, tải về minikube-installer.exe
và chạy bản cài đặt đó.
Cài đặt Minikube thông qua tải về trực tiếp
Để cài đặt Minikube thủ công trên Windows, tải về minikube-windows-amd64
, đổi tên nó thành minikube.exe
, và thêm nó vào biến môi trường path.
Dọn dẹp local state
Nếu bạn đã cài Minikube trước đó, và chạy:
minikube start
và tiếp đó minikube start
trả về lỗi:
machine does not exist
thì tiếp theo bạn cần xóa bỏ local state của minikube:
minikube delete