容器與 Kubernetes 基本概念與架構

文章目錄

    • 1. 典型環境層次結構
    • 2. Kubernetes 生態三大類
      • 2.1 核心組件
      • 2.2 集群管理工具
      • 2.3 生態輔助工具
      • 2.4 資源管理關系
    • 3. Docker 容器技術與實踐
      • 3.1 鏡像拉取加速
      • 3.2 認證與登錄
      • 3.3 常用命令
      • 3.4 存儲掛載方式對比
      • 3.5 docker-compose 啟動
      • 3.6 容器化應用部署示例
    • 4. kind 快速啟動
    • 5. 參考資料

1. 典型環境層次結構

  1. 物理機/宿主機:運行虛擬化或容器化環境的基礎硬件。
  2. 虛擬機(可選):部分場景下,容器運行在虛擬機之上,增強隔離性和資源管理。
  3. Docker(或其他容器引擎):負責容器的創建、運行和管理。
  4. Kubernetes:在容器引擎之上,負責容器集群的編排與調度。

2. Kubernetes 生態三大類

Kubernetes 生態可分為三大類:

  • 核心組件:實現集群基本功能,構成 Kubernetes 的分布式系統本體。
  • 集群管理工具:用于集群的安裝、模擬、管理和測試。
  • 生態輔助工具:提升開發、部署、運維效率,簡化復雜操作。

2.1 核心組件

組件作用簡介
kube-apiserver集群 API 服務入口,所有操作都通過它進行。
etcd分布式鍵值存儲,保存集群所有數據。
kube-scheduler負責 Pod 的調度。
kube-controller-manager負責各種控制器(如副本、節點、命名空間等)。
kubelet每個節點上的代理,負責 Pod 的生命周期管理。
kube-proxy負責服務的網絡代理和負載均衡。
container runtime容器運行時(如 Docker、containerd),負責容器的創建和管理。

注意:Kubernetes(K8s)不是一個單一可執行程序,而是由多個核心組件(如 kube-apiserver、kubelet、etcd 等)和生態工具協同組成的分布式系統,kubectl 只是常用的客戶端入口。

2.2 集群管理工具

工具作用與簡要描述
kubeadm官方主流的生產級集群安裝和生命周期管理工具,適合自建高可用生產集群。
Kind基于 Docker 容器的本地多節點 Kubernetes 集群工具,便于本地模擬和測試。
Minikube在本地 VM 或容器中運行單節點 Kubernetes,適合個人開發和測試。

2.3 生態輔助工具

工具作用與簡要描述
Docker主流的容器運行時,負責容器的打包、分發、運行和隔離。
kubectlKubernetes 官方命令行工具,管理和操作集群資源。
HelmKubernetes 的包管理器,將應用及其所有相關資源打包為 Chart,簡化安裝、升級和回滾。
Skaffold持續開發工具,自動化構建、部署并同步本地代碼到集群,支持多種構建和部署后端。
  • Docker:一切容器化的基礎,Kind/Minikube等本地K8s方案都依賴于 Docker 或兼容容器引擎。
  • Kind/Minikube:本地快速搭建 Kubernetes 集群,適合開發、測試和學習。
  • kubectl:與 Kubernetes 集群直接交互的 CLI,所有集群操作的標準入口。
  • Helm:K8s 應用的包管理與部署標準,提升運維效率。
  • Skaffold:本地開發到集群的自動化橋梁,適合持續集成與敏捷開發。

以上工具均為主流開源方案,廣泛應用于開發、測試和生產環境。
Chart 就是 Helm 的"打包格式",負責描述、版本化、分享和管理一組 Kubernetes 資源,是 Helm 能夠簡化應用部署與運維的核心所在。
參考:Kubernetes官方文檔

2.4 資源管理關系

  • Node:物理機或虛擬機
  • Pod:容器的運行單元
  • ReplicaSet:管理 Pod 的副本數量
  • Deployment:管理 ReplicaSet,實現應用升級、回滾
  • Service:為 Pod 提供統一入口,負責流量分發

3. Docker 容器技術與實踐

3.1 鏡像拉取加速

  • 鏡像加速配置參考:Docker Hub 國內鏡像源配置
  • 配置文件(macOS):~/docker/daemon.json
  • 示例:
    {"registry-mirrors": ["https://mi0m0nd3.mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn"]
    }
    
  • 如遇鏡像拉取失敗,可用 dig 命令測試 DNS 解析,例如:
    dig @114.114.114.114 registry-1.docker.io
    
  • 支持從私有倉庫拉取鏡像,例如:
    docker pull 10.132.17.6:28443/nginx
    

3.2 認證與登錄

  • 推薦使用代理或科學上網
  • 阿里云鏡像倉庫登錄示例:
    sudo docker login --username=xxx registry.cn-hangzhou.aliyuncs.com
    
  • docker login 會將認證憑據存儲在配置文件(如 ~/.docker/config.json),拉取鏡像時自動使用。
  • 認證和鏡像加速配置均可在 config.json 查看。

安全提示:config.json 中的 auths 字段內容為 base64 編碼的用戶名和密碼,注意保護,不要泄露。
參考:Docker CLI config reference

3.3 常用命令

  • 查看所有容器:docker ps -a
  • 啟動容器:docker start <容器名>
  • 停止容器:docker stop <容器名>
  • 重啟容器:docker restart <容器名>
  • 查看日志:docker logs <容器名>
  • 進入容器:docker exec -it <容器名> /bin/bash
  • 刪除容器:docker rm <容器名>
  • 查看掛載:docker inspect <容器ID> | grep -A 5 "Mounts"
  • 批量刪除某類容器:
    docker ps --filter "name=llm" --format '{{.ID}}' | xargs docker rm -f
    
  • 其他常用命令:
    • 查看卷:docker volume ls
    • 查看詳細信息:docker inspect <容器名或ID>
    • 保存鏡像為文件:docker save <鏡像ID> -o <文件名>
    • 構建鏡像:docker build -t <鏡像名> .

3.4 存儲掛載方式對比

特性命名卷(-v volume_name:/container/path)宿主機目錄掛載(-v /host/path:/container/path)
可移植性更好,不依賴宿主機路徑較差,依賴宿主機目錄結構
備份管理由 Docker 集中管理需手動管理宿主機目錄
訪問便捷性不易直接訪問內容可直接在宿主機上查看和修改
性能取決于 Docker 存儲驅動直接訪問宿主機文件系統
用途應用數據、數據庫存儲代碼開發、配置文件、日志輸出

3.5 docker-compose 啟動

docker-compose --compatibility up -d

如使用代理,需確保 Docker Desktop 已開啟代理。

3.6 容器化應用部署示例

PostgreSQL 15 容器部署:

docker run --name postgres15 \-p 5432:5432 \-e POSTGRES_PASSWORD=your_password \-v postgres_data:/var/lib/postgresql/data \-d postgres:15-alpine

4. kind 快速啟動

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64
chmod +x kind && sudo mv kind /usr/local/bin/
kind create cluster

驗證 API Server 是否正常響應:

kubectl --context kind-kind get --raw /

5. 參考資料

  • Kubernetes官方文檔
  • Docker Hub國內鏡像源配置
  • minikube常見問題解答
  • Docker萬字教程:從入門到掌握
  • Docker CLI config reference

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

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

相關文章

Ajax和Axios的初步學習

Ajax 一、什么是 Ajax&#xff1f; Ajax (Asynchronous JavaScript and XML) 是一種無需重新加載整個網頁的情況下&#xff0c;能夠更新部分網頁的技術。通過在后臺與服務器進行少量數據交換&#xff0c;Ajax 可以使網頁實現異步更新。 主要特性&#xff1a; 異步性 (Asynch…

C#指針:解鎖內存操作的底層密碼

C#指針&#xff1a;解鎖內存操作的底層密碼 在 C# 的世界里&#xff0c;我們習慣了托管代碼帶來的安全與便捷 —— 垃圾回收器自動管理內存&#xff0c;類型系統嚴格檢查數據操作&#xff0c;就像在精心維護的花園中漫步&#xff0c;無需擔心雜草與荊棘。但當性能成為關鍵瓶頸…

永洪科技榮獲商業智能品牌影響力獎,全力打造”AI+決策”引擎

近日&#xff0c;在備受業界矚目的年度商業智能領域權威評選中&#xff0c;永洪科技憑借卓越的技術實力、深度的客戶價值創造能力與前瞻的行業洞察&#xff0c;成功斬獲“2025商業智能品牌影響力獎”。這一獎項不僅是對永洪科技市場地位與品牌聲量的高度認可&#xff0c;更是對…

在SSM+vue項目中上傳表單數據和文件

從前端向后端發送multipart/form-data 類型數據&#xff08;主要用于文件上傳或表單提交&#xff09;如發送如下信息&#xff1a;前端代碼vue文件&#xff1a;&#xff08;配置了服務器代理&#xff09;<template><div class"content"><el-form :mode…

Python 機器學習核心入門與實戰進階 Day 1 - 分類 vs 回歸

? 今日目標 理解分類&#xff08;Classification&#xff09;與回歸&#xff08;Regression&#xff09;的本質區別掌握兩種任務的典型使用場景學會根據任務類型選擇合適的模型了解每類模型對應的評估指標 &#x1f4d8; 一、監督學習的兩大任務類型 任務類型輸出結果典型問…

RPC--自定義注解注冊發布服務

自定義的三個注解1、RpcReference這個注解用于修飾類的某個字段&#xff0c;表示這個字段是遠程調用的引用下面詳細解釋下這個字段的定義Document表示這個注解應該被javadoc文檔工具記錄&#xff0c;生成API文檔時使用了該注解的地方會被顯示出來Retention表示這個注解的聲明周…

Web 3D可視化引擎HOOPS Communicator,高效賦能工業級應用開發!

在數字化轉型加速的今天&#xff0c;企業面臨著前所未有的挑戰——如何高效管理跨平臺的設計數據、提升團隊協作效率&#xff0c;并加快產品上市速度。HOOPS Communicator作為一款高性能的3D可視化與共享平臺&#xff0c;憑借其強大的兼容性、先進的3D渲染引擎和無縫的協作功能…

OceanBase數據庫遷移工具介紹和部署

OceanBase數據庫遷移工具介紹和部署核心組件遷移支持部署要求單節點部署查看日志OceanBase 遷移服務&#xff08;OceanBase Migration Service, OMS&#xff09;是OceanBase數據庫提供的一種支持同構或異構數據源與OceanBase數據庫之間進行數據交互的服務&#xff0c;具備在線遷…

棧與隊列:算法基礎的核心差異

理解棧和隊列的異同對打好算法基礎太重要了&#xff01;它們都是編程和算法中無處不在的線性數據結構&#xff0c;核心區別在于操作數據的順序。下面我來幫大家清晰梳理它們的異同點&#xff1a;一、相同點都是線性數據結構&#xff1a;數據元素之間邏輯上呈現“一個接一個”的…

HCIA-生成數協議(STP)

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 ? 本篇筆記是根據B站上的視頻教程整理而成&#xff0c;感謝UP主的精彩講解&#xff01;如果需要了解更多細節&#xff0c;可以參考以下視頻&#xf…

基于內網穿透技術的Stable+Diffusion+3.5本地化部署與遠程圖像生成架構

文章目錄 前言1. 本地部署ComfyUI2. 下載 Stable Diffusion3.5 模型3. 演示文生圖4. 公網使用Stable Diffusion 3.5 大模型4.1 創建遠程連接公網地址 5. 固定遠程訪問公網地址 前言 在數字內容創作行業中&#xff0c;利用本地化服務器進行人工智能部署的策略正逐步成為優化制作…

私有云平臺實戰-OpenStack入門體驗

目錄 #1.1云計算概述 1.1.1什么是云計算 1.1.2云計算的服務模型 1.1.3OpenStack概述 #2.1OpenStack一鍵部署 2.1.1在線安裝 2.1.2使用本地倉庫離線安裝 2.1.3創建云主機 1.1云計算概述 云計算是一種基于互聯網的計算方式&#xff0c;通過網絡將共享的軟硬件資源和信息按需提供…

專題:2025即時零售與各類人群消費行為洞察報告|附400+份報告PDF、原數據表匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p42808 即時零售的崛起正在重塑消費市場的時間與空間邊界。從清晨的第一杯咖啡到深夜的應急零食&#xff0c;消費者的需求不再受限于傳統營業時間。與此同時&#xff0c;不同人群的消費習慣呈現出鮮明差異&#xff0c;Z世代沉迷線上娛…

【一起來學AI大模型】算法核心:數組/哈希表/樹/排序/動態規劃(LeetCode精練)

以下是五大核心算法的重點解析和LeetCode經典題解&#xff0c;包含最優解法和模板代碼&#xff1a;一、數組操作&#xff08;雙指針/滑動窗口&#xff09;核心思想&#xff1a;通過索引指針高效遍歷與操作數組1. 移動零&#xff08;No.283&#xff09;def moveZeroes(nums):slo…

CSS之基礎語法一文全解析

CSS之基礎語法一文全解析 一、CSS語法核心結構&#xff1a;選擇器聲明塊1.1 基礎語法模板1.2 關鍵組成部分 二、選擇器全解析&#xff1a;精準定位目標元素2.1 基礎選擇器&#xff08;必掌握&#xff09;2.1.1 標簽選擇器&#xff08;類型選擇器&#xff09;2.1.2 類選擇器&…

vue 前端動態導入文件 import.meta.glob 導入圖片

背景&#xff1a; 在開發過程中&#xff0c;前端會引入資源文件&#xff0c;這里主要是引入圖片。在開發環境&#xff0c;導入的圖片顯示正常&#xff0c;但是打包部署后&#xff0c;導入的圖片就不能正常顯示。 原因分析&#xff0c;可能有如下幾點&#xff1a; 1.圖片不能顯示…

RocketMQ-Dashboard頁面報Failed to fetch ops home page data錯誤

今天安裝RocketMQ-Dashboard&#xff0c;訪問主頁&#xff0c;頁面彈框提示Failed to fetch ops home page data&#xff0c;F12發現控制臺輸出網絡請求跨域。解決&#xff1a;不要用127.0.0.1訪問&#xff0c;用localhost就不報錯了

0704-0706上海,又聚上了

上次&#xff0c;還是0413&#xff0c;當時寫了一篇&#xff0c;下次相見是何時&#xff1f;也鼓勵自己下次相見是找到工作&#xff08;實習也算&#xff09;&#xff0c;沒想到真找到了&#xff0c;DW App 說到實習&#xff0c;其實沒認真投遞很多&#xff0c;互聯網公司除了阿…

【win電腦-程序CMD自啟動問題-開機就自啟動-查找原因-解決方式】

【win電腦-程序CMD自啟動問題-開機就自啟動-查找原因-解決方式】 1&#xff0c;情況說明&#xff1a;2&#xff0c;問題描述1-這是什么窗口 2-原因分析&#xff1a;3-我的努力-嘗試解決&#xff1a;1&#xff0c;任務管理器中查看狀態2&#xff0c;查看啟動文件夾3&#xff0c;…

Go語言實現雙Token登錄的思路與實現

Go語言實現雙Token登錄的思路與實現 引言 在現代Web應用中&#xff0c;身份認證是保障系統安全的重要環節。傳統的單Token認證方式存在一些安全隱患&#xff0c;如Token泄露可能導致長期風險。雙Token機制&#xff08;Access Token Refresh Token&#xff09;提供了更好的安全…