1、容器、Pod是什么容器是一个独立的环境,我们在其中打包应用程序及其依赖项。通常,容器运行单个进程,每个容器都有一个IP地址,可以附加卷并控制CPU和内存资源等。所有这些都是通过命名空间和控制组的概念发生的。 Kubernetes是一个用于部署、扩展和管理容器化应用程序的容器编排系统,它有自己的容器运行方式。其中,Pod是Kubernetes中最小的可部署单元,代表应用程序的单个实例。 比如,如果想运行Nginx应用程序,就可以在Pod中运行。与容器的区别:容器是一个单一的单元,而一个Pod可以包含多个容器。可以将Pod视为将一个或多个容器容纳在一起的盒子。Pod提供更高级别的抽象,允许将多个容器作为一个单元管理。这里不再是每一个容器一个IP,而是Pod整体获取一个IP,然后Pod内的多个不同容器互相之间,用localhost通信。 1)Pod内所有容器共享以下Linux命名空间:
2)Pod内容器默认隔离以下资源:
【ps】
2、Pod YAML(对象定义)Pod是原生Kubernetes对象,若要创建Pod,要以YAML格式声明pod要求。还可以用kubectl命令创建pod。以下是创建Nginx web服务器Pod的Pod yaml示例。 [code]apiVersion: v1 kind: Pod metadata: name: web-server-pod labels: app: web-server environment: production annotations: description: This pod runs the web server spec: containers: - name: web-server image: nginx:latest ports: - containerPort: 80[/code]
3、创建Pod有两种方式创建容器:1)使用kubectl(命令有其自身局限性);2)声明性方法(使用YAML清单)。 [code]Pod 的名称是 web-server-pod 它应该有标签 app:web-server 和 environment:production 添加注释来描述容器。 使用 nginx:1.14.2 容器镜像。 公开容器端口 80。[/code](1)使用kubectl命令创建Pod [code]kubectl run web-server-pod \ --image=nginx:1.14.2 \ --restart=Never \ --port=80 \ --labels=app=web-server,environment=production \ --annotations description="This pod runs the web server"[/code]kubectl get pods可以看到容器正在运行的状态,在我们这个例子中pod内只有一个容器。因此显示1/1准备就绪并正在运行。如果想查看正在运行的pod的所有内容,可以使用kebectl来查看这个pod的描述:kubectl describe pod web-server-pod(包括IP地址、命名空间、容器详细信息等) (2)使用声明式YAML创建Pod 就是上面那个YAML文件,需要使用文件名执行以下kubectl命令:kubectl create -f nginx.yaml。 从本地工作站访问K8S集群中正在运行的pod。kubectl port-forward pod/web-server-pod 8080:80。此时进入到浏览器并访问localhost:8080会看到Nginx主页,该网页由我们的Nginx Web Server的Pod提供服务。 4、Pod生命周期Pod通常由ReplicaSet Controller、Deployment Controller等控制器管理,使用YAML创建单个Pod时,不受任何控制器管理,在这种情况下,Pod会经历不同的生命周期阶段。
参考: 1、https://zhuanlan.zhihu.com/p/714041421
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |

前言 在信息碎片化的今天,微信公众号依然是高质量中文内容的重要来源。然而,微信生态的封闭性使得我们难以通过习惯的 RSS 阅读器聚合阅读。WeRSS 是一个优秀的开源项目,致力于打破这一壁垒,它通过模拟请求
做海外仓的老板都知道,海外仓的计费一般就分三大块,分别是仓储费、库内操作费、物流费,其中尾程运费是海外仓盈利的关键盈利模块:通过向上游物流商获取低价运费,再增加差价卖给商家,这部分差价构成物流费部分的