k8s學習筆記(1)- 簡單部署springboot應用

xjk27400861發表於2021-10-16

前言:k8s全稱kubernetes,k8s是為容器服務而生的一個可移植容器的編排管理工具,越來越多的公司正在擁抱k8s,並且當前k8s已經主導了雲業務流程,關於更多的k8s知識,可自行學習

1、k8s環境搭建

2、k3s介紹

  • K3s 是由 Rancher Labs 釋出的一款開源、極輕量的Kubernetes 發行版,通過了CNCF一致性認證,適用於在資源有限的環境中執行Kubernetes。
  • K3s主要用於部署在資源受限的邊緣計算場景中,也可以在本地執行以進行Kubernetes測試或開發。
  • K3s是為生產環境設計的,因此在PC或膝上型電腦上,K3s是與生產級伺服器最接近的選項。
  • 本文的操作的環境採用k3s環境

3、pod介紹

  • Pod是kubernetes中你可以建立和部署的最小也是最簡單位。一個Pod代表著叢集中執行的一個程式。
  • Pod中封裝著應用的容器(有的情況下是好幾個容器),儲存、獨立的網路IP,管理容器如何執行的策略選項。Pod代表著部署的一個單位:kubernetes中應用的一個例項,可能由一個或者多個容器組合在一起共享資源

    image

  • 建立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

    image

    檔案內容

    image

    檔案文字:
      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
    

    image

    過一會,通過命令sudo kubectl get pods,可以檢視到pod已建立成功
  • pod是執行在k8s內部,不能直接訪問,我們需要再部署一個類似“反向代理”角色的Pod來幫我們訪問應用。這個Pod是Service型別的
  • 建立一個svc代理的yaml檔案:springbootapp-svc.yaml,寫入內容

    image

  • 輸入命令,構建svc的pod
      sudo kubectl create -f springbootapp-svc.yaml
      or
      sudo kubectl create -f springbootapp-svc.yaml -n springboot
    

    image

  • 我們可以通過命令,檢視svc pod的狀態
      kubectl get svc -n springboot
    

    -n 指定名稱空間,不寫預設default

  • 在k3s任意節點,通過url可以看到app可以訪問

    image

  • 進入pod命令,與docker命令類似:
      sudo kubectl exec -it springbootapp bash
    
  • 至此,我們完成了一個簡單應用的部署,這是一個單體應用
    參考資料url:

    https://www.cnblogs.com/demingblog/p/12905569.html
    https://blog.51cto.com/loong576/2420421

相關文章