Minikube極速搭建單機(jī)k8s集群全過程
第一步:安裝前置依賴
Minikube 需要一個(gè)容器或虛擬機(jī)管理器來運(yùn)行集群。最推薦的是 Docker,因?yàn)樗詈?jiǎn)單高效。
- 更新軟件包列表
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
- 將當(dāng)前用戶添加到
docker組 (這樣不用每次都sudo運(yùn)行 docker)
sudo usermod -aG docker $USER
重要:執(zhí)行完這一步后,一定要重新登錄或者重啟終端,用戶組權(quán)限才會(huì)生效。
第二步:安裝 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
- 驗(yàn)證安裝
kubectl version --client
看到版本信息就說明裝好了。
第三步:安裝 Minikube
- 下載 Minikube 二進(jìn)制文件
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
第四步:?jiǎn)?dòng) Minikube 集群d
萬事俱備,現(xiàn)在可以啟動(dòng)你的單機(jī) K8s 集群了!
- 啟動(dòng)命令
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 上的推薦方式。 - 首次啟動(dòng)會(huì)下載一些鏡像,可能需要幾分鐘,耐心等待一下。
- 檢查集群狀態(tài)
minikube status
如果看到 minikube, node, kubelet 都是 Running 狀態(tài),就說明集群?jiǎn)?dòng)成功了!
- 驗(yàn)證 kubectl 連接
kubectl get nodes
你應(yīng)該能看到一個(gè)名為 minikube 的節(jié)點(diǎn)處于 Ready 狀態(tài)。
第五步:體驗(yàn)一下 (可選)
部署一個(gè)簡(jiǎn)單的 Nginx 服務(wù)來感受一下 K8s。
- 創(chuàng)建一個(gè) Deployment
kubectl create deployment hello-minikube --image=nginx:latest
- 暴露服務(wù),讓外部可以訪問
kubectl expose deployment hello-minikube --type=NodePort --port=80
- 獲取訪問 URL
Minikube 提供了一個(gè)很方便的命令來直接打開服務(wù):
minikube service hello-minikube
執(zhí)行后,它會(huì)自動(dòng)在瀏覽器中打開 Nginx 的歡迎頁面,或者給你一個(gè) URL。
常用管理命令
- 停止集群(不刪除數(shù)據(jù),下次可以快速啟動(dòng))
minikube stop
- 刪除集群(會(huì)刪除所有數(shù)據(jù),從頭再來)
minikube delete
- 打開 K8s Dashboard(一個(gè)可視化的 Web 界面)
minikube addons enable dashboard minikube dashboard # 鏡像無法拉取 # 在你的主機(jī)上執(zhí)行 docker pull kubernetesui/dashboard:v2.7.0 docker pull kubernetesui/metrics-scraper:v1.0.8 # 在你的主機(jī)上執(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 # 啟動(dòng)代理 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 # <-- 使用這個(gè)參數(shù)
image: ...
name: kubernetes-dashboard
...
這樣,一個(gè)功能完整的單機(jī) Kubernetes 環(huán)境就在你的 Ubuntu 上跑起來了!接下來你就可以在上面盡情測(cè)試和部署你的應(yīng)用了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
k8s部署Ingress并創(chuàng)建規(guī)則的詳細(xì)介紹
這篇文章主要介紹了k8s部署Ingress并創(chuàng)建規(guī)則,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Rainbond部署組件Statefulset的使用官方文檔
這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
云原生要素配置分離ConfigMap創(chuàng)建方式
這篇文章主要為大家介紹了云原生要素配置分離ConfigMap以及多種創(chuàng)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-03-03
kubernetes存儲(chǔ)之GlusterFS集群詳解
最近工作中用到了GlusterFS作為Kubernetes的存儲(chǔ),這篇文章主要給大家介紹了關(guān)于kubernetes存儲(chǔ)之GlusterFS集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04

