雲原生的概念和理論體系非常的完備,but talk is cheap , show me the code ! 但是作為一名程序員,能動手的咱絕對不多BB,雖然talk並不cheap , 能跟不同層次的人講明白一件事情,本身就不是一件容易的事情。
引題用的圖的意思: hello world !
即部署你的第一個k8s應用。
部署步驟
- 准備你的應用程序;
- 編寫Dockerfile,制作鏡像,並測試;
- 編寫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的定義發生變化的時候,滾動升級
pod
k8s世界中的應用,對應容器組,容器組里面有多個
metadata
元數據, 分為面向用戶的label 和面向內部對象的annotation ;
spec
即定義,每個對象的元素不一樣,比如deployment 和 pod ;
volume
即數據卷。 相對於pod來說,有兩種數據卷、
emptyDir: 宿主機上的默認目錄
hostPath: 顯示指定的宿主機的目錄;
devops思考
開發人員開發完程序之后,提供兩個文件跟運維對接,提高devops體驗;
Dockerfile : 制作鏡像,標准化開發和部署環境;
app.yaml: k8s的部署配置文件,標准化部署配置參數;
小結
原創不易,關注誠可貴,轉發價更高!轉載請注明出處,讓我們互通有無,共同進步,歡迎溝通交流。