1.应用程序容器镜像制作
- dockerfile 编写
- docker build -t username/hello:1.0.0 //非顶级镜像 必须用户名打头
- docker push username/hello:1.0.0
2.定义k8s应用程序载体Pod (deployment.yaml)
pod.yaml //定义单独的pod
kubectl create -f xx-pod.yaml // 创建单独的pod
restartPolicy:Always:除正常退出以外,都会重启我们容器Never:任何情况下,容器关闭都不会重启OnFailure: 程序异常退出,健康检查失败
容器重启策略:10s,20s,40s,80s...300s计时十分钟 没有出现任何问题 重置重启时间 10s
imagePullPolicy:Always:每次部署重新拉取镜像Never:只使用本地镜像IfNotPresent:如果本地存在,则不拉取
1cpu=1000m
deployment.yaml
- 副本管理-replicaSet 做副本管理
- 版本管理:发布、回滚
3.为应用程序配置健康检查机制
存活检查(livenessProbe), 持续检查,失败则重启
- exec 退出码为0
- httpGet 状态码 大于200 且小于400
- tcpSocket 端口打开即为成功 redis
- grpc alph (不用)
就绪检查(readinessProbe), 校验依赖的第三方服务是否ok, 持续检查,失败不会重启,仍然按间隔检查,但不会提供
启动检查// 初始化 程序/缓存预热
4.创建service对外公开应用程序接口 (xxx-svc.yaml)
之后可以用 serviceIp:servicePort 访问, 有负载均衡