做一百度网站吗网页翻译怎么弄
《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。
- 查看 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
 
- 在 https://podman-desktop.io/downloads 页面下载 tar.gz 形式的 podman-desktop 文件包。
 - 解压文件,然后运行 podman-desktop。
 
$ tar -xvf podman-desktop-1.2.1.tar.gz
$ cd podman-desktop-1.2.1
$ podman-desktop
 
- 在初始界面中点击下方的 Go to Podman Desktop 进入正式界面。

 
Image、Container 和 Pod 的基本操作
拉取 Image
- 在 Setting 栏目中的 Registries 中可以添加 Registry 的地址、访问用户名和密码。

 - 在 Images 栏目中点击 Pull an image 拉取 httpd:2.4.57 镜像。

 
运行 Container
- 先点击上图 httpd 镜像右侧的 Run Image 箭头,然后在下图的界面中提供 Container name 为 apache-httpd-1,最后点击下方的 Start Container 按钮。

 - 点击 Containers 栏目中的 apache-httpd-1 右侧的下拉菜单,然后再点击 Open Browser。

 - 可以在浏览器中访问到运行在容器中的httpd页面。

 - 点击第2部的 Generate Kube 菜单,然后将生成的内容保存到本地 pod-httpd.yaml 文件中。

 - 停止 apache-httpd-1 容器运行。
 - 在 Pods 栏目界面中点击右上方的 Play Kubernetes YAML 按钮,然后在下图的界面中为 Kubernetes YAML file 选择 pod-httpd.yaml 文件。

 - 在 Pods 栏目中可以看到运行的 Pod。最后可以刷新步骤 3 的浏览器,确认可以正常访问到 httpd 页面。

 
将 Pod 部署到 Kubernetes
安装 Kind 扩展插件
- 在 Podman Desktop 窗口下方点击 Kind。

 - 在弹出窗口中点击 Yes 开始下载 Kind 软件。

 - 下载完在提示窗口中点击 Yes,然后提供管理员权限。

 
创建 Kubernetes 集群
-  
在 Settings 栏目中进入 Resources,然后点击 Kind 下面的 Create new 按钮。

 -  
在 Create a Kind cluster 界面中点击 Create 按钮。

 -  
在创建完 Kind 集群后可以看到 kind-cluster 已经是 Running 状态了,同时还能看到 Kubernetes endpoint 地址。此外在状态栏可以看到识别出的刚刚创建的 Kubernetes 集群名称。注意:如果没有识别出 Kubernetes 集群名称,可以尝试关闭并重启 Podman Desktop。

 -  
运行命令,查看运行 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
 
- 在浏览器中确认可以访问 Kubernetes endpoint。

 - 安装 kubectl 命令。
 
$ sudo yum install kubernetes-client
 
- 使用 ~/.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
- 在 Containers 栏目中点击 apache-httpd-1 右侧下拉菜单的 Deploy to Kubernetes。

 - 在下图的 Deploy generated pod to Kubernetes 窗口中确认部署的 Kubernetes Context 和 Kubernetes namespace,最后点击 Deploy 按钮。

 - 部署成功后可以在下图界面中看到 pod 是 Running 状态了,最后点击 Done 按钮即可。

 
访问 Kubernetes 中的 Pod
- 查看运行在 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
 
- 点击 kind-cluster-control-plane 容器,进入容器内部。

 - 在容器中的 Terminal 中执行 “curl 10.96.119.200:9000”,然后确认可以访问到页面。

 
视频
视频
