赞
踩
先拿自己的base镜像 也就是之前在容器里跑的镜像做一下修改。
在tomcat的bin路径下创建一个k8s-start.sh 内容如下
sh /srv/tomcat/tomcat-haozhuo-video/bin/startup.sh
tailf /srv/tomcat/tomcat-haozhuo-video/logs/catalina.out
然后给k8s-start.sh加上执行权限
chmod +x k8s-start.sh
commit镜像 并上传仓库
docker commit -m "edit k8s-start.sh" test-video registry.cn-shanghai.aliyuncs.com/yjk-datag/haozhuo-video:vtest05
docker push registry.cn-shanghai.aliyuncs.com/yjk-datag/haozhuo-video:vtest05
基于05创建镜像vtest06的Dockerfile
From registry.cn-shanghai.aliyuncs.com/yjk-datag/haozhuo-video:vtest05
MAINTAINER PDABC Enterprise Container Images <xujiamin@hz-health.cn>
ENTRYPOINT ["/bin/sh", "/srv/tomcat/tomcat-haozhuo-video/bin/k8s-start.sh"]
启动感觉换成jar包启动会更好 这样1号进程就是启动进程了。现在还是丢在tomcat里的
pod创建过程如下
yaml文件如下
apiVersion: apps/v1 kind: Deployment metadata: # deployment名字 和svc 和ingress绑定没关系 name: haozhuo-video-dp namespace: test spec: replicas: 1 # 在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和template.labels对应 selector: matchLabels: app: haozhuo-video # template里面定义的内容会应用到下面所有的副本集里面(例如depolyment下的pod),在template.spec.containers里面不能定义labels标签。可以kubectl get pods --show-labels查看 template: metadata: labels: app: haozhuo-video env: test spec: containers: # containers名字 和svc 和ingress绑定没关系 - name: haozhuo-video image: registry.cn-shanghai.aliyuncs.com/yjk-datag/haozhuo-video:vtest06 env: - name: DUBBO_IP_TO_REGISTRY valueFrom: fieldRef: fieldPath: status.hostIP - name: DUBBO_PORT_TO_REGISTRY value: "20920" resources: limits: cpu: 2000m memory: 2048Mi requests: cpu: 1000m memory: 1024Mi ports: - name: liveness-port containerPort: 8080 hostPort: 8820 - name: readiness-port containerPort: 20920 hostPort: 20920 livenessProbe: tcpSocket: port: liveness-port initialDelaySeconds: 20 periodSeconds: 3 readinessProbe: tcpSocket: port: readiness-port initialDelaySeconds: 30 periodSeconds: 10 imagePullSecrets: - name: aliyun-ns-test
如果不加上env参数注册dubbo的ip会变成pod的ip 不是host的ip 访问会有问题
加上env那块的参数 注册上就正常 显示host的ip 这回到node2上了
ip已经变成node的ip了
telnet 一下主机的8820和20920 分别对应容器内8080的tomcat端口,以及20920的dubbo端口
8820
20920
测试杀掉tomcat的进程 关闭8080端口
发现容器重启了 tty也断开了
容器状态从ready 1/1变成0/1,再通过重启 变成1/1
杀死tailf 进程也是一样的效果
资源限制也获取的到
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。