雲原生系列2 部署你的第一個k8s應用
阿新 • • 發佈:2021-02-16
![image.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210215225417355-1968470713.png)
雲原生的概念和理論體系非常的完備,but talk is cheap , show me the code ! 但是作為一名程式設計師,能動手的咱絕對不多BB,雖然talk並不cheap , 能跟不同層次的人講明白一件事情,本身就不是一件容易的事情。
引題用的圖的意思: hello world !
即部署你的第一個k8s應用。 # 部署步驟 1. 準備你的應用程式; 1. 編寫Dockerfile,製作映象,並測試; 1. 編寫yaml檔案,找一個k8s資源,部署上線;
初略的步驟,實際每個步驟做到都不簡單,可以進一步拆分成很多二級步驟;後面安排單獨的一篇來介紹。
為了節約時間,這裡直接放一個nginx的例子。
```yaml 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相關指令
## 執行指令
```shell
kubectl apply -f you.yaml
```
## 按照標籤篩選pod
```shell
kubectl get pods -l app=xxx
```
## 檢視pod物件定義
```shell
kubectl describe pod youpodname
```
## 進入容器內部
```shell
kubectl exec -it youpodname -- /bin/bash
```
## 刪除物件 ```shell 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的部署配置檔案,標準化部署配置引數;
# 小結
![第一個k8s容器化應用.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210215225418495-1476843207.png)
> 原創不易,關注誠可貴,轉發價更高!轉載請註明出處,讓我們互通有無,共同進步,歡迎溝通
引題用的圖的意思: hello world !
即部署你的第一個k8s應用。 # 部署步驟 1. 準備你的應用程式; 1. 編寫Dockerfile,製作映象,並測試; 1. 編寫yaml檔案,找一個k8s資源,部署上線;
初略的步驟,實際每個步驟做到都不簡單,可以進一步拆分成很多二級步驟;後面安排單獨的一篇來介紹。
為了節約時間,這裡直接放一個nginx的例子。
```yaml 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: {} ```
## 刪除物件 ```shell 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的部署配置檔案,標準化部署配置引數;
# 小結
![第一個k8s容器化應用.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210215225418495-1476843207.png)
> 原創不易,關注誠可貴,轉發價更高!轉載請註明出處,讓我們互通有無,共同進步,歡迎溝通