方案一: 使用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會隨機生成一個。
