雲原生系列2 部署你的第一個k8s應用

image.png

雲原生的概念和理論體系很是的完備,but talk is cheap , show me the code ! 可是做爲一名程序員,能動手的咱絕對很少BB,雖然talk並不cheap , 能跟不一樣層次的人講明白一件事情,自己就不是一件容易的事情。


引題用的圖的意思: hello world !
即部署你的第一個k8s應用。html

部署步驟

  1. 準備你的應用程序;
  2. 編寫Dockerfile,製做鏡像,並測試;
  3. 編寫yaml文件,找一個k8s資源,部署上線;


初略的步驟,實際每一個步驟作到都不簡單,能夠進一步拆分紅不少二級步驟;後面安排單獨的一篇來介紹。

爲了節約時間,這裏直接放一個nginx的例子。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLables:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: nginx-vol
    volumes:
    - name: nginx-vol
      emptyDir: {}

k8s相關指令

執行指令

kubectl apply -f you.yaml

按照標籤篩選pod

kubectl get pods -l app=xxx

查看pod對象定義

kubectl describe pod youpodname

進入容器內部

kubectl exec -it youpodname -- /bin/bash

刪除對象

kubectl delete -f you.yaml

kubectl delete deployments/youdeploymentname


k8s相關概念

deployment


定義多副本的對象,當pod的定義發生變化的時候,滾動升級
nginx

pod


k8s世界中的應用,對應容器組,容器組裏面有多個
程序員

metadata


元數據, 分爲面向用戶的label 和麪向內部對象的annotation ;
shell

spec


即定義,每一個對象的元素不同,好比deployment 和 pod ;
api

volume


即數據卷。 相對於pod來講,有兩種數據卷、


emptyDir: 宿主機上的默認目錄
hostPath: 顯示指定的宿主機的目錄;
bash

devops思考




開發人員開發完程序以後,提供兩個文件跟運維對接,提升devops體驗;

Dockerfile : 製做鏡像,標準化開發和部署環境;
app.yaml: k8s的部署配置文件,標準化部署配置參數;


小結


第一個k8s容器化應用.png

原創不易,關注誠難得,轉發價更高!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。app

相關文章
相關標籤/搜索