当前位置: 首页 > wzjs >正文

设计师的个人网站网络舆情的网站

设计师的个人网站,网络舆情的网站,南头专业外贸网站建设公司,做网站都需要服务器吗概念 Pod 容器组 是一个k8s中一个抽象的概念,用于存放一组 container(可包含一个或多个 container 容器,即图上正方体),以及这些 container (容器)的一些共享资源。这些资源包括: 共享存储&…

 概念

Pod 容器组 是一个k8s中一个抽象的概念,用于存放一组 container(可包含一个或多个 container 容器,即图上正方体),以及这些 container (容器)的一些共享资源。这些资源包括:

  • 共享存储,称为卷(Volumes),即图上紫色圆柱
  • 网络,每个 Pod(容器组)在集群中有个唯一的 IP,pod(容器组)中的 container(容器)共享该IP地址
  • container(容器)的基本信息,例如容器的镜像版本,对外暴露的端口等

例如,Pod可能既包含带有Node.js应用程序的 container 容器,也包含另一个非 Node.js 的 container 容器,用于提供 Node.js webserver 要发布的数据。Pod中的容器共享 IP 地址和端口空间(同一 Pod 中的不同 container 端口不能相互冲突),始终位于同一位置并共同调度,并在同一节点上的共享上下文中运行。(同一个Pod内的容器可以使用 localhost + 端口号互相访问)。

Pod(容器组)是 k8s 集群上的最基本的单元。当我们在 k8s 上创建 Deployment 时,会在集群上创建包含容器的 Pod (而不是直接创建容器)。每个Pod都与运行它的 worker 节点(Node)绑定,并保持在那里直到终止或被删除。如果节点(Node)发生故障,则会在群集中的其他可用节点(Node)上运行相同的 Pod(从同样的镜像创建 Container,使用同样的配置,IP 地址不同,Pod 名字不同)。

 

注意:Pod 是一组容器(可包含一个或多个应用程序容器),以及共享存储(卷 Volumes)、IP 地址和有关如何运行容器的信息。如果多个容器紧密耦合并且需要共享磁盘等资源,则他们应该被部署在同一个Pod(容器组)中。

每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:

  • 用户程序所在的容器,数量可多可少
  • Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:
    • 可以以它为依据,评估整个Pod的健康状态
    • 可以在根容器上设置Ip地址,其它容器都此IpPod IP),以实现Pod内部的网路通信

pod的定义

apiVersion: v1 #必选,版本号,例如v1
kind: Pod #必选,资源类型,例如 Pod
metadata: #必选,元数据
name: string #必选,Pod名称
namespace: string #Pod所属的命名空间,默认为"default"
labels: #自定义标签列表
- name: string
spec: #必选,Pod中容器的详细定义
containers: #必选,Pod中容器列表
- name: string #必选,容器名称
image: string #必选,容器的镜像名称
imagePullPolicy: [ Always|Never|IfNotPresent ] #获取镜像的策略
command: [string] #容器的启动命令列表,如不指定,使用打包时使用的启动命令
args: [string] #容器的启动命令参数列表
workingDir: string #容器的工作目录
volumeMounts: #挂载到容器内部的存储卷配置
- name: string #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
mountPath: string #存储卷在容器内mount的绝对路径,应少于512字符
readOnly: boolean #是否为只读模式
ports: #需要暴露的端口库号列表
- name: string #端口的名称
containerPort: int #容器需要监听的端口号
hostPort: int #容器所在主机需要监听的端口号,默认与Container相同
protocol: string #端口协议,支持TCP和UDP,默认TCP
env: #容器运行前需设置的环境变量列表
- name: string #环境变量名称
value: string #环境变量的值
resources: #资源限制和请求的设置
limits: #资源限制的设置
cpu: string #Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
memory: string #内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
requests: #资源请求的设置
cpu: string #Cpu请求,容器启动的初始可用数量
memory: string #内存请求,容器启动的初始可用数量
lifecycle: #生命周期钩子
postStart: #容器启动后立即执行此钩子,如果执行失败,会根据重启策略进行重启
preStop: #容器终止前执行此钩子,无论结果如何,容器都会终止
livenessProbe: #对Pod内各容器健康检查的设置,当探测无响应几次后将自动重启该容器
exec: #对Pod容器内检查方式设置为exec方式
command: [string] #exec方式需要制定的命令或脚本
httpGet: #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
path: string
port: number
host: string
scheme: string
HttpHeaders:
- name: string
value: string
tcpSocket: #对Pod内个容器健康检查方式设置为tcpSocket方式
port: number
initialDelaySeconds: 0 #容器启动完成后首次探测的时间,单位为秒
timeoutSeconds: 0 #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
periodSeconds: 0 #对容器监控检查的定期探测时间设置,单位秒,默认10秒一
次
successThreshold: 0
failureThreshold: 0
securityContext:
privileged: false
restartPolicy: [Always | Never | OnFailure] #Pod的重启策略
nodeName: <string> #设置NodeName表示将该Pod调度到指定到名称的node节点上
nodeSelector: obeject #设置NodeSelector表示将该Pod调度到包含这个label的node上
imagePullSecrets: #Pull镜像时使用的secret名称,以key:secretkey格式指定
- name: string
hostNetwork: false #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机
网络
volumes: #在该pod上定义共享存储卷列表
- name: string #共享存储卷名称 (volumes类型有很多种)
emptyDir: {} #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
hostPath: string #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
path: string #Pod所在宿主机的目录,将被用于同期中mount的目录
secret: #类型为secret的存储卷,挂载集群与定义的secret对象到容器内部
scretname: string
items:
- key: string
path: string
configMap: #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
name: string
items:
- key: string
path: string

 

配置

基本配置

创建nginxpod.yaml,写入

apiVersion: v1
kind: Namespace
metadata:name: dev---apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.17.1


 

镜像拉取 

在nginxpod.yaml添加

apiVersion: v1
kind: Namespace
metadata:name: dev---apiVersion: v1
kind: Pod
metadata:name: nginxpodnamespace: dev
spec:containers:- name: nginx-containersimage: nginx:1.17.1imagePullPolicy: Always  #设置镜像拉取策略为always

 

  • imagePullPolicy,用于设置镜像拉取策略,kubernetes支持配置三种拉取策略:
  • Always:总是从远程仓库拉取镜像(一直远程下载)
  • IfNotPresent:本地有则使用本地镜像,本地没有则从远程仓库拉取镜像(本地有就本地 本地没
  • 远程下载)
  • Never:只使用本地镜像,从不去远程仓库拉取,本地没有就报错 (一直使用本地)

 

注意:

如果镜像tag为具体版本号, 默认策略是:IfNotPresent
如果镜像tag为:latest(最终版本) ,默认策略是always
[root@k8s-master01 nginx]# kubectl delete -f nginxpod.yaml #先删除
namespace "dev" deleted
pod "nginxpod" deleted
[root@k8s-master01 nginx]# kubectl create -f nginxpod.yaml #再创建
namespace/dev created
pod/nginxpod created[root@k8s-master01 nginx]# kubectl describe pod nginxpod -n dev  #查看创建pod详情
Name:             nginxpod
Namespace:        dev
Priority:         0
Service Account:  default
Node:             k8s-worker02/192.168.234.14
Start Time:       Sun, 23 Mar 2025 21:34:57 +0800
Labels:           <none>
Annotations:      cni.projectcalico.org/containerID: b3e8244aebfa692ac22dfc5a2bb                                                                                     e17931600f1253537454a521adb4da7d547ddcni.projectcalico.org/podIP: 100.73.45.88/32cni.projectcalico.org/podIPs: 100.73.45.88/32
Status:           Running
IP:               100.73.45.88
IPs:IP:  100.73.45.88
Containers:nginx-containers:Container ID:   docker://f24c8c0bff883217f8730d42669a47acbc8800a1e8ca44738b4                                                                                     fb285eb2a5f4aImage:          nginx:1.17.1Image ID:       docker-pullable://nginx@sha256:b4b9b3eee194703fc2fa8afa5b751                                                                                     0c77ae70cfba567af1376a573a967c03dbbPort:           <none>Host Port:      <none>State:          RunningStarted:      Sun, 23 Mar 2025 21:35:01 +0800Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-dn4zd (                                                                                     ro)
Conditions:Type                        StatusPodReadyToStartContainers   TrueInitialized                 TrueReady                       TrueContainersReady             TruePodScheduled                True
Volumes:kube-api-access-dn4zd:Type:                    Projected (a volume that contains injected data fro                                                                                     m multiple sources)TokenExpirationSeconds:  3607ConfigMapName:           kube-root-ca.crtConfigMapOptional:       <nil>DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists fo                                                                                     r 300snode.kubernetes.io/unreachable:NoExecute op=Exists                                                                                      for 300s
Events:Type    Reason     Age   From               Message----    ------     ----  ----               -------Normal  Scheduled  50s   default-scheduler  Successfully assigned dev/nginxpod                                                                                      to k8s-worker02Normal  Pulling    22m   kubelet            Pulling image "nginx:1.17.1"Normal  Pulled     22m   kubelet            Successfully pulled image "nginx:1                                                                                     .17.1" in 2.636s (2.636s including waiting). Image size: 109357455 bytes.Normal  Created    22m   kubelet            Created container nginx-containersNormal  Started    22m   kubelet            Started container nginx-containers

端口设置

[root@k8s-master01 nginx]# kubectl explain pod.spec.containers.ports
KIND: Pod
VERSION: v1
RESOURCE: ports <[]Object>
FIELDS:
name <string> # 端口名称,如果指定,必须保证name在pod中是唯一的
containerPort<integer> # 容器要监听的端口(0<x<65536)
hostPort <integer> # 容器要在主机上公开的端口,如果设置,主机上只能运行容器的一个副
本(一般省略)
hostIP <string> # 要将外部端口绑定到的主机IP(一般省略)
protocol <string> # 端口协议。必须是UDP、TCP或SCTP。默认为“TCP”
创建 pod-ports.yam
apiVersion: v1
kind: Pod
metadata:name: pod-portsnamespace: dev
spec:containers:- name: nginximage: nginx:1.17.1ports: # 设置容器暴露的端口列表- name: nginx-portcontainerPort: 80protocol: TCP

 

资源配额

容器中的程序要运行,肯定是要占用一定资源的,比如 cpu 和内存等,如果不对某个容器的资源做限
制,那么它就可能吃掉大量资源,导致其它容器无法运行。针对这种情况, kubernetes 提供了对内存和
cpu 的资源进行配额的机制,这种机制主要通过 resources 选项实现,他有两个子选项:
limits :用于限制运行时容器的最大占用资源,当容器占用资源超过 limits 时会被终止,并进行重启
requests :用于设置容器需要的最小资源,如果环境资源不够,容器将无法启动
可以通过上面两个选项设置资源的上下限。
创建 pod-resources.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-resourcesnamespace: dev
spec:containers:- name: nginximage: nginx:1.17.1resources:limits:cpu: "2"memory: "2Gi"   # 调整后的内存限制requests:cpu: "1"memory: "10Mi" # 调整后的内存请求
  • cpu:core数,可以为整数或小数 memory:
  • 内存大小,可以使用Gi、Mi、G、M等形式
# 运行Pod
[root@master ~]# kubectl create -f pod-resources.yaml
pod/pod-resources created
# 查看发现pod运行正常
[root@master ~]# kubectl get pod pod-resources -n dev
NAME            READY   STATUS    RESTARTS   AGE  
pod-resources   1/1     Running   0          39s   
# 接下来,停止Pod
[root@master ~]# kubectl delete -f pod-resources.yaml
pod "pod-resources" deleted
# 编辑pod,修改resources.requests.memory的值为10Gi
[root@master ~]# vim pod-resources.yaml
# 再次启动pod
[root@master ~]# kubectl create -f pod-resources.yaml
pod/pod-resources created
# 查看Pod状态,发现Pod启动失败
[root@master ~]# kubectl get pod pod-resources -n dev -o wide
NAME            READY   STATUS    RESTARTS   AGE          
pod-resources   0/2     Pending   0          20s    
# 查看pod详情会发现,如下提示
[root@master ~]# kubectl describe pod pod-resources -n dev
......
Warning  FailedScheduling  <unknown>  default-scheduler  0/2 nodes are 
available: 2 Insufficient memory.(内存不足)
http://www.dtcms.com/wzjs/16938.html

相关文章:

  • 巢湖有没有专门做网站的公司电商平台运营方案
  • 佛山小网站建设抖音排名优化
  • 真人做爰网站东莞网站建设平台
  • 构建企业门户网站的方法国内好用的搜索引擎
  • 周口网站制作公司哪家好优化大师破解版app
  • 衡南网站建设制作自己的网页
  • 临沂专业做网站公司嘉兴seo报价
  • 江苏建站服务南宁百度seo
  • 网站制作 火星科技网络营销中的四种方法
  • 哪个网站是做包装材料珍珠棉包管seo技术优化服务
  • 台湾网站建设公司重庆seo排名外包
  • 大连企业网站建设公司员工培训方案
  • 甘肃省住房与城乡建设部网站免费的郑州网络推广服务
  • 网站安装百度商桥在线网络培训平台
  • 河北中凯建设有限公司网站南京百度推广优化排名
  • 站点提交百度手机助手下载2021新版
  • 推广图片设计如何简洁好看seo推广方法有哪些
  • 微网站首页模板北京seo优化排名
  • 网站搭建h5是什么深圳正规seo
  • 网站建设 服务流程如何制定会员营销方案
  • 网站建设要钱吗最近时事热点
  • 淘宝客如何做网站专业做网站的公司
  • php怎么网站开发软文优化
  • 住房和城乡建设部网站投诉电话百度免费下载安装百度
  • 宝鸡市住房和城乡建设局官方网站网站加速
  • 推荐一本学做网站的书厦门人才网官网
  • 购物网站运作免费顶级域名申请网站
  • wordpress调用第一张图片不显示seo单页快速排名
  • 淘宝客建网站怎么做长沙网站制作公司哪家好
  • 做门户网站有前途吗百度搜索指数的数据来源