平替 Docker - 玩轉容器新利器 Podman Desktop (視頻)

《OpenShift 4.x HOL教程匯總》
在 podman-desktop 1.2.1 + podman 4.4 環境中驗證。

文章目錄

  • 什么是 podman 和 podman-desktop
  • 安裝 podman 和 podman-desktop 基本環境
  • Image、Container 和 Pod 的基本操作
    • 拉取 Image
    • 運行 Container
  • 將 Pod 部署到 Kubernetes
    • 安裝 Kind 擴展插件
    • 創建 Kubernetes 集群
    • 向 Kubernetes 部署 Pod
    • 訪問 Kubernetes 中的 Pod
  • 視頻

什么是 podman 和 podman-desktop

在這里插入圖片描述

  • podman 是 RedHat 公司主導的一個免費的開源容器項目,目標是平替安全能力較差的 Docker。作為運行容器的獨立環境,podman 目前已經廣泛被用在 Linux、MacOS 或 Windows 環境中。尤其在 RHEL、CentOS、SUSE、Ubuntu 等 Linux 中,podman 已經是默認的容器運行環境了。除了比 Docker 有更優的安全運行特性外,podman 還有很多其他特性。例如 podman 不但可以運行標準容器,還可以像 Kubernetes 那樣運行 Pod(但不能調度 Pod),因此可以作為容器應用開發、測試和運行的環境。
  • podman desktop 是運行 podman 的圖形化工具,可以讓對容器/Pod的操作更加容易。

安裝 podman 和 podman-desktop 基本環境

本文使用了運行Fedora 38 桌面版的虛機,其中缺省會自帶 podman 運行環境。另外由于要在其中運行 Kubernetes 集群,因此虛機內存最少配置 6G。

  1. 查看 podman 版本。
$ podman version
Client:       Podman Engine
Version:      4.4.2
API Version:  4.4.2
Go Version:   go1.20.1
Built:        Wed Mar  1 19:22:39 2023
OS/Arch:      linux/amd64
  1. 在 https://podman-desktop.io/downloads 頁面下載 tar.gz 形式的 podman-desktop 文件包。
  2. 解壓文件,然后運行 podman-desktop。
$ tar -xvf podman-desktop-1.2.1.tar.gz
$ cd podman-desktop-1.2.1
$ podman-desktop
  1. 在初始界面中點擊下方的 Go to Podman Desktop 進入正式界面。
    在這里插入圖片描述

Image、Container 和 Pod 的基本操作

拉取 Image

  1. 在 Setting 欄目中的 Registries 中可以添加 Registry 的地址、訪問用戶名和密碼。
    在這里插入圖片描述
  2. 在 Images 欄目中點擊 Pull an image 拉取 httpd:2.4.57 鏡像。在這里插入圖片描述

運行 Container

  1. 先點擊上圖 httpd 鏡像右側的 Run Image 箭頭,然后在下圖的界面中提供 Container name 為 apache-httpd-1,最后點擊下方的 Start Container 按鈕。
    在這里插入圖片描述
  2. 點擊 Containers 欄目中的 apache-httpd-1 右側的下拉菜單,然后再點擊 Open Browser。
    在這里插入圖片描述
  3. 可以在瀏覽器中訪問到運行在容器中的httpd頁面。
    在這里插入圖片描述
  4. 點擊第2部的 Generate Kube 菜單,然后將生成的內容保存到本地 pod-httpd.yaml 文件中。
    在這里插入圖片描述
  5. 停止 apache-httpd-1 容器運行。
  6. 在 Pods 欄目界面中點擊右上方的 Play Kubernetes YAML 按鈕,然后在下圖的界面中為 Kubernetes YAML file 選擇 pod-httpd.yaml 文件。
    在這里插入圖片描述
  7. 在 Pods 欄目中可以看到運行的 Pod。最后可以刷新步驟 3 的瀏覽器,確認可以正常訪問到 httpd 頁面。
    在這里插入圖片描述

將 Pod 部署到 Kubernetes

安裝 Kind 擴展插件

  1. 在 Podman Desktop 窗口下方點擊 Kind。
    在這里插入圖片描述
  2. 在彈出窗口中點擊 Yes 開始下載 Kind 軟件。
    在這里插入圖片描述
  3. 下載完在提示窗口中點擊 Yes,然后提供管理員權限。
    在這里插入圖片描述

創建 Kubernetes 集群

  1. 在 Settings 欄目中進入 Resources,然后點擊 Kind 下面的 Create new 按鈕。
    在這里插入圖片描述

  2. 在 Create a Kind cluster 界面中點擊 Create 按鈕。
    在這里插入圖片描述

  3. 在創建完 Kind 集群后可以看到 kind-cluster 已經是 Running 狀態了,同時還能看到 Kubernetes endpoint 地址。此外在狀態欄可以看到識別出的剛剛創建的 Kubernetes 集群名稱。注意:如果沒有識別出 Kubernetes 集群名稱,可以嘗試關閉并重啟 Podman Desktop。
    在這里插入圖片描述

  4. 運行命令,查看運行 Kubernetes 的容器。

$ podman ps
CONTAINER ID  IMAGE                                                                                           COMMAND     CREATED      STATUS      PORTS                                                                   NAMES
abbe67e830d3  docker.io/kindest/node@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72              5 hours ago  Up 5 hours  0.0.0.0:9090->80/tcp, 0.0.0.0:9443->443/tcp, 127.0.0.1:41535->6443/tcp  kind-cluster-control-plane
  1. 在瀏覽器中確認可以訪問 Kubernetes endpoint。
    在這里插入圖片描述
  2. 安裝 kubectl 命令。
$ sudo yum install kubernetes-client
  1. 使用 ~/.kube/config 訪問 Kubernetes,查看 Kubernetes 命名空間。
$ more ~/.kube/config$ kubectl get namespace
NAME                 STATUS   AGE
default              Active   9m45s
kube-node-lease      Active   9m45s
kube-public          Active   9m45s
kube-system          Active   9m45s
local-path-storage   Active   9m34s
projectcontour       Active   9m32s

向 Kubernetes 部署 Pod

  1. 在 Containers 欄目中點擊 apache-httpd-1 右側下拉菜單的 Deploy to Kubernetes。
    在這里插入圖片描述
  2. 在下圖的 Deploy generated pod to Kubernetes 窗口中確認部署的 Kubernetes Context 和 Kubernetes namespace,最后點擊 Deploy 按鈕。
    在這里插入圖片描述
  3. 部署成功后可以在下圖界面中看到 pod 是 Running 狀態了,最后點擊 Done 按鈕即可。
    在這里插入圖片描述

訪問 Kubernetes 中的 Pod

  1. 查看運行在 Kubernetes 中的 apache-httpd-1-pod 和 Service,然后記下 apache-httpd-1-pod-9000 服務的 CLUSTER-IP 地址。
$ kubectl get pod -n default
NAME                 READY   STATUS    RESTARTS   AGE
apache-httpd-1-pod   1/1     Running   0          37s$ kubectl get svc -n default
NAME                      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
apache-httpd-1-pod-9000   ClusterIP   10.96.119.200   <none>        9000/TCP   58s
kubernetes                ClusterIP   10.96.0.1       <none>        443/TCP    29m
  1. 點擊 kind-cluster-control-plane 容器,進入容器內部。
    在這里插入圖片描述
  2. 在容器中的 Terminal 中執行 “curl 10.96.119.200:9000”,然后確認可以訪問到頁面。
    在這里插入圖片描述

視頻

視頻

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

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

相關文章

Python爬蟲——selenium_元素定位

元素定位&#xff1a;自動化要做的就是模擬鼠標和鍵盤來操作這些元素&#xff0c;點擊&#xff0c;輸入等等。操作這些元素前首先要找到它們&#xff0c;WebDriver提供很多定位元素的方法 from selenium import webdriver# 創建瀏覽器對象 path files/chromedriver.exe brows…

【安全】淺談信息安全

信息安全 理解信息安全&#xff0c;要從“信息”、“安全”兩個角度入手。 信息 信息是對客觀世界的反映&#xff0c;表現客觀事物的運動狀態和變化的實質內容。 信息具有可識別、可傳載、可共享、可度量的基本特征。 信息系統 信息系統是獲取&#xff08;收集&#xff0…

中心對稱鏈表

文章目錄 1 題目2 思路2.1 思路一2.2 思路二2.3 考點2.4 擴展 3 實現3.1 思路13.2 思路23.3 完整例子 1 題目 已知長度為n&#xff08;n>1&#xff09;的單鏈表&#xff0c;表頭指針為L&#xff0c;結點結構由data和next兩個域構成&#xff0c;其中data域為字符型&#xff…

Linux RPM包安裝、卸載和升級(rpm命令)詳解

(轉載請刪除括號里的內容) 下面講解一下&#xff0c;如何使用 rpm 命令對 RPM 二進制包進行安裝、卸載和升級操作。我們以安裝 apache 程序為例。 RPM包默認安裝路徑 通常情況下&#xff0c;RPM 包采用系統默認的安裝路徑&#xff0c;所有安裝文件會按照類別分散安裝到下表所…

優漫動游 大廠需要什么樣的ui設計師呢?

通常來說大公司UI設計的流程主要是這樣的&#xff1a;創意-頭腦風暴-策劃方案-交互設計&評審-美術設計&評審-開發實施&#xff0c;不過實際上大多數公司都有自己的一套流程&#xff0c;源于公司的基因、公司組織體系、公司領導風格。一起了解大廠需要什么樣的ui設計師呢…

谷粒商城第十一天-品牌管理中關聯分類

目錄 一、總述 二、前端部分 1. 調整查詢調用 2. 關聯分類 三、后端部分 四、總結 一、總述 之前是在商品的分類管理中直接使用的若依的逆向代碼 有下面的幾個問題&#xff1a; 1. 表格上面的參數填寫之后&#xff0c;都是按照完全匹配進行搜索&#xff0c;沒有模糊匹配…

nodejs實現前后端websocket通信+心跳示例

nodejs后端代碼 server.js //需要安裝ws模塊 npm install ws const WebSocket require("ws") const port 8085const ws new WebSocket.Server({port})ws.on("connection", (socket) > {socket.on("message",(message) > {const da…

自定義hook之首頁數據請求動作封裝 hooks

本例子實現了自定義hook之首頁數據請求動作封裝 hooks&#xff0c;具體代碼如下 export type OrganData {dis: Array<{ disease: string; id: number }>;is_delete: number;name: string;organ_id: number;parent_id: number;sort: number; }; export type SwiperData …

【STM32】簡介

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介紹&#xff1a;"謓澤"正在路上朝著"攻城獅"方向"前進四" &#x1f50e;&#x1f3c5; 榮譽&#xff1a;2021|2022年度博客之星物聯網與嵌入式開發TOP5|TOP4、2021|2022博客之星T…

(2)linux虛擬機配置中文輸入法和如何下載軟件

&#xff08;一&#xff09;配置中文輸入法&#xff1a; 1、sudo apt-get install fcitx&#xff0c;安裝fcitx框架&#xff0c;安裝完成之后&#xff0c;選擇該框架 2、接下來輸入sudo apt-get install fcitx fcitx-googlepinyin&#xff0c;安裝谷歌輸入法之后&#xff0c;重…

WebSocket與消息推送

B/S結構的軟件項目中有時客戶端需要實時的獲得服務器消息&#xff0c;但默認HTTP協議只支持請求響應模式&#xff0c;這樣做可以簡化Web服務器&#xff0c;減少服務器的負擔&#xff0c;加快響應速度&#xff0c;因為服務器不需要與客戶端長時間建立一個通信鏈接&#xff0c;但…

Windows - UWP - 網絡不好的情況下安裝(微軟商店)MicrosoftStore的應用

Windows - UWP - 網絡不好的情況下安裝&#xff08;微軟商店&#xff09;MicrosoftStore的應用 前言 UWP雖然幾乎被微軟拋棄了&#xff0c;但不得不否認UWP應用給用戶帶來的體驗。沙箱的運行方式加上微軟的審核&#xff0c;用戶使用起來非常放心&#xff0c;并且完美契合Wind…

聚類與回歸

聚類 聚類屬于非監督式學習&#xff08;無監督學習&#xff09;&#xff0c;往往不知道因變量。 通過觀察學習&#xff0c;將數據分割成多個簇。 回歸 回歸屬于監督式學習&#xff08;有監督學習&#xff09;&#xff0c;知道因變量。 通過有標簽樣本的學習分類器 聚類和…

前端實現文件預覽功能

前端實現文件預覽功能 ? 需求&#xff1a;實現一個在線預覽pdf、excel、word、圖片等文件的功能。 介紹&#xff1a;支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代碼實現所有功能&#xff0c;建議以下的預覽文件標簽可以在外層包裹一層彈窗。 ? 圖片預覽 iframe標簽…

前端雜項-個人總結八股文的背誦方案

個人總結八股文的背誦方案 URL到顯示網頁的過程 瀏覽器解析URL&#xff0c;獲取協議&#xff0c;主機名&#xff0c;端口號&#xff0c;路徑等信息&#xff0c;并通過DNS查詢將主機名轉換為對應的IP地址瀏覽器與服務器建立TCP&#xff0c;進行三次握手。瀏覽器向服務器發送HT…

枚舉緩存工具

此文章為筆記&#xff0c;為閱讀其他文章的感受、補充、記錄、練習、匯總&#xff0c;非原創&#xff0c;感謝每個知識分享者。 文章目錄 1. 背景2. 枚舉緩存3. 樣例展示4. 性能對比5. 總結 本文通過幾種樣例展示如何高效優雅的使用java枚舉消除冗余代碼。 1. 背景 枚舉在系統…

不需要用@Param注解與需要用@Param注解的情況

不需要用Param注解&#xff1a; 1.只有一個參數時&#xff0c;不需要用Param注解。此時在不使用Parma注解的情況下&#xff0c;sql語句中的參數占位符名稱直接使用任何名稱均可&#xff1b; 2.方法參數是引用數據類型的情況下&#xff0c;不需要用Param注解。 需要用Param注…

QT生成Word PDF文檔

需求&#xff1a;將軟件處理的結果保存為一個報告文檔&#xff0c;文檔中包含表格、圖片、文字&#xff0c;格式為word的.doc和.pdf。生成word是為了便于用戶編輯。 開發環境&#xff1a;qt4.8.4vs2010 在qt的官網上對于pdf的操作介紹如下&#xff1a;http://qt-project.org/…

華為認證 | H3C廠商證書,含金量有多高?

華為H3C認證是中國第一家建立國際規范的完整的網絡技術認證體系&#xff0c;它的作用是不言而喻的&#xff0c;工作上它能給你帶來技能加分。 那么H3C認證網絡工程師證書含金量怎么樣呢&#xff1f;下面我們就來了解一下吧。 01 H3C認證網絡工程師證書含金量 全面覆蓋H3C相關…

微服務Eureka注冊中心

目錄 一、Eureka的結構和作用 二、搭建eureka-server 三、服務注冊 四、服務發現 假如我們的服務提供者user-service部署了多個實例&#xff0c;如圖&#xff1a; 存在的問題&#xff1a; order-service在發起遠程調用的時候&#xff0c;該如何得知user-service實例的ip地址…