kubernetes 创建tomcat 容器
方案一: 使用k8s dashboard 创建rc
1. 界面操作
提示:暂时 忽略
查看:
2.测试
由于是外部服务
直接用 节点的ip访问:
同样也是 第二个端口可以访问。感觉 跟之前的提示信息有关系
未来在慢慢找原因吧
原因分析:
1. 2个 复制都在一台节点上, 有点奇怪。master上查了下
因为一个节点为正常状态
2. 尝试 让2个节点都正常 ,在来一次tomcat
136节点上相关服务重启后,等待了近5分钟 2个节点的状态才都好。
重新创建 tomcat 后
经验证 ,确实是分布在不同的minion上的!
直接验证 2个节点的 30969端口
由此可见,2个minion上的这个端口都可以。
推论:
2个端口中 ,第一个是 容器所在 cluster ip对应的 端口; 第二个是 对外服务对应的端口(minion节点ip+这个端口)
所以 2个minion的ip+ 第二个端口都可以访问 tomcat应用。
换言之: 第一个端口30081相当于 yaml中的port, 第二个端口 相当于nodePort,8080则是 容器内端口 containerPort targetPort
验证下:
看下 自动生成的yaml配置就好
目前这个nodePort 貌似是随机分配的,但是应该通过yaml 文件是可以指定的。 而targetPort 这里应该就是 containerPort
方案二:yaml方式
方案三: 使用 kubectl run
kubectl run tomcat-hui --image=192.168.179.133:80/tomcat --replicas=2 --port=8080
注意: --port-8080 貌似 实际看出来就是 containerport
删除 deployment : 界面操作了
1.创建tomcat.yaml
tomcat.yaml
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: tomcat-ds
spec:
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:8.0.30-jre8
ports:
- containerPort: 8080
2.创建
kubectl create -f tomcat.yaml
其他:
如果是内部使用,那就可以不用设置服务的类型(默认为ClusterIP),否则,可以将服务类型设置为NodePort,通过node的端口暴露出来给外部使用;
或者是LoadBalancer,由云服务商提供一个负载均衡直接挂在服务上。这里我们使用NodePort,暴露出30088端口给外部使用。
如果不指定nodePort,那么kubernetes会随机生成一个。