使用minikube安裝k8s單節(jié)點(diǎn)集群方式
前言
minikube 是本地 Kubernetes,專(zhuān)注于讓 Kubernetes 更易于學(xué)習(xí)和開(kāi)發(fā)。
你所需要的只是 Docker(或類(lèi)似兼容的)容器或虛擬機(jī)環(huán)境,而 Kubernetes 只需一個(gè)命令即可:minikube start
minikube 可在 macOS、Linux 和 Windows 上快速設(shè)置本地 Kubernetes 集群。我們專(zhuān)注于幫助應(yīng)用程序開(kāi)發(fā)人員和新的 Kubernetes 用戶(hù),這讓我們倍感自豪。
亮點(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)用程序的附加組件
- 支持常見(jiàn)的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 行,修改為自己想用的主題名稱(chēng)即可 # 安裝插件 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)),專(zhuān)注于讓Kubernetes易于學(xué)習(xí)和開(kāi)發(fā)。
1. 安裝或升級(jí)到最新docker穩(wěn)定版本
docker的版本分為社區(qū)版docker-ce和企業(yè)版dokcer-ee社,區(qū)版是免費(fèi)提供給個(gè)人開(kāi)發(fā)者和小型團(tuán)體使用的,企業(yè)版會(huì)提供額外的收費(fèi)服務(wù),比如經(jīng)過(guò)官方測(cè)試認(rèn)證過(guò)的基礎(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/docker
1.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)并開(kāi)機(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版本開(kāi)始,Minikube缺省使用系統(tǒng)優(yōu)選的驅(qū)動(dòng)來(lái)創(chuàng)建Kubernetes本地環(huán)境,比如您已經(jīng)安裝過(guò)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像沒(méi)有同步后續(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 用戶(hù)和管理員必備的管理工具。
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 訪問(wèn)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ù)的。
即使通過(guò)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)后,可通過(guò)m image ls
再次看到被刪除的鏡像又出現(xiàn)了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Docker和Nginx部署Web服務(wù)的操作指南
本文給大家介紹了Docker和Nginx部署Web服務(wù)的完美指南,Docker是一種容器化技術(shù),它可以將應(yīng)用程序及其依賴(lài)項(xiàng)打包到一個(gè)獨(dú)立的、可移植的容器中,而Nginx則是一款高性能的Web服務(wù)器和反向代理服務(wù)器,感興趣的朋友可以參考下2024-01-01docker容器互聯(lián)的實(shí)現(xiàn)步驟
容器互聯(lián)是除了端口映射外另一種可以與容器通信的方式,本文就來(lái)介紹一下docker容器互聯(lián)的實(shí)現(xiàn)步驟,感興趣的可以了解一下2023-12-12Ubuntu16.04Docker的CS模式詳細(xì)介紹
這篇文章主要介紹了Ubuntu16.04Docker的CS模式詳細(xì)介紹的相關(guān)資料,這里對(duì)Docker CS模式圖文詳細(xì)介紹,需要的朋友可以參考下2016-12-12Docker中實(shí)現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實(shí)戰(zhàn)詳解
持續(xù)集成(CI/CD)是一種軟件開(kāi)發(fā)的經(jīng)驗(yàn)總結(jié),它用于幫助開(kāi)發(fā)團(tuán)隊(duì)和交付團(tuán)隊(duì)實(shí)現(xiàn)頻繁且快速的集成,以及測(cè)試他們的工作成果,以盡可能快地發(fā)現(xiàn)項(xiàng)目開(kāi)發(fā)和交付工程中的錯(cuò)誤,本文就給大家詳細(xì)的介紹一下Docker中如何實(shí)現(xiàn)CI和CD,需要的朋友可以參考下2023-08-08yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker
今天小編就為大家分享一篇關(guān)于yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Docker安裝Nginx并修改Nginx配置文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并修改Nginx配置文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02