使用minikube安裝k8s單節(jié)點集群方式
前言
minikube 是本地 Kubernetes,專注于讓 Kubernetes 更易于學習和開發(fā)。
你所需要的只是 Docker(或類似兼容的)容器或虛擬機環(huán)境,而 Kubernetes 只需一個命令即可:minikube start
minikube 可在 macOS、Linux 和 Windows 上快速設置本地 Kubernetes 集群。我們專注于幫助應用程序開發(fā)人員和新的 Kubernetes 用戶,這讓我們倍感自豪。
亮點
- 支持最新的 Kubernetes 版本(+6 個之前的次要版本)
- 跨平臺(Linux、macOS、Windows)
- 部署為虛擬機、容器或裸機
- 多個容器運行時(CRI-O、containerd、docker)
- 直接 API 端點,實現(xiàn)快速圖像加載和構(gòu)建
- 高級功能,如LoadBalancer、文件系統(tǒng)掛載、FeatureGates 和網(wǎng)絡策略
- 可輕松安裝 Kubernetes 應用程序的附加組件
- 支持常見的CI 環(huán)境
使用minikube安裝k8s單節(jié)點集群
為了提高命令行使用效率,建議先 [安裝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 # 設置別名 echo 'alias kk="kubectl"' >> ~/.zshrc echo 'alias m="minikube"' >> ~/.zshrc # 如果安裝了minikube # 生效 source ~/.zshrc
環(huán)境準備:
- 一臺聯(lián)網(wǎng)機 - OS: Centos v7.9 - CPU&Mem: 2c2g+ - Disk: 20g+
minikube是本地Kubernetes環(huán)境(單節(jié)點),專注于讓Kubernetes易于學習和開發(fā)。
1. 安裝或升級到最新docker穩(wěn)定版本
docker的版本分為社區(qū)版docker-ce和企業(yè)版dokcer-ee社,區(qū)版是免費提供給個人開發(fā)者和小型團體使用的,企業(yè)版會提供額外的收費服務,比如經(jīng)過官方測試認證過的基礎設施、容器、插件,當然docker的版本更新比較快,截止2018.12最新版本是18.09,如果你的機器上安裝了老版本的docker,那么就需要卸載,本文介紹如何完全的卸載老版本以及安裝新版本docker。
1.1 刪除老版本
停止docker服務
systemctl stop docker
查看當前版本
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
刪除相關配置文件
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
啟動并開機自啟
systemctl start docker systemctl enable docker
查看docker版本
docker version
2. 安裝啟動minikube
使用官方源進行安裝(外網(wǎng)服務器下載較慢,建議手動下載再上傳到機器中)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube
作為替代,你可以將鏈接替換為加速后的github地址進行安裝(需要指定版本):
https://hub.gitmirror.com/?q=https://github.com/kubernetes/minikube/releases/download/v1.31.2/minikube-linux-amd64
或者阿里云鏡像安裝(缺點是不支持較新的版本):
https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64
2.1 安裝前說明
啟動(minikube要求較新的docker版本)
# --force允許在root執(zhí)行 # --kubernetes-version 指定和上一節(jié)相同的k8s版本,否則會重新下載 minikube start --force \ --kubernetes-version=v1.23.9 \ --image-mirror-country=cn
如果多次在Pulling base image...
未知出錯,需要清理緩存:minikube delete --all --purge
,再重新下載。
2.2 啟動參數(shù)說明
--driver=*** 從1.5.0版本開始,Minikube缺省使用系統(tǒng)優(yōu)選的驅(qū)動來創(chuàng)建Kubernetes本地環(huán)境,比如您已經(jīng)安裝過Docker環(huán)境,minikube 將使用 docker 驅(qū)動 --cpus=2: 為minikube虛擬機分配CPU核數(shù) --memory=2048mb: 為minikube虛擬機分配內(nèi)存數(shù) --registry-mirror=*** 為了提升拉取Docker Hub鏡像的穩(wěn)定性,可以為 Docker daemon 配置鏡像加速,參考阿里云鏡像服務 --image-mirror-country=cn 是加速minikube自身資源的下載安裝 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers 使用阿里云倉庫安裝k8s組件 --kubernetes-version=***: minikube 虛擬機將使用的 kubernetes 版本,但注意如果指定1.24及以后的版本且使用阿里云鏡像時會報錯404,因為阿里云鏡像沒有同步后續(xù)版本 為docker設置代理(minikube不會讀取本地的/etc/docker/daemon.json中的源來下載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 查看啟動狀態(tài)
$ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
2.4 minikube命令速查
minikube stop # 不會刪除任何數(shù)據(jù),只是停止 VM 和 k8s 集群。 minikube delete # 刪除所有 minikube 啟動后的數(shù)據(jù)。 minikube ip # 查看集群和 docker enginer 運行的 IP 地址。 minikube pause # 暫停當前的資源和 k8s 集群 minikube status # 查看當前集群狀態(tài) minikube addons list #查看minikube已安裝的服務列表,這些服務可以快速啟用/停止
3. 安裝kubectl
kubectl 是Kubernetes 的命令行工具(CLI),是Kubernetes 用戶和管理員必備的管理工具。
3.1 先導入源
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啟動的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的鏡像管理
當我們啟動pod時,引用的鏡像會從遠程拉取到本地,存入minikube自身的本地鏡像庫中管理,而不是由docker管理。
# alias m='minikube' root@VM-0-13-centos ~/install_k8s ? m image -h 管理 images Available Commands: build 在 minikube 中構(gòu)建一個容器鏡像 load 將鏡像加載到 minikube 中 ls 列出鏡像 pull 拉取鏡像 push 推送鏡像 rm 移除一個或多個鏡像 save 從 minikube 中保存一個鏡像 tag 為鏡像打標簽 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 <----------------
也就是說,docker rmi
刪除的鏡像是不會影響minikube的鏡像庫的。
即使通過m image rm
刪除了本地的一個minikube管理的鏡像,
再啟動deployment,也可以啟動的,因為minikube會去遠程鏡像庫Pull,除非遠程倉庫也刪除了這個鏡像。
重新啟動后,可通過m image ls
再次看到被刪除的鏡像又出現(xiàn)了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker中實現(xiàn)CI(持續(xù)集成)和CD(持續(xù)交付/部署)的實戰(zhàn)詳解
持續(xù)集成(CI/CD)是一種軟件開發(fā)的經(jīng)驗總結(jié),它用于幫助開發(fā)團隊和交付團隊實現(xiàn)頻繁且快速的集成,以及測試他們的工作成果,以盡可能快地發(fā)現(xiàn)項目開發(fā)和交付工程中的錯誤,本文就給大家詳細的介紹一下Docker中如何實現(xiàn)CI和CD,需要的朋友可以參考下2023-08-08Docker安裝Nginx并修改Nginx配置文件的方法詳解
這篇文章主要給大家介紹了關于Docker安裝Nginx并修改Nginx配置文件的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-02-02