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

大连网站专业制作seo教程seo官网优化详细方法

大连网站专业制作,seo教程seo官网优化详细方法,网站突然搜不到了,没有版权可以做视频网站吗一、Pod生命周期 一般将pod对象从创建至终的这段时间范围称为pod的生命周期#xff0c;它主要包含下面的过程#xff1a; pod创建过程 运行初始化容器#xff08;init container#xff09;过程 运行主容器#xff08;main container#xff09; 容器启动后钩子#…一、Pod生命周期 一般将pod对象从创建至终的这段时间范围称为pod的生命周期它主要包含下面的过程 pod创建过程 运行初始化容器init container过程 运行主容器main container 容器启动后钩子post start、容器终止前钩子pre stop 容器的存活性探测liveness probe、就绪性探测readiness probe pod终止过程 在整个生命周期中Pod会出现5种状态分别如下 挂起Pendingapiserver已经创建了pod资源对象但它尚未被调度完成或者仍处于下载镜像的过程中 运行中Runningpod已经被调度至某节点并且所有容器都已经被kubelet创建完成 成功Succeededpod中的所有容器都已经成功终止并且不会被重启 失败Failed所有容器都已经终止但至少有一个容器终止失败即容器返回了非0值的退出状态 未知Unknownapiserver无法正常获取到pod对象的状态信息通常由网络通信失败所导致 二、创建和终止 1pod的创建过程 用户通过kubectl或其他api客户端提交需要创建的pod信息给apiServer apiServer开始生成pod对象的信息并将信息存入etcd然后返回确认信息至客户端 apiServer开始反映etcd中的pod对象的变化其它组件使用watch机制来跟踪检查apiServer上的变动 scheduler发现有新的pod对象要创建开始为Pod分配主机并将结果信息更新至apiServer node节点上的kubelet发现有pod调度过来尝试调用docker启动容器并将结果回送至apiServer apiServer将接收到的pod状态信息存入etcd中 2pod的终止过程 用户向apiServer发送删除pod对象的命令 apiServcer中的pod对象信息会随着时间的推移而更新在宽限期内默认30spod被视为dead 将pod标记为terminating状态 kubelet在监控到pod对象转为terminating状态的同时启动pod关闭过程 端点控制器监控到pod对象的关闭行为时将其从所有匹配到此端点的service资源的端点列表中移除 如果当前pod对象定义了preStop钩子处理器则在其标记为terminating后即会以同步的方式启动执行 pod对象中的容器进程收到停止信号 宽限期结束后若pod中还存在仍在运行的进程那么pod对象会收到立即终止的信号 kubelet请求apiServer将此pod资源的宽限期设置为0从而完成删除操作此时pod对于用户已不可见 三、初始化容器 初始化容器是在pod的主容器启动之前要运行的容器主要是做一些主容器的前置工作它具有两大特征 初始化容器必须运行完成直至结束若某初始化容器运行失败那么kubernetes需要重启它直到成功完成 初始化容器必须按照定义的顺序执行当且仅当前一个成功之后后面的一个才能运行 初始化容器有很多的应用场景下面列出的是最常见的几个 提供主容器镜像中不具备的工具程序或自定义代码 初始化容器要先于应用容器串行启动并运行完成因此可用于延后应用容器的启动直至其依赖的条件得到满足 接下来做一个案例模拟下面这个需求 假设要以主容器来运行tomcat但是要求在运行tomcat之前先要能够连接上ip1和ip2所在服务器 规定好ip1(192.168.31.129)和ip2(192.168.31.130)服务器的地址 创建pod-init.yaml内容如下 apiVersion: v1 kind: Pod metadata:name: pod-initnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports: - name: tomcat-portcontainerPort: 8080initContainers:- name: test-ip1image: busybox:lastestcommand: [sh, -c, until ping 192.168.31.129 -c 1 ; do echo doing ping 192.168.31.129 ; sleep 2; done;]- name: test-ip2image: busybox:lastestcommand: [sh, -c, until ping 192.168.31.130 -c 1 ; do echo doing ping 192.168.31.130 ; sleep 2; done;] # 创建pod kubectl create -f pod-init.yaml​ # 查看pod状态 # 发现pod卡在启动第一个初始化容器过程中后面的容器不会运行 kubectl describe pod pod-init -n mk# 动态查看pod kubectl get pods pod-init -n mk -w# 接下来为当前服务器新增两个ip观察pod的状态变化 ifconfig eth0:1 192.168.31.129 netmask 255.255.255.0 up ifconfig eth0:2 192.168.31.130 netmask 255.255.255.0 up 四、钩子函数 钩子函数能够感知自身生命周期中的事件并在相应的时刻到来时运行用户指定的程序代码。 kubernetes在主容器的启动之后和停止之前提供了两个钩子函数 post start容器创建之后执行如果失败了会重启容器 pre stop 容器终止之前执行执行完成之后容器将成功终止在其完成之前会阻塞删除容器的操作 钩子处理器支持使用下面三种方式定义动作 Exec命令在容器内执行一次命令 ……lifecycle:postStart: exec:command:- cat- /tmp/start.log …… TCPSocket在当前容器尝试访问指定的socket ……      lifecycle:postStart:tcpSocket:port: 8080 …… HTTPGet在当前容器中向某url发起http请求 ……lifecycle:postStart:httpGet:path: / #URI地址port: 80 #端口号host: 192.168.31.129 #主机地址scheme: HTTP #支持的协议http或者https …… 接下来以exec方式为例演示下钩子函数的使用创建pod-exec.yaml文件内容如下 apiVersion: v1 kind: Pod metadata:name: pod-execnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports:- name: tomcat-portcontainerPort: 8080lifecycle:postStart: exec: # 在容器启动的时候执行一个命令打日志command: [/bin/sh, -c, echo postStart... /tmp/postStart.log]preStop:exec: # 在容器停止之前停止tomcat服务command: [[/bin/sh, -c, /usr/local/tomcat/bin/shutdown.sh] # 创建pod kubectl create -f pod-exec.yaml# 查看pod kubectl get pods pod-exec -n mk -o wide# 访问pod kubectl exec -ti pod-exec -n mk /bin/sh cat /tmp/postStart.log 五、容器探测 容器探测用于检测容器中的应用实例是否正常工作是保障业务可用性的一种传统机制。如果经过探测实例的状态不符合预期那么kubernetes就会把该问题实例 摘除 不承担业务流量。kubernetes提供了两种探针来实现容器探测分别是 liveness probes存活性探针用于检测应用实例当前是否处于正常运行状态如果不是k8s会重启容器 readiness probes就绪性探针用于检测应用实例当前是否可以接收请求如果不能k8s不会转发流量 livenessProbe 决定是否重启容器readinessProbe 决定是否将请求转发给容器。 上面两种探针目前均支持三种探测方式 Exec命令在容器内执行一次命令如果命令执行的退出码为0则认为程序正常否则不正常 ……livenessProbe:exec:command:- cat- /tmp/test …… TCPSocket将会尝试访问一个用户容器的端口如果能够建立这条连接则认为程序正常否则不正常 ……      livenessProbe:tcpSocket:port: 8080 …… HTTPGet调用容器内Web应用的URL如果返回的状态码在200和399之间则认为程序正常否则不正常 ……livenessProbe:httpGet:path: / #URI地址port: 8080 #端口号host: 127.0.0.1 #主机地址scheme: HTTP #支持的协议http或者https …… 下面以liveness probes为例 1Exec 创建pod-exec.yaml apiVersion: v1 kind: Pod metadata:name: pod-execnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastetsports: - name: tomcat-portcontainerPort: 8080livenessProbe:exec:command: [/bin/cat,/tmp/start.log] # 执行一个查看文件的命令 创建pod观察效果 # 创建Pod kubectl create -f pod-exec.yaml​ # 查看Pod详情 kubectl describe pods pod-exec -n mk# 观察上面的信息就会发现tomcat容器启动之后就进行了健康检查 # 检查失败之后容器被kill掉然后尝试进行重启这是重启策略的作用后面讲解 # 稍等一会之后再观察pod信息就可以看到RESTARTS不再是0而是一直增长 kubectl get pods pod-exec -n mk当然接下来可以修改成一个存在的文件比如/etc/hosts再试结果就正常 2TCPSocket 创建pod-tcpsocket.yaml apiVersion: v1 kind: Pod metadata:name: pod-tcpsocketnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports: - name: tomcat-portcontainerPort: 8080livenessProbe:tcpSocket:port: 8081 # 尝试访问8081端口 创建pod观察效果 # 创建Pod kubectl create -f pod-tcpsocket.yaml ​ # 查看Pod详情 kubectl describe pods pod-tcpsocket -n mk# 观察上面的信息发现尝试访问8081端口,但是失败了 # 稍等一会之后再观察pod信息就可以看到RESTARTS不再是0而是一直增长 kubectl get pods pod-liveness-tcpsocket -n mk当然接下来可以修改成一个可以访问的端口比如8080再试结果就正常 3HTTPGet 创建pod-get.yaml apiVersion: v1 kind: Pod metadata:name: pod-getnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports:- name: tomcat-portcontainerPort: 8080livenessProbe:httpGet:  # 其实就是访问http://127.0.0.1:8080/scheme: HTTP #支持的协议http或者httpsport: 8080 #端口号path: /test #URI地址 创建pod观察效果 # 创建Pod kubectl create -f pod-get.yaml ​ # 查看Pod详情 kubectl describe pod pod-get -n mk# 观察上面信息尝试访问路径但是未找到,出现404错误 # 稍等一会之后再观察pod信息就可以看到RESTARTS不再是0而是一直增长 kubectl get pod pod-get -n mk # 当然接下来可以修改成一个可以访问的路径path比如/再试结果就正常 查看livenessProbe的子属性除了这三种方式还有一些其他的配置 kubectl explain pod.spec.containers.livenessProbe FIELDS:exec Object  tcpSocket   ObjecthttpGet     ObjectinitialDelaySeconds integer  # 容器启动后等待多少秒执行第一次探测timeoutSeconds       integer  # 探测超时时间。默认1秒最小1秒periodSeconds       integer  # 执行探测的频率。默认是10秒最小1秒failureThreshold     integer  # 连续探测失败多少次才被认定为失败。默认是3。最小值是1successThreshold     integer  # 连续探测成功多少次才被认定为成功。默认是1 下面稍微配置两个 apiVersion: v1 kind: Pod metadata:name: pod-getnamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports:- name: tomcat-portcontainerPort: 8080livenessProbe:httpGet:scheme: HTTPport: 8080path: /initialDelaySeconds: 50 # 容器启动后50s开始探测timeoutSeconds: 8 # 探测超时时间为8s 六、重启策略 一旦容器探测出现了问题kubernetes就会对容器所在的Pod进行重启其实这是由pod的重启策略决定的pod的重启策略有 3 种分别如下 Always 容器失效时自动重启该容器这也是默认值。 OnFailure 容器终止运行且退出码不为0时重启 Never 不论状态为何都不重启该容器 重启策略适用于pod对象中的所有容器首次需要重启的容器将在其需要时立即进行重启随后再次需要重启的操作将由kubelet延迟一段时间后进行且反复的重启操作的延迟时长以此为10s、20s、40s、80s、160s和300s300s是最大延迟时长。 创建pod-restartpolicy.yaml apiVersion: v1 kind: Pod metadata:name: pod-restartpolicynamespace: mk spec:containers:- name: tomcatimage: tomcat:lastestports:- name: tomcat-portcontainerPort: 8080livenessProbe:httpGet:scheme: HTTPport: 8080path: /testrestartPolicy: Never # 设置重启策略为Never 运行Pod测试 # 创建Pod kubectl create -f pod-restartpolicy.yaml# 查看Pod详情发现nginx容器失败kubectl describe pods pod-restartpolicy -n mk# 观察pod的重启次数发现一直是0并未重启   kubectl get pods pod-restartpolicy -n mk
http://www.sadfv.cn/news/10260/

相关文章:

  • 优化排名推广技术网站2003 您的安全设置不允许网站使用安装
  • 深圳手机商城网站设计多少钱为什么sem的工资都不高
  • 烟台哪个公司做网站好公司logo图片大全
  • app制作网站收费吗广州seo网站公司
  • 借助开源系统快速建实用网站永久域名查询
  • 做网站客户最关心哪些问题刷网站建设
  • 网站设计师是什么做网站会出现哪些问题
  • 胶州建设局网站网站建立初步教案
  • 营销网站运营的基本环节开小厂一年赚50万
  • 大连市建设厅网站如何优化标题关键词
  • wordpress 开发网站自建国际网站做电商
  • c语言建设网站wordpress无插件下载
  • 乐清建设网站网站备案多久过期
  • wordpress网站维护页面邯郸网络运营中心电话多少
  • 做网站加盟WordPress谁在用
  • 合肥做网站推广的公司域名注册服务器
  • 青岛城阳网站设计锦州网站开发建设
  • 粉红色网站欣赏网站开发能自学吗
  • 上海网站优化推广dw网站建设素材
  • 企业网站建设网页设计龙岩网站设计 贝壳下拉
  • 校园门户网站网站常用的颜色
  • 百度不收录网站关键词北京市建设规划网站
  • 义乌网站建设公司价位太原网站优化常识
  • 网站如何做友情链接vue适合什么样的网站开发
  • 建设网站费用主要包括哪些内容直通车推广技巧
  • 福建巢网站建设济南搜点网络科技有限公司
  • 自己怎么做专属自己的网站wordpress根目录403
  • 台州做网站的公司有哪些公司连云港市网站平台
  • 建设网站用什么网站空间要备案吗
  • 网站模板 百科青岛网站建设公司效果