前言:k8s全稱kubernetes,k8s是為容器服務而生的一個可移植容器的編排管理工具,越來越多的公司正在擁抱k8s,並且當前k8s已經主導了雲業務流程,關於更多的k8s知識,可自行學習
1、k8s環境搭建
-
k8s環境部署方式
minikube工具部署
參考文當:https://kubernetes.io/docs/setup/learning-environment/minikube/
適合場景:可以快速的部署一個單點的k8s,適合開發人員日常使用kubeadm工具部署
參考文檔:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
適合場景:可以通過kubeadm init和kubeadm join快速部署一個k8s集群,目前技術也比較成熟,適用於生產環境快速部署docker for windows k8s部署
參考文檔:https://www.cnblogs.com/voidobject/articles/12980005.html
適合場景:可以快速的部署一個單點的k8s,適合開發人員日常使用rancher2.x k8s部署
參考文檔:https://docs.rancher.cn/
http://docs.rancher.cn/docs/k3s/_index
適合場景:快速部署一個k8s集群,Rancher 是一個完整的軟件堆棧,技術成熟,適用於生產環境快速部署
2、k3s介紹
-
K3s 是由 Rancher Labs 發布的一款開源、極輕量的Kubernetes 發行版,通過了CNCF一致性認證,適用於在資源有限的環境中運行Kubernetes。
-
K3s主要用於部署在資源受限的邊緣計算場景中,也可以在本地運行以進行Kubernetes測試或開發。
-
K3s是為生產環境設計的,因此在PC或筆記本電腦上,K3s是與生產級服務器最接近的選項。
-
本文的操作的環境采用k3s環境
3、pod介紹
-
Pod是kubernetes中你可以創建和部署的最小也是最簡單位。一個Pod代表着集群中運行的一個進程。
-
Pod中封裝着應用的容器(有的情況下是好幾個容器),存儲、獨立的網絡IP,管理容器如何運行的策略選項。Pod代表着部署的一個單位:kubernetes中應用的一個實例,可能由一個或者多個容器組合在一起共享資源
-
創建pod的兩種方式
a. kubectl命令方式
kubectl run springbootapp --image=xjk27400861/springbootapp:42 --replicas=3
備注:
--image 鏡像名稱及tag
--replicas指定副本數量
b. 文件方式
創建一個文件,springbootapp.yaml
執行創建命令構建pod
sudo kubectl create -f springbootapp.yaml
4、使用文件方式,構建pod
-
創建一個文件,springbootapp.yaml
文件內容
文件文本:
apiVersion: v1 kind: Pod metadata: name: springbootapp labels: app: springbootapp spec: containers: - name: springbootapp image: xjk27400861/springbootapp:42 ports: - containerPort: 8080
備注:
image 指定鏡像及tag
containerPort 指定容器釋放端口
-
執行kubectl命令,構建pod
sudo kubectl create -f springbootapp.yaml
過一會,通過命令sudo kubectl get pods,可以查看到pod已創建成功
-
pod是運行在k8s內部,不能直接訪問,我們需要再部署一個類似“反向代理”角色的Pod來幫我們訪問應用。這個Pod是Service類型的
-
創建一個svc代理的yaml文件:springbootapp-svc.yaml,寫入內容
-
輸入命令,構建svc的pod
sudo kubectl create -f springbootapp-svc.yaml or sudo kubectl create -f springbootapp-svc.yaml -n springboot
-
我們可以通過命令,查看svc pod的狀態
kubectl get svc -n springboot
-n 指定命名空間,不寫默認default
-
在k3s任意節點,通過url可以看到app可以訪問
-
進入pod命令,與docker命令類似:
sudo kubectl exec -it springbootapp bash
-
至此,我們完成了一個簡單應用的部署,這是一個單體應用
參考資料url:
https://www.cnblogs.com/demingblog/p/12905569.html
https://blog.51cto.com/loong576/2420421