日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一文搞懂 Kubernetes 編排工具 Minikube

來源: 責編: 時間:2023-09-18 21:42:21 352觀看
導讀 Hello folks,我是 Luga,今天我們來聊一下云原生生態核心技術之 Kubernetes 編排工具 —— Minikube。為什么需要 Minikube 工具 ?隨著容器技術的迅猛發展和廣泛應用,Kubernetes 在企業中扮演著重要的角色。通常情況下,我

Hello folks,我是 Luga,今天我們來聊一下云原生生態核心技術之 Kubernetes 編排工具 —— Minikube。Qlp28資訊網——每日最新資訊28at.com

為什么需要 Minikube 工具 ?

隨著容器技術的迅猛發展和廣泛應用,Kubernetes 在企業中扮演著重要的角色。通常情況下,我們將 Kubernetes 描述為“將 Linux 容器集群作為單個系統進行管理,以加速開發并簡化維護”。對于企業應用服務的容器化改造而言,學習和使用 Kubernetes 已經成為不可避免的一部分。Qlp28資訊網——每日最新資訊28at.com

然而,對于剛接觸這個體系的 DevOps 人員來說,在環境中完整部署一整套多節點的 Kubernetes 集群確實具有一定的難度。這種部署涉及到復雜的配置、網絡設置和資源管理等方面,需要具備深入的理解和相關經驗。Qlp28資訊網——每日最新資訊28at.com

Qlp28資訊網——每日最新資訊28at.com

總的來說,Kubernetes 和 Minikube 為容器化應用開發和部署提供了強大的支持。Kubernetes 作為一個分布式系統的編排工具,可以管理和調度容器化的應用程序,而 Minikube 則提供了一個簡單實用的方式,在本地機器上搭建和管理 Kubernetes 集群。這些工具的使用使得開發人員能夠更加高效地進行應用程序開發、測試和部署,加速了應用交付的速度和質量。Qlp28資訊網——每日最新資訊28at.com

認識不一樣的 Minikube 技術堆棧

基于 Minikube 的相關特性,我們從操作系統(OS)、CPU 架構、程序管理技術(Hypervisor tech)、容器運行時(CRI)以及容器網絡接口插件(CNIs)等多方位角度簡要描繪 Minikube 所支持的技術運行棧形態,具體如下圖所示:Qlp28資訊網——每日最新資訊28at.com

Qlp28資訊網——每日最新資訊28at.com

1、操作系統(OS):

Minikube 支持在多種操作系統上運行,包括但不限于以下幾種:Qlp28資訊網——每日最新資訊28at.com

  • macOS:Minikube 可以在 macOS 上運行,提供了方便的本地開發和測試環境。
  • Linux:Minikube 支持在不同的 Linux 發行版上運行,使開發人員能夠在本地機器上搭建 Kubernetes 集群。
  • Windows:Minikube 可以在 Windows 平臺上運行,為 Windows 用戶提供了本地化的 Kubernetes 開發環境。

2、CPU架構:

Minikube 能夠適應不同的 CPU 架構,包括但不限于以下幾種:Qlp28資訊網——每日最新資訊28at.com

  • x86 架構:Minikube 支持 x86 架構的處理器,這是目前最常見的桌面和服務器處理器架構。
  • ARM 架構:Minikube 還支持 ARM 架構,這是一種常見于嵌入式設備和移動設備的處理器架構。

3、程序管理技術(Hypervisor tech):

Minikube 利用虛擬化管理器來創建和管理虛擬機,以模擬多節點的 Kubernetes 集群。它支持多種虛擬化管理器技術,包括但不限于以下幾種:Qlp28資訊網——每日最新資訊28at.com

  • VirtualBox:Minikube 可以使用 VirtualBox 作為虛擬化管理器,在本地機器上創建和管理虛擬機。
  • HyperV:對于 Windows 平臺,Minikube 支持使用 HyperV 作為虛擬化管理器,提供了本地化的Kubernetes環境。
  • KVM2:在 Linux 平臺上,Minikube 可以使用 KVM2 作為虛擬化管理器,以實現本地 Kubernetes 集群的搭建和管理。

4、容器運行時(CRI):

Minikube 支持多種容器運行時,以在本地機器上運行和管理容器化的應用程序。以下是一些 Minikube 所支持的常見容器運行時:Qlp28資訊網——每日最新資訊28at.com

  • Docker:作為最流行的容器運行時之一,Minikube 支持使用 Docker 來創建和管理容器,使得應用程序可以在本地的Kubernetes集群中以容器的形式運行。
  • containerd:Minikube 還支持使用 containerd 作為容器運行時,containerd 是一個輕量級的容器運行時,為 Kubernetes 提供了容器管理的能力。

5、容器網絡接口插件(CNIs):

Minikube 支持多種容器網絡接口插件,以實現容器之間的網絡通信和連接。以下是一些 Minikube 所支持的常見容器網絡接口插件:Qlp28資訊網——每日最新資訊28at.com

  • Calico:Minikube 可以集成 Calico 作為容器網絡接口插件,提供網絡策略和安全性功能。
  • flannel:Minikube 還支持使用 flannel 作為容器網絡接口插件,flannel 提供了簡單而高效的網絡覆蓋,使得容器可以相互通信。

Minikube 工具基本部署安裝

Minikube 安裝部署較為簡單,這里,我們以 macOS 平臺為例,進行簡單介紹,具體如下:Qlp28資訊網——每日最新資訊28at.com

[administrator@JavaLangOutOfMemory ~ ]% brew  install minikube
[administrator@JavaLangOutOfMemory ~ ]% minikube start

當然,我們還可以自定義參數進行啟動,具體如下所示:Qlp28資訊網——每日最新資訊28at.com

[administrator@JavaLangOutOfMemory ~ ]%  minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.x.x.iso                 --registry-mirror=https://registry.docker-cn.com                 --image-mirror-country=cn                 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers                 --vm-driver=none                 --memory=4096

部署完成后,檢測相關配置參數等。Qlp28資訊網——每日最新資訊28at.com

[administrator@JavaLangOutOfMemory ~ ]% kubectl versionClient Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:52:14Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"darwin/amd64"}Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.7", GitCommit:"132a687512d7fb058d0f5890f07d4121b3f0a2e2", GitTreeState:"clean", BuildDate:"2021-05-12T12:32:49Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}
[administrator@JavaLangOutOfMemory ~ ]% kubectl get node -o wideNAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIMEminikube   Ready    control-plane,master   15h   v1.20.7   192.168.49.2   <none>        Ubuntu 20.04.2 LTS   5.10.25-linuxkit   docker://20.10.7[administrator@JavaLangOutOfMemory ~ ]% kubectl get pod -ANAMESPACE     NAME                               READY   STATUS    RESTARTS   AGEkube-system   coredns-74ff55c5b-p6dlz            1/1     Running   0          15hkube-system   etcd-minikube                      1/1     Running   0          15hkube-system   kube-apiserver-minikube            1/1     Running   0          15hkube-system   kube-controller-manager-minikube   1/1     Running   0          15hkube-system   kube-proxy-dcr72                   1/1     Running   0          15hkube-system   kube-scheduler-minikube            1/1     Running   0          15hkube-system   storage-provisioner                1/1     Running   3          15h 

常見命令行如下所示:Qlp28資訊網——每日最新資訊28at.com

[administrator@JavaLangOutOfMemory ~ ] % minikube --helpminikube provisions and manages local Kubernetes clusters optimized for development workflows.Basic Commands:  start          Starts a local Kubernetes cluster  status         Gets the status of a local Kubernetes cluster  stop           Stops a running local Kubernetes cluster  delete         Deletes a local Kubernetes cluster  dashboard      Access the Kubernetes dashboard running within the minikube cluster  pause          pause Kubernetes  unpause        unpause KubernetesImages Commands:  docker-env     Configure environment to use minikube's Docker daemon  podman-env     Configure environment to use minikube's Podman service  cache          Add, delete, or push a local image into minikube  image          Manage imagesConfiguration and Management Commands:  addons         Enable or disable a minikube addon  config         Modify persistent configuration values  profile        Get or list the current profiles (clusters)  update-context Update kubeconfig in case of an IP or port changeNetworking and Connectivity Commands:  service        Returns a URL to connect to a service  tunnel         Connect to LoadBalancer servicesAdvanced Commands:  mount          Mounts the specified directory into minikube  ssh            Log into the minikube environment (for debugging)  kubectl        Run a kubectl binary matching the cluster version  node           Add, remove, or list additional nodes  cp             Copy the specified file into minikubeTroubleshooting Commands:  ssh-key        Retrieve the ssh identity key path of the specified node  ssh-host       Retrieve the ssh host key of the specified node  ip             Retrieves the IP address of the specified node  logs           Returns logs to debug a local Kubernetes cluster  update-check   Print current and latest version number  version        Print the version of minikube  options        Show a list of global command-line options (applies to all commands).Other Commands:  completion     Generate command completion for a shellUse "minikube <command> --help" for more information about a given command.

Minikube 工具架構原理解析

Minikube 基于本地虛擬機環境部署 Kubernetes 集群,其基本架構參考示意圖,如下圖所示:Qlp28資訊網——每日最新資訊28at.com

Qlp28資訊網——每日最新資訊28at.com

具體實現原理涉及如下:Qlp28資訊網——每日最新資訊28at.com

(1) 下載 .iso 文件以能夠使得本地環境處于可用狀態Qlp28資訊網——每日最新資訊28at.com

在 Minikube 啟動過程中,首先需要下載一個 .iso 文件,以確保本地環境處于可用狀態。這個 .iso 文件通常包含一個 Linux 發行版(通常是 boot2docker )和所需的工具和依賴項。Qlp28資訊網——每日最新資訊28at.com

(2) 從下載的 .iso 文件中提取 boot2docker.iso 鏡像文件Qlp28資訊網——每日最新資訊28at.com

從下載的 .iso 文件中提取 boot2docker.is o鏡像文件。這個鏡像是一個輕量級的 Linux 操作系統,專門用于在 Minikube 中運行。Qlp28資訊網——每日最新資訊28at.com

(3) 創建用于 SSH 目的的動態證書Qlp28資訊網——每日最新資訊28at.com

在 Minikube 中,為了能夠通過 SSH 與虛擬機進行通信,需要創建一對動態證書。這些證書用于安全地建立 SSH 連接,以便管理和操作虛擬機。Qlp28資訊網——每日最新資訊28at.com

(4) 使用指定的配置創建 VirtualBox VM 文件Qlp28資訊網——每日最新資訊28at.com

根據指定的配置信息,使用 VirtualBox 虛擬化軟件創建一個虛擬機(VM)文件。這個虛擬機將用作 Minikube 集群的節點。Qlp28資訊網——每日最新資訊28at.com

(5) 設置存儲以掛載 boot2docker.iso 文件Qlp28資訊網——每日最新資訊28at.com

在虛擬機中設置存儲配置,以便將 boot2docker.iso 文件掛載到虛擬機的文件系統中。這樣,虛擬機就能夠訪問其中的文件并引導啟動。Qlp28資訊網——每日最新資訊28at.com

(6) 設置網絡相關配置(IP、DHCP 等)以及在 VM 內設置 SSH 等Qlp28資訊網——每日最新資訊28at.com

配置虛擬機的網絡相關設置,例如為虛擬機分配 IP 地址、配置 DHCP 等。此外,還在虛擬機內部設置 SSH,以便允許通過 SSH 與虛擬機進行遠程連接和管理。Qlp28資訊網——每日最新資訊28at.com

(7) 啟動虛擬機Qlp28資訊網——每日最新資訊28at.com

現在,啟動虛擬機并等待它完成啟動過程。一旦虛擬機啟動成功,它就成為 Minikube 集群中的一個節點。Qlp28資訊網——每日最新資訊28at.com

(8) 設置 /etc/hostname、 /etc/hosts 以及設置 systemd 相關文件以使得 Docker 容器引擎能夠正常啟動Qlp28資訊網——每日最新資訊28at.com

在虛擬機中進行一些配置操作,例如設置主機名(/etc/hostname)、設置主機解析(/etc/hosts)以及配置systemd相關文件。這些操作有助于確保Docker容器引擎能夠在虛擬機中正常啟動和工作。Qlp28資訊網——每日最新資訊28at.com

(9) 準備 Kubernetes 和 Docker 等相關基礎環境配置Qlp28資訊網——每日最新資訊28at.com

在虛擬機中準備 Kubernetes 和 Docker 等相關基礎環境配置。這可能涉及安裝和配置所需的軟件包、設置環境變量、創建相關目錄等。Qlp28資訊網——每日最新資訊28at.com

(10) 下載所有相關的 Kubernetes 文件 - kubelet、kubeadm 等Qlp28資訊網——每日最新資訊28at.com

在虛擬機中下載所有相關的 Kubernetes 文件,包括 kubelet、kubeadm 等工具。這些工具用于管理和操作 Kubernetes 集群。Qlp28資訊網——每日最新資訊28at.com

(11) 為 Kubernetes 所需的不同包拉取 Docker 鏡像并啟動不同的服務,例如,分布式存儲系統 Etcd、調度程序 Scheduler、控制器 Controller Manager 以及 Api ServerQlp28資訊網——每日最新資訊28at.com

在虛擬機中為 Kubernetes 所需的不同組件和服務拉取 Docker 鏡像,并啟動這些服務。這可能涉及拉取 Etcd 鏡像(用于分布式存儲系統)、啟動調度程序、控制器管理器和API服務器等關鍵組件。Qlp28資訊網——每日最新資訊28at.com

通過以上步驟,Minikube 成功完成了組件的啟動流程,并為用戶提供了一個本地的、可用于開發和測試的 Kubernetes 集群環境。Qlp28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-10489-0.html一文搞懂 Kubernetes 編排工具 Minikube

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 企業變革管理能否緩解供應鏈困境?

下一篇: 得物SRE視角下的藍綠發布

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 红桥区| 华容县| 扶绥县| 石狮市| 肇庆市| 象州县| 无锡市| 宿迁市| 福安市| 女性| 沁源县| 香港 | 原平市| 德阳市| 绍兴市| 寿阳县| 遂宁市| 马公市| 松溪县| 吉隆县| 明光市| 蓬溪县| 双江| 哈尔滨市| 平安县| 宁都县| 宜兴市| 洪湖市| 普格县| 澜沧| 白河县| 称多县| 通渭县| 延安市| 刚察县| 郧西县| 乐亭县| 台北市| 民县| 白山市| 盐池县|