摘要:訪問資源以下代表特定的獲取當前下所有的獲取當前下所有的獲取當前下所有的獲取特定的狀態進入某個容器里邊的命令行查看某個的日志
隨著容器技術的發展,k8s 也越來越火熱。在網絡上有許多關于 k8s 的文章,但大部分都是關于集群部署相關的,
而這篇文章主要講作為應用開發者如何使用 k8s 。
github
準備 預備知識Docker,學習 k8s 之前了解 Docker 是毋庸置疑的。
工具brew install kubectl
kubectl 是 k8s 的命令行工具,用于管理 k8s 集群。以上是 Mac 下的安裝方法,其它操作系統參考官方文檔。當然,你也可以使用 Dashboard 管理容器。
Clusterk8s 集群,一般生產環境有一個 Cluster 集群,測試環境有一個 Cluster 集群。
Namespace在一個 Cluster 會有不同的 Namespace,可以區分不同的業務團隊。
PodPod 是 k8s 中最小的可部署單元。一般一個 Pod 運行一個 Container,但是有時也會運行多個 Container。類似 docker-compose。
DeploymentDeployment 用來控制 Pod,比如控制一個應用起幾個 Pod。
配置文件關于 k8s 的配置文件位置在 ~/.kube/config。另外也可以使用命令 kubectl config 查看以及更改配置,使用命令更改配置的同時,配置文件也會改變。
配置文件可以指定 Cluster,Namespace,User 的配置,并設置 Context。以下是一個簡版的配置文件。
# 該配置文件配置了一個用戶 shanyue,一個集群 dev,并且設置了 dev 的 context apiVersion: v1 clusters: - cluster: certificate-authority: /Users/shanyue/.minikube/ca.crt server: https://192.168.99.100:8443 name: dev contexts: - context: cluster: dev namespace: Business user: shanyue name: dev current-context: dev kind: Config preferences: {} users: - name: shanyue user: client-certificate: /Users/shanyue/.minikube/client.crt client-key: /Users/shanyue/.minikube/client.key
其中 current-context 代表當前上下文,也可以通過以下命令來設置上下文。
# 查看配置 kubectl config view # 查看集群列表 kubectl config get-clusters # 查看 Context 列表 kubectl config get-contexts # 設置當前 Context kubectl config use-context dev創建資源
kubectl create 代表根據文件創建資源,可以是 Deployment,也可以是 Pod。
kubectl run 代表根據鏡像創建資源。
kubectl create -f app.yaml kubectl run --image=k8s.gcr.io/echoserver:1.10 --port=8080
一般在 CI 中作 deploy 時會使用 kubectl apply 命令,根據配置文件更新資源。
配置文件中可以寫多份配置,也可以寫 Deployment,Service 各種 Kind 配置。以下是以 node 作為服務器語言樣例的配置。
apiVersion: v1 kind: Service metadata: name: app namespace: dev labels: name: app spec: ports: - port: 8080 targetPort: 8080 protocol: TCP selector: name: app --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: app namespace: dev labels: name: app spec: template: metadata: labels: name: app spec: containers: - name: app image: node imagePullPolicy: Always env: - name: PORT value: "8080" ports: - containerPort: 8080訪問資源
以下 $app 代表特定 Pod 的 Name
# 獲取當前 Context 下所有的 Deployment kubectl get deployments # 獲取當前 Context 下所有的 Pod kubectl get pods # 獲取當前 Cluster 下所有的 Pod kubectl get pods --all-namespaces # 獲取特定 Pod 的狀態 kubectl describe pod $app # 進入某個 Pod 容器里邊的命令行 kubectl exec -it $app bash # 查看某個 Pod 的日志 kubectl logs $app
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27377.html
摘要:訪問資源以下代表特定的獲取當前下所有的獲取當前下所有的獲取當前下所有的獲取特定的狀態進入某個容器里邊的命令行查看某個的日志 隨著容器技術的發展,k8s 也越來越火熱。在網絡上有許多關于 k8s 的文章,但大部分都是關于集群部署相關的, 而這篇文章主要講作為應用開發者如何使用 k8s 。 github 準備 預備知識 Docker,學習 k8s 之前了解 Docker 是毋庸置疑的。 工...
摘要:訪問資源以下代表特定的獲取當前下所有的獲取當前下所有的獲取當前下所有的獲取特定的狀態進入某個容器里邊的命令行查看某個的日志 隨著容器技術的發展,k8s 也越來越火熱。在網絡上有許多關于 k8s 的文章,但大部分都是關于集群部署相關的, 而這篇文章主要講作為應用開發者如何使用 k8s 。 github 準備 預備知識 Docker,學習 k8s 之前了解 Docker 是毋庸置疑的。 工...
摘要:將用戶命令通過接口傳送給,從而進行資源的增刪改等操作。要使用編寫應用程序,當下大多語言都可以很方便地去實現請求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優雅地實現的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術棧打造個人私有云系列文章目錄】 利用K8S...
摘要:將用戶命令通過接口傳送給,從而進行資源的增刪改等操作。要使用編寫應用程序,當下大多語言都可以很方便地去實現請求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優雅地實現的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術棧打造個人私有云系列文章目錄】 利用K8S...
摘要:本文是網易容器云平臺的微服務化實踐系列文章的第一篇。網易容器云平臺的前身是網易應用自動部署平臺,它能夠利用云提供的基礎設施,實現包括構建和部署一體化在內的整個應用生命周期管理。目前網易云容器服務團隊以的方式管理著微服務,每周構建部署次數。 此文已由作者馮常健授權網易云社區發布。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 摘要:網易云容器平臺期望能給實施了微服務架構的團隊提供完...
閱讀 1189·2021-11-22 13:54
閱讀 2438·2021-09-22 15:36
閱讀 2743·2019-08-30 15:54
閱讀 812·2019-08-30 15:53
閱讀 3176·2019-08-30 15:53
閱讀 519·2019-08-29 15:21
閱讀 2874·2019-08-28 18:28
閱讀 3022·2019-08-26 13:37