使用minikube安裝k8s單節(jié)點(diǎn)集群方式
前言
minikube 是本地 Kubernetes,專注于讓 Kubernetes 更易于學(xué)習(xí)和開發(fā)。
你所需要的只是 Docker(或類似兼容的)容器或虛擬機(jī)環(huán)境,而 Kubernetes 只需一個(gè)命令即可:minikube start
minikube 可在 macOS、Linux 和 Windows 上快速設(shè)置本地 Kubernetes 集群。我們專注于幫助應(yīng)用程序開發(fā)人員和新的 Kubernetes 用戶,這讓我們倍感自豪。
亮點(diǎn)
- 支持最新的 Kubernetes 版本(+6 個(gè)之前的次要版本)
- 跨平臺(tái)(Linux、macOS、Windows)
- 部署為虛擬機(jī)、容器或裸機(jī)
- 多個(gè)容器運(yùn)行時(shí)(CRI-O、containerd、docker)
- 直接 API 端點(diǎn),實(shí)現(xiàn)快速圖像加載和構(gòu)建
- 高級(jí)功能,如LoadBalancer、文件系統(tǒng)掛載、FeatureGates 和網(wǎng)絡(luò)策略
- 可輕松安裝 Kubernetes 應(yīng)用程序的附加組件
- 支持常見的CI 環(huán)境
使用minikube安裝k8s單節(jié)點(diǎn)集群
為了提高命令行使用效率,建議先 [安裝ohmyzsh]。
yum install -y git zsh wget
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
vi install.sh
# 修改下面兩行
# REPO=${REPO:-ohmyzsh/ohmyzsh}
# REMOTE=${REMOTE:-https://github.com/${REPO}.git}
# 為
# REPO=${REPO:-mirrors/oh-my-zsh}
# REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}
# 保存 并 執(zhí)行
chmod +x install.sh && ./install.sh
# 修改主題
ls ~/.oh-my-zsh/themes
vi ~/.zshrc
# 找到 ZSH_THEME 行,修改為自己想用的主題名稱即可
# 安裝插件
git clone https://gitee.com/jsharkc/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://gitee.com/jsharkc/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
# 配置插件
sed -i 's/plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/' ~/.zshrc
# 設(shè)置別名
echo 'alias kk="kubectl"' >> ~/.zshrc
echo 'alias m="minikube"' >> ~/.zshrc # 如果安裝了minikube
# 生效
source ~/.zshrc環(huán)境準(zhǔn)備:
- 一臺(tái)聯(lián)網(wǎng)機(jī)
- OS: Centos v7.9
- CPU&Mem: 2c2g+
- Disk: 20g+minikube是本地Kubernetes環(huán)境(單節(jié)點(diǎn)),專注于讓Kubernetes易于學(xué)習(xí)和開發(fā)。
1. 安裝或升級(jí)到最新docker穩(wěn)定版本
docker的版本分為社區(qū)版docker-ce和企業(yè)版dokcer-ee社,區(qū)版是免費(fèi)提供給個(gè)人開發(fā)者和小型團(tuán)體使用的,企業(yè)版會(huì)提供額外的收費(fèi)服務(wù),比如經(jīng)過官方測(cè)試認(rèn)證過的基礎(chǔ)設(shè)施、容器、插件,當(dāng)然docker的版本更新比較快,截止2018.12最新版本是18.09,如果你的機(jī)器上安裝了老版本的docker,那么就需要卸載,本文介紹如何完全的卸載老版本以及安裝新版本docker。
1.1 刪除老版本
停止docker服務(wù)
systemctl stop docker
查看當(dāng)前版本
rpm -qa | grep docker
卸載軟件包
yum erase docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce刪除相關(guān)配置文件
find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /etc/systemd -name '*docker*' -exec rm -f {} \;
find /lib/systemd -name '*docker*' -exec rm -f {} \;
#刪除以前已有的鏡像和容器,非必要
rm -rf /var/lib/docker
rm -rf /var/run/docker1.2 安裝新版本
軟件包安裝
yum install -y yum-utils device-mapper-persistent-data lvm2
添加yum源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo查看可安裝的版本
yum list docker-ce --showduplicates | sort -r
安裝最新版本
yum install docker-ce -y
啟動(dòng)并開機(jī)自啟
systemctl start docker systemctl enable docker
查看docker版本
docker version

2. 安裝啟動(dòng)minikube

使用官方源進(jìn)行安裝(外網(wǎng)服務(wù)器下載較慢,建議手動(dòng)下載再上傳到機(jī)器中)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
作為替代,你可以將鏈接替換為加速后的github地址進(jìn)行安裝(需要指定版本):
https://hub.gitmirror.com/?q=https://github.com/kubernetes/minikube/releases/download/v1.31.2/minikube-linux-amd64
或者阿里云鏡像安裝(缺點(diǎn)是不支持較新的版本):
https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64
2.1 安裝前說(shuō)明
啟動(dòng)(minikube要求較新的docker版本)
# --force允許在root執(zhí)行 # --kubernetes-version 指定和上一節(jié)相同的k8s版本,否則會(huì)重新下載 minikube start --force \ --kubernetes-version=v1.23.9 \ --image-mirror-country=cn
如果多次在Pulling base image...未知出錯(cuò),需要清理緩存:minikube delete --all --purge,再重新下載。
2.2 啟動(dòng)參數(shù)說(shuō)明
--driver=*** 從1.5.0版本開始,Minikube缺省使用系統(tǒng)優(yōu)選的驅(qū)動(dòng)來(lái)創(chuàng)建Kubernetes本地環(huán)境,比如您已經(jīng)安裝過Docker環(huán)境,minikube 將使用 docker 驅(qū)動(dòng)
--cpus=2: 為minikube虛擬機(jī)分配CPU核數(shù)
--memory=2048mb: 為minikube虛擬機(jī)分配內(nèi)存數(shù)
--registry-mirror=*** 為了提升拉取Docker Hub鏡像的穩(wěn)定性,可以為 Docker daemon 配置鏡像加速,參考阿里云鏡像服務(wù)
--image-mirror-country=cn 是加速minikube自身資源的下載安裝
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers 使用阿里云倉(cāng)庫(kù)安裝k8s組件
--kubernetes-version=***: minikube 虛擬機(jī)將使用的 kubernetes 版本,但注意如果指定1.24及以后的版本且使用阿里云鏡像時(shí)會(huì)報(bào)錯(cuò)404,因?yàn)榘⒗镌歧R像沒有同步后續(xù)版本
為docker設(shè)置代理(minikube不會(huì)讀取本地的/etc/docker/daemon.json中的源來(lái)下載docker鏡像)
--docker-env http_proxy=http://proxyAddress:port
--docker-env https_proxy=http://proxyAddress:port
--docker-env no_proxy=localhost,127.0.0.1,your-virtual-machine-ip/24 2.3 查看啟動(dòng)狀態(tài)
$ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
2.4 minikube命令速查
minikube stop # 不會(huì)刪除任何數(shù)據(jù),只是停止 VM 和 k8s 集群。 minikube delete # 刪除所有 minikube 啟動(dòng)后的數(shù)據(jù)。 minikube ip # 查看集群和 docker enginer 運(yùn)行的 IP 地址。 minikube pause # 暫停當(dāng)前的資源和 k8s 集群 minikube status # 查看當(dāng)前集群狀態(tài) minikube addons list #查看minikube已安裝的服務(wù)列表,這些服務(wù)可以快速啟用/停止
3. 安裝kubectl
kubectl 是Kubernetes 的命令行工具(CLI),是Kubernetes 用戶和管理員必備的管理工具。
3.1 先導(dǎo)入源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
3.2 安裝指定版本的kubectl
setenforce 0 yum install -y kubectl-1.23.9
安裝最新版本
yum install -y kubelet-<version>
3.3 訪問minikube啟動(dòng)的K8s集群
$ kubectl get po -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-65c54cc984-ls59m 1/1 Running 0 3m28s kube-system etcd-minikube 1/1 Running 0 3m41s kube-system kube-apiserver-minikube 1/1 Running 0 3m42s kube-system kube-controller-manager-minikube 1/1 Running 0 3m42s kube-system kube-proxy-52p75 1/1 Running 0 3m28s kube-system kube-scheduler-minikube 1/1 Running 0 3m42s kube-system storage-provisioner 1/1 Running 0 3m41s
4. minikube的鏡像管理
當(dāng)我們啟動(dòng)pod時(shí),引用的鏡像會(huì)從遠(yuǎn)程拉取到本地,存入minikube自身的本地鏡像庫(kù)中管理,而不是由docker管理。
# alias m='minikube' root@VM-0-13-centos ~/install_k8s ? m image -h 管理 images Available Commands: build 在 minikube 中構(gòu)建一個(gè)容器鏡像 load 將鏡像加載到 minikube 中 ls 列出鏡像 pull 拉取鏡像 push 推送鏡像 rm 移除一個(gè)或多個(gè)鏡像 save 從 minikube 中保存一個(gè)鏡像 tag 為鏡像打標(biāo)簽 Use "minikube <command> --help" for more information about a given command. root@VM-0-13-centos ~/install_k8s ? m image ls registry.k8s.io/pause:3.9 registry.k8s.io/kube-scheduler:v1.27.3 registry.k8s.io/kube-proxy:v1.27.3 registry.k8s.io/kube-controller-manager:v1.27.3 registry.k8s.io/kube-apiserver:v1.27.3 registry.k8s.io/etcd:3.5.7-0 registry.k8s.io/coredns/coredns:v1.10.1 gcr.io/k8s-minikube/storage-provisioner:v5 docker.io/leigg/hellok8s:v2 <---------------- docker.io/leigg/hellok8s:v1 <----------------
也就是說(shuō),docker rmi刪除的鏡像是不會(huì)影響minikube的鏡像庫(kù)的。
即使通過m image rm刪除了本地的一個(gè)minikube管理的鏡像,
再啟動(dòng)deployment,也可以啟動(dòng)的,因?yàn)閙inikube會(huì)去遠(yuǎn)程鏡像庫(kù)Pull,除非遠(yuǎn)程倉(cāng)庫(kù)也刪除了這個(gè)鏡像。
重新啟動(dòng)后,可通過m image ls再次看到被刪除的鏡像又出現(xiàn)了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
阿里云docker容器固定應(yīng)用到到某一個(gè)節(jié)點(diǎn)記錄
這篇文章主要介紹了阿里云docker容器固定應(yīng)用到到某一個(gè)節(jié)點(diǎn)記錄,需要的朋友可以參考下2018-05-05
Docker 鏡像傳輸?shù)膶?shí)現(xiàn)步驟
本文主要介紹了Docker 鏡像傳輸?shù)膶?shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
docker compose部署cassandra集群的操作代碼
這篇文章主要介紹了docker compose部署cassandra集群的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03
Docker快速部署Mongodb主副本集實(shí)踐指南
本文主要介紹了MongoDB主副本集的基本概念及其應(yīng)用場(chǎng)景,MongoDB適合處理數(shù)據(jù)不固定且不支持事務(wù)的業(yè)務(wù)需求,通過主副本集實(shí)現(xiàn)高可用性和數(shù)據(jù)一致性,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-09-09
docker for windows 容器內(nèi)網(wǎng)通過獨(dú)立IP直接訪問的方法
這篇文章主要介紹了docker for windows 容器內(nèi)網(wǎng)通過獨(dú)立IP直接訪問的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Linux下使用Docker部署MinIO存儲(chǔ)服務(wù)實(shí)現(xiàn)遠(yuǎn)程上傳的方法
MinIO是一個(gè)開源的對(duì)象存儲(chǔ)服務(wù)器,可以在各種環(huán)境中運(yùn)行,例如本地、Docker容器、Kubernetes集群等,本文主要是Linux下通過Docker部署MinIO存儲(chǔ)服務(wù)實(shí)現(xiàn)遠(yuǎn)程上傳的文章,感興趣的朋友一起看看吧2023-11-11
超詳細(xì)Docker Desktop下安裝rocketmq的教程
這篇文章主要介紹了Docker Desktop下安裝rocketmq,本文內(nèi)容通過圖文操作命令給大家講解的非常詳細(xì),需要的朋友可以參考下2021-10-10

