国外做家谱的网站,网络营销课程实训报告,建设网站收费标准,临沂做公司网站Pod
Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上#xff0c;封装为Pod对象#xff0c;是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace
pod的特征
包含多个共享IPC、Network和UTC namespace的容器#xff0c;可直接通过loaclhos…Pod
Pod是k8s处理的最基本单元。容器本身不会直接分配到主机上封装为Pod对象是由一个或多个关系紧密的容器构成。她们共享 IPC、Network、和UTS namespace
pod的特征
包含多个共享IPC、Network和UTC namespace的容器可直接通过loaclhost通信所有Pod内容器都可以访问共享的Volune可以访问共享数据无容错性直接创建的Pod一旦被调度后跟Node绑定即使Node挂掉也不会重新调度
创建Pod
使用yaml文件定义Pod
apiVersion: v1
kind: Pod
metadata:name: examplepod
spec:containers:- name: examplepod-containerimage: busyboximagePullPolicy: IfNotPresentcommand: [sh, -c]args: [echo Hello Kubernetes!; sleep 3600]apiVersion 表示使用的API版本。v1表示使用k8s API的稳定版本 **kind**表示要创建的资源对象使用关键字Pod **metadata**表示该资源对象的元数据。一个资源对象可拥有多个元数据name表示当前资源的名称 Spec表示该资源对象的具体设置。containers表示容器的集合设置容器属性 name要创建的容器名称image容器的镜像地址imagePullPolicy镜像的下载策略支持三种下载策略 ALways不管镜像是否存在都会进行一次拉取Nerver不管镜像是否存在都不会进行拉取IfNotPresent只有镜像不存在时才会进行拉取 command容器的启动命令args启动参数列表 使用kubectl创建Pod kubectl apply -f *.yamlapply声明式对象配置命令。-f表示用文件名作为参数apply既便于跟踪又具备很好的可读性 查看pod kubectl get pod可以在查询命令中带上参数-w以对Pod状态进行持续监控 $ kubectl get pod {Pod名称} -o wide还可以在查询命令中带上-o wide参数输出Pod的更多概要信息如调度到哪台机器上Pod本身的虚拟IP等信息 $ kubectl get pod {Pod名称} -o wide可以用describe命令查看详情格式如下。 $ kubectl describe pods {Pod名称}如果要查询Pod本身输出的日志信息还可以使用logs命令 $ kubectl logs {Pod名称}Pod模板 apiVersion: v1 #版本必填v1代表稳定版本
kind: pod #类型必填Pod
metadata: #元数据表示资源的标识信息name: String #元数据必填Pod的名字namespace: String #元数据Pod的命名空间labels: #元数据标签列表- key: value #元数据可定义多个标签的键/值对annotations: #元数据自定义注解列表- key: value #元数据可定义多个注解的键/值对
spec: #Pod中容器的详细定义必填containers: #Pod中的容器列表必填可以有多个容器- name: String #容器名称必填image: String #容器中的镜像地址必填imagePullPolicy: [Always|Never|IfNotPresent]#获取镜像的策略Always表示下载镜像#IfNotPresent表示优先使用本地镜像否则下载镜像Never表示仅使用本地镜像command: [String] #容器的启动命令列表不配置的话使用镜像内部的命令args: [String] #启动命令参数列表workingDir: String #容器的工作目录volumeMounts: #挂载到容器内部的存储卷设置- name: String #为了引用Pod定义的共享存储卷的名称要用volumes[]部分定义的卷名mountPath: String #存储卷在容器内挂载的绝对路径应少于512个字符readOnly: boolean #是否为只读模式ports: #容器需要暴露的端口号列表- name: String #端口名称containerPort: int #容器要暴露的端口hostPort: int #容器所在主机监听的端口把容器暴露的端口映射到宿主机的端口protocol: String #端口协议支持TCP和UDP默认为TCPenv: #容器运行前要设置的环境变量列表- name: String #环境变量名称value: String #环境变量值resources: #资源限制和请求的设置limits: #资源限制的设置cpu: String #CPU的限制单位为CPU内核数。将用于docker run --cpu-quota 参数#也可以使用小数例如0.10.1等价于表达式100m表示100milicpumemory: String #内存限制单位可以为MiB/GiB/MB/GB1MiB1024×1024B#1MB1000×1000B将用于docker run --memory参数requests: #资源请求的设置cpu: String #CPU请求容器启动时的初始可用数量将用于docker run --cpu-shares参数memory: String #内存请求容器启动时的初始可用数量livenessProbe: #Pod内容器健康检查的设置当探测几次无响应后将自动重启该容器#检查方法有exec、httpGet和tcpSocket对一个容器只要设置一种方法即可exec: #通过exec方式来检查Pod内各容器的健康状况command: [String] #exec方式需要指定的命令或脚本httpGet: #通过httpGet方式来检查Pod中各容器的健康状况需要指定path、portpath: Stringport: numberhost: Stringscheme: StringhttpHeaders:- name: Stringvalue: String tcpSocket: #通过tcpSocket检查Pod中各容器的健康状况port: numberinitialDelaySeconds: 0 #容器启动完成后首次探测的时间单位为秒timeoutSeconds: 0 #对容器进行健康检查时探测等待响应的超时时间单位为秒默认为1speriodSeconds: 0 #对容器监控检查的定期探测时间设置单位为秒默认10s一次successThreshold: 0failureThreshold: 0securityContext: #安全配置privileged: falserestartPolicy: [Always|Never|OnFailure]#Pod的重启策略Always表示不管以何种方式终止#运行kubelet都将重启OnFailure表示只有Pod以非0码退出才重启Never表示不再重启该PodnodeSelector: object #节点选择设置nodeSelector表示将该Pod调度到包含这个标签的#节点上以keyvalue格式来指定imagePullSecrets: #拉取镜像时使用的secret名称以keysecretkey格式指定- name: StringhostNetwork: false #是否使用主机网络模式默认为false如果设置为true表示使用宿主机网络volumes: #在该Pod上定义共享存储卷列表- name: String #共享存储卷名称emptyDir: {} #类型为emptyDir的存储卷与Pod有相同生命周期的一个临时目录为空值hostPath: #类型为hostPath的存储卷将会挂载Pod所在宿主机的目录path: string #Pod所在宿主机的目录该目录将在容器中挂载secret: #类型为secret的存储卷在容器内部挂载集群中预定义的secret对象secretName: Stringitems:- key: Stringpath: StringconfigMap: #类型为configMap的存储卷挂载预定义的configMap对象到容器内部name: Stringitems:- key: Stringpath: String