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

服装移动网站策划案营销案例网站

服装移动网站策划案,营销案例网站,东莞金融网站建设,西安百度seo推广电话基础概念 定义:Pod 是 K8S 中最小的部署单元,是一个或多个紧密关联容器的组合。调度:Pod 作为一个整体被调度到 K8S 集群中的节点上。生命周期:Pod 的生命周期由包含的容器的生命周期决定。 Pod中容器 容器定义:Pod…

基础概念

  • 定义:Pod 是 K8S 中最小的部署单元,是一个或多个紧密关联容器的组合。
  • 调度:Pod 作为一个整体被调度到 K8S 集群中的节点上。
  • 生命周期:Pod 的生命周期由包含的容器的生命周期决定。

Pod中容器

  • 容器定义:Pod 中的容器通过 Pod 的容器列表定义,这些容器可以共享相同的网络和存储。
  • 共享资源:容器共享相同的网络命名空间,可以通过 localhost 进行通信,它们也可以访问共享的存储卷。

Pod的网络模型

  • 共享网络:所有 Pod 中的容器共享同一个 IP 地址和端口空间,它们可以使用 localhost 进行直接通信。
  • Service:Pod 可以通过 Service 抽象进行访问,Service 提供了负载均衡和服务发现的功能。

Pod的生命周期

  • Pending:Pod正在等待调度到某个节点上。
  • Running:Pod中的至少一个容器正在运行。
  • Succeeded:Pod 中的所有容器已成功运行完成。
  • Failed:Pod 中至少有一个容器已经以非正常状态退出。
  • Unknown:Pod 的状态无法确定。

Pod的创建和管理

  • Pod定义文件:使用 YAML 文件定义 Pod 的配置,包括容器规范、环境变量、资源限制等。
  • kubectl命令:使用 kubectl 命令行工具创建、删除、管理 Pod。
  • ReplicaSets 和 Deployments:通过 ReplicaSets 和 Deployments 来管理 Pod 的复制和更新。

多容器Pod

  • 定义:一个 Pod 可以包含多个容器,这些容器共享相同的网络和存储。
  • 使用场景:多容器 Pod 适用于需要协同工作的应用,例如日志收集、辅助任务等。

Pod的基本使用

多种方式创建Pod

kubectl命令创建Pod

# 直接运行一个nginx pod
kubectl run pod-nginx --image=nginx:latest
# 查看 pod 的详细信息
kubectl get pod pod-nginx -o wide
# 在 master 节点访问 nginx
curl ${pod_ip}

通过YAML创建Pod

# pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-nginx
spec:containers:- name: pod-nginximage: nginx-1.18.1ports:- containerPort: 80
# 通过 kubectl apply -f pod-nginx.yaml ,通过文件创建资源

配置 Pod 镜像拉取策略

  • spec.containers[].imagePullPolicy: IfNotPresent
    Always[重新下载镜像]、Never[仅使用本地]、IfNotPresent[优先使用本地]

资源申请

Pod 中的 Container 指定了资源 request 时,kube-scheduler 就利用该信息决定将 Pod 调度到哪个节点上,当你为 container 指定了资源 limit 时,kubelet 就可以确保运行的容器不会使用超出所设的限制资源。kubelet 还会为容器预留所 request 数量的系统资源

  • 单位:CPU(0.1/100m)、Memory(100Ei、100Pi、100Ti、100Gi、100Mi、100Ki)
  • 配置:
    • spec.containers[].resources.limits.cpu
    • spec.containers[].resources.limits.memory
    • spec.containers[].resources.requests.cpu
    • spec.containers[].resources.requests.memory

生命周期事件回调

  • postStart:K8S 在容器创建后立即发送 postStart 事件,然而,postStart 处理函数的调用不保证早于容器的入口点(entrypoint)的执行
  • postStop:K8S 在容器结束前立即发送 preStop 事件(termination),如果 preStop 被阻塞,那外界将会一直等待该事件结束,除非 Pod 宽限期限超时(terminationGracePeriodSeconds = 30)
    配置
  • 定义 Pod:postStart 回调后,输出"postStart"到 k8s.txt,preStop 回调后,输出 “preStop” 到 k8s.txt
apiVersion: v1
kind: Pod
metadata:name: pod-nginx-lifecycle
spec:containers:- name: pod-nginx-lifecycleimage: nginx:1.18.1imagePullPolicy: IfNotPresentlifecycle:postStart:exec:command: ["/bin/sh", "-c", "echo postStart > /k8s.txt"]postStop:exec:command: ["/bin/sh", "-c", "echo postStop >> /k8s.txt; sleep 3600;"]ports:- containerPort: 80
  • 验证 postStart 回调
kubectl exec -ti pod-nginx-lifecycle -- /bin/bash
cat /k8s.txt
################
postStart
################
  • 验证 postStop 回调
# 删除容器
kubectl delete pod pod-nginx-lifecycle 
# 在另一个节点执行命令
kubectl exec -ti pod-nginx-lifecycle -- /bin/bash
cat /k8s.txt
################
postStart
postStop
################

Pod 加启动、就绪、存活探针

  • 存活探针:k8s 通过存活探针来确定什么时候要重启容器。
  • 就绪探针:k8s 通过就绪探针来判断是否要给流量。
  • 启动探针:k8s 通过启动探针来了解应用容器何时启动,如果配置了这类探针,那么在这个探针成功之前就不会触发存活和就绪探针,防止程序被频繁 kill。

配置

存活探针
  • exec 模式:容器启动时创建 healthy 文件,休眠 30s,删除 healthy 文件,休眠 3000s,存活探针延时 5s 调用,后面每隔 5s 调用一次,验证存活
apiVersion: v1
kind: Pod
metadata:name: pod-nginx-liveness-exec
spec:containers:- name: pod-nginx-liveness-execimage: nginx:1.18.1imagePullPolicy: IfNotPresentargs:- /bin/sh- -c- touch /healthy; sleep 30; rm -f /tmp/healthy; sleep 3000livenessProbe:exec:command:- cat- /healthyinitialDelaySeconds: 5periodSeconds: 5

然后不断执行 kubectl describe pod pod-nginx-liveness-exec 命令,观察探针情况。

  • http 模式
apiVersion: v1
kind: Pod
metadata:name: pod-nginx-liveness-http
spec:containers:- name: pod-nginx-liveness-httpimage: nginx:1.18.1imagePullPolicy: IfNotPresentlivenessProbe:httpGet:path: /index.htmlport: 80httpHeaders:- name: Custom-Headervalue: AwesomeinitialDelaySeconds: 3periodSeconds: 3

此是启动是正常的,假设我们这个时候进入容器删除掉 index.html

kubectl exec -ti pod-nginx-liveness-http -- /bin/bash
rm -fr /usr/share/nginx/html/index.html

过几秒后,执行 kubectl get pod 查看到 pod 状态为 restart 了 1 次,再执行 kubectl describe pod pod-nginx-liveness-http 可以查看到具体的重启原因是什么?我们这里是因为 index.html 被删除,导致容器访问 404 导致的重启。

就绪探针

就绪探针和存活探针的配置一样,唯一的区别是使用 readinessProbe

apiVersion: v1
kind: Pod
metadata:name: pod-nginx-readiness
spec:containers:- name: pod-nginx-readinessimage: nginx:1.18.1imagePullPolicy: IfNotPresentreadinessProbe:httpGet:path: /index.htmlport: 80httpHeaders:- name: Custom-Headervalue: AwesomeinitialDelaySeconds: 3periodSeconds: 3

同样的操作,在容器启动一会后,进入容器删除 index.html 文件,

kubectl exec -ti pod-nginx-readiness -- rm -rf /usr/share/nginx/html/index.html

过一会查看 pod 可以看到就绪探针检测失败,但是通过 kubectl get pod 发现 pod ready 的数量为0,但是 Pod 不会自动重启,这点和存活探针不同

启动探针
apiVersion: v1
kind: Pod
metadata:name: pod-nginx-startup
spec:containers:- name: pod-nginx-startupimage: nginx:1.18.1imagePullPolicy: IfNotPresentstartupProbe:httpGet:path: /index2.htmlport: 80initialDelaySeconds: 3periodSeconds: 3

这里我们写成 index2.html,由于这个文件是不存在的,所以肯定是无法正常启动的

kubectl edit pod pod-nginx-startup 
或
kubectl delete -f pod-nginx-startup.yaml
# 修改 index2.html 为 index.html。
kubectl apply -f pod-nginx-startup.yaml

修改成 index.html 后则探针检测成功。

http://www.dtcms.com/wzjs/286583.html

相关文章:

  • 网站草图设计品牌传播策略
  • 做特卖网站手机版seo网站优化工具
  • 手表东莞网站建设技术支持搜索引擎优化要考虑哪些方面?
  • 北京未来科技城开发建设有限公司 网站持续优化疫情防控举措
  • 陕西省城乡住房和建设厅网站百度知道首页
  • 成都营销型网站建设及推广那家好西安专业网络推广公司
  • 西安哪家网站做的好怎么查看网站的友情链接
  • 南和网站建设sem投放
  • 建一个com网站要多少钱东莞seo优化
  • ps软件下载电脑版免费破解版成品网站seo
  • 哈德网站建设百度指数在线查询工具
  • 北京哪里有专门做网站的地方中国教师教育培训网
  • pcms网站开发网站优化seo方案
  • 手机网站怎么设计杭州seo网站排名
  • 查答案的网站制作模板金融网站推广圳seo公司
  • 利用第三方做网站永久发布地址关键词优化排名软件怎么样
  • c 视频网站开发入门今日新闻快讯10条
  • 网站 易用性原则谷歌广告怎么投放
  • 潍坊做网站教程免费建站免费网站
  • 长春网站建设网诚传媒5g网络优化培训
  • 徐州网站制作报价优化大师的优化项目有哪7个
  • 沙县住房和城乡规划建设局网站成都网络运营推广
  • 广州手机网站制作交换友情链接的目的
  • 做羞羞事网站引流软件下载站
  • 网站开发平台开发公司app推广有哪些渠道
  • 合肥科技网站建设青岛关键词优化报价
  • wordPress图片查看插件网站排名优化软件有哪些
  • 如何做网站网页如何建立公司网站网页
  • 软件开发 上海北京网络seo推广公司
  • wordpress怎么改变主页字体大小如何进行关键词优化工作