1、創建容器
命令中--replicas=2 啟動2個實例,--port=80 運行在k8s的80端口上,沒有進行映射端口
[root@yn101-22 ~]# kubectl run nginx --image=nginx --replicas=2 --port=80
#輸出如下:
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
2、查看全部Pods狀態
[root@yn101-22 ~]# kubectl get pods
#輸出如下:
NAME READY STATUS RESTARTS AGE
nginx-5578584966-2tkmz 1/1 Running 0 79s
nginx-5578584966-8r8jt 1/1 Running 0 79s
3、查看已部署的服務
[root@yn101-22 ~]# kubectl get deployment
#輸出如下:
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 2/2 2 2 2m17s
4、發布服務
使用負載均衡模式發布服務,讓用戶可以訪問。暴露一個名稱為nginx的deployment,暴露80端口,類型是負載均衡
[root@yn101-22 ~]# kubectl expose deployment nginx --port=80 --type=LoadBalancer
#輸出如下:
service/nginx exposed
5、查看已發布的服務
[root@yn101-22 ~]# kubectl get service
#輸出如下
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9h
nginx LoadBalancer 10.106.9.160 <pending> 80:31176/TCP 2m9s
其中nginx的port:80為k8s的端口,31176為暴露出來的端口
6、查看服務詳情
[root@yn101-22 ~]# kubectl get service
#輸出如下
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9h
nginx LoadBalancer 10.106.9.160 <pending> 80:31176/TCP 2m9s
#查看詳情
[root@yn101-22 ~]# kubectl describe service nginx
Name: nginx
Namespace: default
Labels: run=nginx
Annotations: <none>
Selector: run=nginx
Type: LoadBalancer
IP: 10.106.9.160 #k8s內部ip地址
Port: <unset> 80/TCP #k8s內部端口
TargetPort: 80/TCP
NodePort: <unset> 31176/TCP #node端口
Endpoints: 192.168.114.193:80,192.168.170.4:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
7、驗證是否成功
master在默認情況下不會運行pod,所以在node節點訪問nginx進行驗證,也可使用docker ps查看運行的容器。
服務高可用測試:使用docker rm -f 容器id刪除容器,刪除后容器又自動創建。
#訪問測試
http://192.168.101.31:31176/
http://192.168.101.32:31176/
8、停止服務
- service是服務,對外提供服務
- deployment是部署
- pod運行容器的單元
容器運行在pod上,pod運行在deployment上,停止服務,必須先停止deployment
刪除已部署的服務
[root@yn101-22 ~]# kubectl delete deployment nginx
#輸出如下:
deployment.apps "nginx" deleted
刪除已發布的服務
[root@yn101-22 ~]# kubectl delete service nginx
#輸出如下:
service "nginx" deleted