安裝 minikube
在 Ubuntu 上安裝 minikube
minikube 是一個工具,它可以在本地快速運行一個單節點的 Kubernetes 集群。它主要用于:本地學習 Kubernetes、測試和開發 Kubernetes 應用程序、快速嘗試 Kubernetes 的功能。
系統配置最低要求如下
-
CPU:2 核或以上
-
內存:2GB(2048MB)或以上
-
磁盤:約 20GB 空間
1. 安裝依賴包
sudo apt update
sudo apt install -y curl wget apt-transport-https ca-certificates conntrack
2. 安裝 Docker,請查看:Ubuntu安裝Docker
3. 安裝 kubectl,請查看:安裝kubectl
4. 安裝?minikube
官方 minikube 二進制下載地址:https://minikube.sigs.k8s.io/docs/start
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
可以在 win 上下載完成后,把文件上傳到ubuntu系統上,也可以使用curl直接在ubuntu系統上下載
5. ?拉取?kicbase
用 docker 拉取 kicbase,最新版本號在?https://github.com/kubernetes/minikube/releases?查看
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46
把拉下來的?kicbase 鏡像,重新打一個tag版本,等價于告訴 Docker:“我本地已經有這個鏡像了,不用去 gcr.io 下載了”,不然會在?minikube start --driver=docker 命令時去外網下載。
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46 gcr.io/k8s-minikube/kicbase:v0.0.46
6. 啟動?minikube?
方式一:使用非 root 用戶運行,執行以下啟動 minikube 命令(非 root 用戶的創建教程請繼續向下查看本文)。
minikube start --driver=docker
方式二:如果使用 root 用戶運行,命令如下:
sudo minikube start --driver=docker --image-mirror-country=cn --force
安裝完成。
6. 驗證是否安裝成功
minikube status
kubectl get nodes
部署第一個 k8s 應用之 Nginx
1. 確保你的機器上已經安裝了 Docker、kubectl、minikube
2. 配置 minikube 中的 docker 的鏡像加速器(注意是minikube內的docker)
進入 minikube 的 linux 中
minikube ssh
編輯 /etc/docker/daemon.json(vim 工具不存在就安裝)
sudo vim /etc/docker/daemon.json
原有的內容:
{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"storage-driver":"overlay2"}
配置加速器后的內容:
{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"storage-driver":"overlay2","registry-mirrors":["https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"]}
重啟 docker(還在 minikube 內)
sudo systemctl daemon-reload
sudo systemctl restart docker
退出 minikube?
exit
查看 minikube 的 docker 使用的 Registry Mirrors,是不是剛配置的
minikube ssh -- docker info
查看 minikube 狀態,確保顯示如下
minikube status
這樣就配置好了,不要重新 sudo minikube start --force,不然配置的鏡像加速器會還原成默認的,如果成默認的,就重新配置一遍。
3.?創建一個 Nginx Deployment(什么是 Deployment,請查看:Kubernetes概念介紹)
創建 deployment?命令:
kubectl create deployment mynginx --image=nginx
命令解釋:
- kubectl:Kubernetes 的命令行工具,用于和集群交互。
- create:動作:創建資源。
- deployment:創建的資源類型是 deployment 控制器類型
- mynginx:自定義的 Deployment 名字
- --image=nginx:1.28.0:指定 Deployment 中使用的容器鏡像為 nginx(默認從 Docker Hub 拉取)。1.28.0 是指定nginx的版本號,如果不寫版本號,默認使用的是
latest
標簽
刪除 deployment?命令:
kubectl delete deployment mynginx
4.?查看 Deployment 和 Pod 狀態
kubectl get deployment
kubectl get pods
啟動失敗,圖片如下:
啟動成功,圖片如下:
查看詳細的錯誤信息,使用如下命令:
# kubectl describe pod <pod名稱>
kubectl describe pod mynginx-67bdffb495-v74km
可以看到具體的錯誤信息如下,說是連接了 registry-1.docker.io/v2/ 地址,這時執行第2步操作,配置國內鏡像加速器即可。
5.? 對外暴露服務
未完待續
minikube 常用命令
集群管理
使用 docker 啟動集群:minikube start --driver=docker
啟動或重啟 minikube :minikube start
停止 minikube(不會刪除):minikube stop
刪除?minikube(卸載刪除干凈 minikube 相關的資源):minikube delete
查看當前 Minikube 狀態:minikube status
配置設置(首次運行建議設置)
設置默認 driver 為 Docker:minikube config set driver docker
設置默認內存大小為 4096MB:minikube config set memory 4096
設置默認 CPU 數量為 2:minikube config set cpus 2
鏡像操作
查看本地鏡像列表(v1.31+):minikube image list
加載本地鏡像到 Minikube:minikube image load <image>
在 Minikube 中構建鏡像:minikube image build . --tag=myapp:1.0
訪問服務
在瀏覽器中訪問 service(NodePort):minikube service <service名>
列出所有 service 及地址:minikube service list
開啟 LoadBalancer 支持:minikube tunnel
查看日志與信息
查看集群組件日志:minikube logs
SSH 進入 Minikube 虛擬機:minikube ssh
啟動圖形管理界面(Dashboard):minikube dashboard
版本與更新
查看 minikube 版本:minikube version
檢查是否有新版本:minikube update-check
測試容器運行
運行臨時測試容器:minikube kubectl -- run test --image=busybox --rm -it --restart=Never -- sh
Ubuntu 創建用戶
查看當前登錄用戶的命令:
whoami
1. 創建新用戶(如 devuser)
sudo adduser devuser
系統會提示你設置密碼并填寫一些個人信息(可以直接回車跳過)
2. 將用戶添加到 sudo 組(讓用戶擁有管理員權限)
sudo usermod -aG sudo devuser
移除用戶的 sudo 權限
sudo deluser devuser sudo
查看用戶在哪些組
groups devuser
3.?將用戶添加到 docker 組(允許使用 Docker 命令)
sudo usermod -aG docker devuser
4. 切換到新用戶
su - devuser