1,shell脚本介绍
生成配置文件脚本(copyfile.sh)
在/home/core/demo中写好了配置文件的demo示例。这个脚本作用就是将这些配置文件拷贝到执行命令的目录下,并且按照参数替换掉配置文件中的对应内容。方便修改使用。
/home/core/demo/sh/copyfile.sh shelltest02 dev shelltest02
第一个参数是项目名,第二个参数是namespace,第三个参数是war包名称。项目名替换demo配置文件中的demoweb,namespace替换demo配置文件中的demons。War包名替换dockerfile中的对应war包名。
打包至部署脚本(k8srunimage.sh)
在自己的工作目录下放好解压好的应用文件夹,并修改好拷贝过来的配置文件后,直接执行该脚本,会按照传入的参数进行打包,build镜像,push镜像,delete ,create,并打印出常用的几个命令。
/home/core/demo/sh/k8srunimage.sh reg.easthope.cn/dev/shelltest02:v1.1.0 shelltest02
第一个参数为镜像名称和版本。第二个参数为war包名称。执行后执行如下操作:
1:将文件夹打包成对应的war包。
2:按照dockerfile和参数镜像名称进行build镜像。
3:按照参数镜像名称将镜像push到仓库中。
4:按照yaml文件执行k8s的delete操作。
5:按照yaml文件执行K8S的create操作。
2,全量打包部署
1:将应用文件夹拷贝到工作目录下。
2:执行/home/core/demo/sh/copyfile.sh xxxx xx xxx拷贝配置文件到工作目录。
3:按照自己的需求,修改配置文件。
4:执行/home/core/demo/sh/k8srunimage.sh xxxxxxxxxxxxx xxxx,进行后续操作。
3,增量打包部署
1:将修改的文件拷贝到应用文件夹里。
后续和全量打包部署操作步骤一样(增量的话尽量都将版本号加1,便于回退)。这里拷贝修改的文件的时候,推荐使用比较工具来查找,可以精确的找到那些文件修改了,那些文件需要拷贝,那些不需要拷贝。如下图:
先配置比较工具
工具》ftp配置:
然后选择好比较的文件夹后:
这里可以直接查看那些修改了,那些需要打包部署,那些不需要,而且还可以直接点击复制到另一端。比较方便。
4,k8S探针配置
在xxx-deploy.yaml中配置containers的时候增加节点:livenessProbe
参考:/home/core/dev/sign/nyapp-deploy.yaml
initialDelaySeconds:容器启动后多少秒开始进行监控。
periodSeconds:每隔多少秒请求一次对应端口的对应请求地址。
返回状态吗大于或等于200,小于400表示成功。任何其他标示故障。会触发重新启动容器。
具体可参考:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
5,K8S快速重启pod命令
先使用get pod 查看pod名称:
/home/core/kube-ssl/kubectl get pod --namespace=dev
删除对应pod,实现秒级重启:
/home/core/kube-ssl/kubectl delete pods xxxxxxx --namespace=dev