前言: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