Minikube極速搭建單機k8s集群全過程
第一步:安裝前置依賴
Minikube 需要一個容器或虛擬機管理器來運行集群。最推薦的是 Docker,因為它最簡單高效。
- 更新軟件包列表
sudo apt-get update
- 安裝必要的包
sudo apt-get install -y ca-certificates curl gnupg lsb-release
- 添加 Docker 官方 GPG 密鑰
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 設(shè)置 Docker 倉庫
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安裝 Docker Engine
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 將當前用戶添加到
docker組 (這樣不用每次都sudo運行 docker)
sudo usermod -aG docker $USER
重要:執(zhí)行完這一步后,一定要重新登錄或者重啟終端,用戶組權(quán)限才會生效。
第二步:安裝 kubectl
kubectl 是用來和 Kubernetes 集群交互的命令行工具。
- 下載最新穩(wěn)定版的 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- 安裝 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- 驗證安裝
kubectl version --client
看到版本信息就說明裝好了。
第三步:安裝 Minikube
- 下載 Minikube 二進制文件
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
# 或者
wget https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
- 安裝并使其可執(zhí)行
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
第四步:啟動 Minikube 集群d
萬事俱備,現(xiàn)在可以啟動你的單機 K8s 集群了!
- 啟動命令
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.48 sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.48 gcr.io/k8s-minikube/kicbase:v0.0.48 sudo minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --force
- `--driver=docker` 是告訴 Minikube 使用我們之前安裝的 Docker 作為環(huán)境。這是在 Ubuntu 上的推薦方式。 - 首次啟動會下載一些鏡像,可能需要幾分鐘,耐心等待一下。
- 檢查集群狀態(tài)
minikube status
如果看到 minikube, node, kubelet 都是 Running 狀態(tài),就說明集群啟動成功了!
- 驗證 kubectl 連接
kubectl get nodes
你應該能看到一個名為 minikube 的節(jié)點處于 Ready 狀態(tài)。
第五步:體驗一下 (可選)
部署一個簡單的 Nginx 服務來感受一下 K8s。
- 創(chuàng)建一個 Deployment
kubectl create deployment hello-minikube --image=nginx:latest
- 暴露服務,讓外部可以訪問
kubectl expose deployment hello-minikube --type=NodePort --port=80
- 獲取訪問 URL
Minikube 提供了一個很方便的命令來直接打開服務:
minikube service hello-minikube
執(zhí)行后,它會自動在瀏覽器中打開 Nginx 的歡迎頁面,或者給你一個 URL。
常用管理命令
- 停止集群(不刪除數(shù)據(jù),下次可以快速啟動)
minikube stop
- 刪除集群(會刪除所有數(shù)據(jù),從頭再來)
minikube delete
- 打開 K8s Dashboard(一個可視化的 Web 界面)
minikube addons enable dashboard minikube dashboard # 鏡像無法拉取 # 在你的主機上執(zhí)行 docker pull kubernetesui/dashboard:v2.7.0 docker pull kubernetesui/metrics-scraper:v1.0.8 # 在你的主機上執(zhí)行 minikube image load kubernetesui/dashboard:v2.7.0 minikube image load kubernetesui/metrics-scraper:v1.0.8 # 查看 kubernetes-dashboard 狀態(tài) kubectl get pods -n kubernetes-dashboard # 啟動代理 kubectl proxy --address='0.0.0.0' --port=8001 --accept-hosts='^.*$' # token eyJhbGciOiJSUzI1NiIsImtpZCI6ImthM1diQVBUd0x4NXJuRDhPOXJ3a3A5S2xqQ2dyMmtUcHlYLUh4S3ZIVUEifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzY0OTQ5OTY4LCJpYXQiOjE3NjQ5NDYzNjgsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiYzliYTYwMWQtMjU1MS00ZjhiLWE1ODctMzI5ZGY4MGYxMzUwIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJkYXNoYm9hcmQtYWRtaW4iLCJ1aWQiOiJiYWQ0NjA5Yi1jNDNhLTQ2ZDEtYTU0OS02YjhmMjZmZWQ1ODgifX0sIm5iZiI6MTc2NDk0NjM2OCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.YXzBNh_VTjXNQUxAutYc16XwwxznnVp1VMG8SNy6edD3uP24M9s4bddtiQRzXqfeilUKHKdiYPGIwV-FFnKm6fnfDL4uPblVq6EUcBCbX2_FFbPcnm-FMKYfPx6G9k994IpkY8O0d1nhKqkY5eQLbqOJ9pSxQA3vUFqzPTEV3uaMLQvtsLCCTy_AmerFzxzE96v7XnlyS8e-zm3qWCMNWFl0iZCR5y1Ec87q-WNOctCxBCyrI3VLSmJe7AIA_bZQjHf_lvycNJ3LK2sL7nec-UXCLVULZKW6Syv499GkOzrEBqnldzSAZBen9qKdCmd6g92o_9A1n2K92CDiFsjv2Q # 地址 http://192.168.11.217:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login # 跳過登陸 kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard - --enable-skip-login=true # 保存重啟 kubectl get pods -n kubernetes-dashboard -w
...
spec:
containers:
- args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --enable-skip-login=true # <-- 使用這個參數(shù)
image: ...
name: kubernetes-dashboard
...
這樣,一個功能完整的單機 Kubernetes 環(huán)境就在你的 Ubuntu 上跑起來了!接下來你就可以在上面盡情測試和部署你的應用了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
k8s部署Ingress并創(chuàng)建規(guī)則的詳細介紹
這篇文章主要介紹了k8s部署Ingress并創(chuàng)建規(guī)則,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
Rainbond部署組件Statefulset的使用官方文檔
這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
云原生要素配置分離ConfigMap創(chuàng)建方式
這篇文章主要為大家介紹了云原生要素配置分離ConfigMap以及多種創(chuàng)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-03-03

