城市门户网站怎样盈利怎样查网站和增加网站
城市门户网站怎样盈利,怎样查网站和增加网站,安卓app开发流程,品牌推广怎么做深入学习Pod
Pod配置文件
写一个自己的配置文件,nginx-po.yaml
apiVersion: v1 #api文档版本
kind: Pod #资源类型对象#xff0c;也可以配置为像Development#xff0c;StatefulSet这一类的对象
metadata: # Pod相关的元数据#xff0c;用于描述Pod的数据name: nginx-po…深入学习Pod
Pod配置文件
写一个自己的配置文件,nginx-po.yaml
apiVersion: v1 #api文档版本
kind: Pod #资源类型对象也可以配置为像DevelopmentStatefulSet这一类的对象
metadata: # Pod相关的元数据用于描述Pod的数据name: nginx-po # Pod的名称labels: # 定义Pod的标签type: app # 自定义labels标签名字为type值为apptest: 1.0.0 # 自定义labels标签描述Pod版本号namespace: default # 命名空间的配置
spec: #期望Pod按照这里面的描述进行创建containers: # 对Pod里面的容器描述- name: nginx # 容器的名字image: nginx:1.7.9 # 指定容器的镜像imagePullPolicy: IfNotPresent # 镜像拉取策略如果本地有就用本地的本地没有就拉取远程的command: # 指定容器启动时的命令- nginx- -g- daemon off; # nginx -g daemon off;workingDir: /usr/share/nginx/html # 定义容器启动后的工作目录ports:- name: http # 端口名称containerPort: 80 # 描述容器内要暴露什么端口protocol: TCP # 基于哪种协议env: # 环境变量- name: JVM_OPTS # 环境变量名称value: -Xms128m -Xmx128m # 环境变量的值resources:requests: # 最少需要多少资源cpu: 100m # 限制cpu最少使用0.1个核心1000m为一个核心memory: 128Mi # 限制最少使用128兆内存limits: #最多能用多少资源cpu: 200m # 限制最多使用0.2个核心memory: 256Mi # 限制最多使用256兆restartPolicy: OnFailure # 重启策略只有失败的情况才会重启 探针类型
探针有StartupProbeLivenessProbeReadinessProbe三种类型
Liveness Probe存活性探针作用 用于确定容器是否在运行。
配置 如果存活性探针失败Kubernetes 将重启容器。
示例 使用 HTTP 探针检查 /healthz 路径是否返回成功状态。
Readiness Probe就绪性探针作用 用于确定容器是否已准备好接收流量。
配置 如果就绪性探针失败容器将被从服务负载均衡中移除直到就绪性探针再次成功。
示例 使用 HTTP 探针检查 /ready 路径是否返回成功状态。
Startup Probe启动探针作用 用于确定容器是否已经启动完成。
配置 在容器启动过程中只在一定时间内检查超过这个时间后不再检查。
示例 使用 HTTP 探针检查 /startup 路径是否返回成功状态。有ExecActionTcpSocketActionHTTPGetAction三种探测方式。
启动探针的使用StartupProbe
对上面的配置文件增加内容
apiVersion: v1 #api文档版本
kind: Pod #资源类型对象也可以配置为像DevelopmentStatefulSet这一类的对象
metadata: # Pod相关的元数据用于描述Pod的数据name: nginx-po # Pod的名称labels: # 定义Pod的标签type: app # 自定义labels标签名字为type值为apptest: 1.0.0 # 自定义labels标签描述Pod版本号namespace: default # 命名空间的配置
spec: #期望Pod按照这里面的描述进行创建containers: # 对Pod里面的容器描述- name: nginx # 容器的名字image: nginx:1.7.9 # 指定容器的镜像imagePullPolicy: IfNotPresent # 镜像拉取策略如果本地有就用本地的本地没有就拉取远程的startupProbe: # 应用启动探针配置# httpGet: # 探测方式基于http请求路径# path: /index.html #http请求路径# port: 80 # 请求端口# tcpSocket: # 基于tcp请求# port: 80exec: # 基于exec请求command: #执行的命令- sh- -c- sleep 3; echo success /initedfailureThreshold: 3 # 失败多少次才算真正失败periodSeconds: 10 # 间隔时间successThreshold: 1 # 多少次检测成功算成功timeoutSeconds: 5 # 请求的超时时间command: # 指定容器启动时的命令- nginx- -g- daemon off; # nginx -g daemon off;workingDir: /usr/share/nginx/html # 定义容器启动后的工作目录ports:- name: http # 端口名称containerPort: 80 # 描述容器内要暴露什么端口protocol: TCP # 基于哪种协议env: # 环境变量- name: JVM_OPTS # 环境变量名称value: -Xms128m -Xmx128m # 环境变量的值resources:requests: # 最少需要多少资源cpu: 100m # 限制cpu最少使用0.1个核心1000m为一个核心memory: 128Mi # 限制最少使用128兆内存limits: #最多能用多少资源cpu: 200m # 限制最多使用0.2个核心memory: 256Mi # 限制最多使用256兆restartPolicy: OnFailure # 重启策略只有失败的情况才会重启 在上面增加了启动探针的三种探测方式如下 分别执行kubectl describe po nginx-po可以发现Startup不一样的地方如下 对于exec方式因为有执行的命令因此可以去容器里面看对应的输出执行下面的命令 kubectl exec -it nginx-po -c nginx -- cat /inited解释
kubectl exec 在运行中的 Pod 内的容器中执行命令。-it 两个参数的结合。-i 表示标准输入保持打开-t 表示分配一个伪终端 (TTY)以便你可以与正在运行的命令进行交互就像你在本地终端一样。nginx-po 目标 Pod 的名称。在这里Pod 的名称被设置为 nginx-po。-c nginx -c 参数用于指定要执行命令的容器名称。在这里命令将在名为 nginx 的容器内执行。-- cat /inited 要在容器内执行的实际命令。在这个例子中命令是 cat /inited它会显示 /inited 文件的内容。得到输出
Liveness探针的应用
下面介绍liveness探针的HTTPGet使用在原来的配置文件里面加入下面的东西 livenessProbe: # 应用存活探针配置httpGet: # 探测方式基于http请求路径path: /index.html #http请求路径port: 80 # 请求端口# tcpSocket: # 基于tcp请求# port: 80# exec: # 基于exec请求# command: #执行的命令# - sh# - -c# - sleep 3; echo success /initedfailureThreshold: 3 # 失败多少次才算真正失败periodSeconds: 10 # 间隔时间successThreshold: 1 # 多少次检测成功算成功timeoutSeconds: 5 # 请求的超时时间
如图
Readiness探针的使用
下面介绍readiness探针的HTTPGet使用在原来的配置文件里面加入下面的东西 readinessProbe: # 应用就绪探针配置httpGet: # 探测方式基于http请求路径path: /started.html #http请求路径port: 80 # 请求端口# tcpSocket: # 基于tcp请求# port: 80# exec: # 基于exec请求# command: #执行的命令# - sh# - -c# - sleep 3; echo success /initedfailureThreshold: 5 # 失败多少次才算真正失败periodSeconds: 10 # 间隔时间successThreshold: 1 # 多少次检测成功算成功timeoutSeconds: 5 # 请求的超时时间如图: 注下面讲一下更深入了解一下探针对于readiness探针而言里面写的http请求路径是/started.html,如下图 而对于nginx而言是没有这个的于是会出现下面的情况 但是如果创建了started.html到工作目录里面就会发现又成功了在终端输入下面的命令
echo success started.html
kubectl cp started.html nginx-readin-po:/usr/share/nginx/html/这样就能找到yaml文件里面指定的探测路径就会有下面的情况 同理对于LivenessProbe也一样把yaml文件里的index.html 换成started.html就会有上述一样的步骤和结果
Pod生命周期 Pod的生命周期如下图所示 这里一般不用postStart钩子函数因为可能会和主容器里面的command命令冲突一般用前面的容器初始化然后用preStop钩子函数可以进行注册中心下线数据销毁清理数据等操作 这里主要介绍prestop的配置为了方便在原文件里将探针删了加入poststart和prestop如下 lifecycle: #生命周期配置postStart: # 生命周期启动阶段做的事情不一定在容器command之前运行exec:command:- sh- -c- echo h1post start/h1 /usr/share/nginx/html/prestop.htmlpreStop:exec:command:- sh- -c- sleep 50; echo sleep over /usr/share/nginx/html/prestop.html 如图 当创建Pod的时候会执行poststart 这里找到内部的ip地址之后curl这个prestop.html文件可以看到内容因为nginx的工作目录是/usr/share/nginx/html所以直接curl ip 文件名称就行了因为本来就在这个目录下不需要其他的路径了。然后看prestop开另一个master一个删除一个持续监视状态因为变为删除中的状态后会给 pod 一个宽限期让 pod 去执行一些清理或销毁操作。这里默认是30s因此sleep 50; echo ‘sleep over’ /usr/share/nginx/html/prestop.html这里休眠50秒是达不到的因为30s就关闭了 这里可以在配置文件中加入
terminationGracePeriodSeconds: 50
containers:- xxx# 这里terminationGracePeriodSeconds参数就是默认的时间与containers同级可以作用于所有的容器
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89245.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!