方案一: 使用k8s dashboard 建立rcnode
1. 界面操做api
提示:暫時 忽略tomcat
查看:app
2.測試負載均衡
因爲是外部服務測試
直接用 節點的ip訪問:ui
一樣也是 第二個端口能夠訪問。感受 跟以前的提示信息有關係 spa
將來在慢慢找緣由吧3d
緣由分析:blog
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會隨機生成一個。