Kubernetes 安裝 minikube

安裝 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79374.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79374.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79374.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【學習筆記】深度學習:典型應用

作者選擇了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰寫的《Deep Learning》(人工智能領域的經典教程&#xff0c;深度學習領域研究生必讀教材),開始深度學習領域學習&#xff0c;深入全面的理解深度學習的理論知識。 之前的文章參考下面的鏈接&#xf…

ComputeShader繪制全屏純色紋理

參考 Getting Started With Compute Shaders In Unity 環境 Win10 Unity20194.40 全屏純色紋理示例 使用ComputerShader逐個像素設置顏色 ComputeShader腳本 設置紋理顏色 #pragma kernel CSMainRWTexture2D<float4> Result;//紋理 half4 solidColor;//顏色[numth…

數學實驗(Matlab語言環境和線性代數實驗)

一、Matlab語言環境和線性代數實驗 1.Matlab語言環境 Matlab簡介 Matlab&#xff1a;Matrix Laboratry 矩陣實驗室 Matlab 提供了強大的科學計算、靈活的程序設計流程、高質量的圖形可視化與界面設計等功能&#xff0c;被廣泛應用于科學計算、控制系統、信息處理等領域的分…

Android面試總結之GC算法篇

一、GC 機制核心原理與算法 面試題 1&#xff1a;Android 中為什么采用分代回收&#xff1f;分代策略如何優化 GC 效率&#xff1f; 標準答案&#xff1a; 分代回收基于對象生命周期的差異&#xff0c;將堆分為年輕代&#xff08;Young Gen&#xff09;和老年代&#xff08;Ol…

仿騰訊會議——注冊登錄UI

1、加載素材 2、新添加資源類 3、加載圖片 4、添加左側圖片 在左側添加一個標簽 選擇圖片 選擇圖片 勾選保證圖片不變形 5、修改組件名稱 6、設置密碼輸入框 5、切換 6、編輯提示框 7、定義提交和清空的槽函數 8、設置頁面標題和最先顯示頁面 9、清空登錄信息函數實現 10、清空…

Kotlin 常見問題

以下從基礎、中級、高級三個難度等級為你提供 Kotlin 面試題及參考答案&#xff1a; 基礎難度 1. Kotlin 中 val 和 var 的區別是什么&#xff1f; 答案要點&#xff1a;val 用于聲明不可變變量&#xff0c;類似于 Java 中的 final 變量&#xff0c;一旦賦值后就不能再重新賦…

高頻數據沖擊數據庫的技術解析與應對方案

目錄 前言一、問題現象與影響分析1.1 典型場景表現1.2 核心問題分類 二、失效根源深度剖析2.1 架構設計缺陷2.2 緩存策略缺陷 三、解決方案與最佳實踐3.1 緩存架構設計3.1.1 分層緩存架構3.1.2 熱點數據識別 3.2 緩存策略優化3.2.1 動態過期時間算法3.2.2 緩存更新策略對比 3.3…

[Spring] Sentinel詳解

&#x1f338;個人主頁:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;?熱門專欄: &#x1f9ca; Java基本語法(97平均質量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection與…

清除浮動的重要性及解決辦法

由于父級盒子很多情況下&#xff0c;不方便給高度&#xff0c;但是子盒子浮動又不占有位置&#xff0c;最后父級盒子高度為0時&#xff0c;就會影響下面的標準流盒子。 一、為什么要清除浮動 父元素高度塌陷&#xff1a; 如果父元素內部的所有子元素都浮動了&#xff0c;并且沒…

域名與官網的迷思:數字身份認證的全球困境與實踐解方-優雅草卓伊凡

域名與官網的迷思&#xff1a;數字身份認證的全球困境與實踐解方-優雅草卓伊凡 一、官網概念的法律與技術界定 1.1 官網的實質定義 當卓伊凡被問及”公司域名就是官網嗎”這一問題時&#xff0c;他首先指出&#xff1a;”這相當于問’印著某公司logo的建筑就是該公司總部嗎’…

kotlin flatMap 變換函數的特點和使用場景

Kotlin 中的 flatMap 是一個非常常用的函數&#xff0c;尤其在處理集合&#xff08;如 List、Set 等&#xff09;時。它結合了 map 和 flatten 的功能&#xff0c;常用于將多個集合扁平化為一個單一的集合。 一、flatMap 函數的特點 轉換 扁平化&#xff1a; 對集合中的每個元…

java學習之數據結構:二、鏈表

本節介紹鏈表 目錄 1.什么是鏈表 1.1鏈表定義 1.2鏈表分類 2.鏈表實現 2.1創建鏈表 1&#xff09;手動創建 2&#xff09;創建鏈表類進行管理鏈表的相關操作 2.2添加元素 1&#xff09;頭插法 2&#xff09;尾插法 3&#xff09;任意位置插入 2.3刪除 2.4查找 1&…

【計算機網絡-應用層】解析HTTP會話保持:Cookie與Session的原理與實踐

&#x1f4da; 博主的專欄 &#x1f427; Linux | &#x1f5a5;? C | &#x1f4ca; 數據結構 | &#x1f4a1;C 算法 | &#x1f152; C 語言 | &#x1f310; 計算機網絡 上篇文章&#xff1a;實現HTTP服務器 下篇文章&#xff1a;傳輸層協議-UDP 文章摘要&…

[ Qt ] | 第一個Qt程序

1. 創建Qt項目 我們打開Qt Create工具&#xff0c;左上角“文件”&#xff0c;新建文件。 --- --- --- --- 這個是我們的APP“走出國門”的時候&#xff0c;要關注的&#xff0c;這里就不說了。 后面這兩個直接默認&#xff0c;下一步就行~~。 2. 項目默認內容 下面就是Qt C…

影刀RPA中新增自己的自定義指令

入門到實戰明細 1. 影刀RPA自定義指令概述 1.1 定義與作用 影刀RPA的自定義指令是一種強大的功能&#xff0c;旨在提高流程復用率&#xff0c;讓用戶能夠個性化定制指令&#xff0c;實現流程在不同應用之間的相互調用。通過自定義指令&#xff0c;用戶可以將常用的、具有獨立…

LangChain:重構大語言模型應用開發的范式革命

2022年10月22日,Harrison Chase在GitHub上提交了名為LangChain的開源項目的第一個代碼版本。這個看似普通的代碼提交,卻悄然開啟了一場重塑大語言模型(LLM)應用開發范式的技術革命。彼時,距離ChatGPT引爆全球人工智能浪潮尚有一月之遙,但LangChain的誕生已經預示了LLM技術…

區塊鏈+醫療:破解數據共享困局,筑牢隱私安全防線

在醫療健康領域&#xff0c;數據共享與隱私保護一直是一對難以調和的矛盾。一方面&#xff0c;分散在不同機構的醫療數據&#xff08;如電子病歷、檢查報告、用藥記錄&#xff09;阻礙了診療效率和科研進展&#xff1b;另一方面&#xff0c;患者隱私泄露事件頻發&#xff0c;加…

pycharm導入同目錄下文件未標紅但報錯ModuleNotFoundError

此貼僅為記錄debug過程&#xff0c;為防后續再次遇見 問題 問題情境 復現文章模型&#xff0c;pycharm項目初次運行 問題描述 在導入同目錄下其它文件夾中的python文件時&#xff0c;未標紅&#xff0c;但運行時報錯ModuleNotFoundError 報錯信息 未找到該模塊 Traceback …

啟發式算法-蟻群算法

蟻群算法是模擬螞蟻覓食行為的仿生優化算法&#xff0c;原理是信息素的正反饋機制&#xff0c;螞蟻通過釋放信息素來引導同伴找到最短路徑。把問題的元素抽象為多條路徑&#xff0c;每次迭代時為每只螞蟻構建一個解決方案&#xff0c;該解決方案對應一條完整的路徑&#xff0c;…

Redis 腳本:深入理解與實踐指南

Redis 腳本:深入理解與實踐指南 引言 Redis 是一款高性能的鍵值存儲數據庫,廣泛應用于緩存、消息隊列、分布式鎖等領域。腳本在 Redis 中扮演著至關重要的角色,它允許開發者以編程的方式執行復雜的操作,提高數據處理的效率。本文將深入探討 Redis 腳本的概念、應用場景、…