亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Kubernetes常見命令

2024-09-06 10:11:52
13
0

一、創建和管理Pod

創建nginx pod

kubectl run nginx-local --image=nginx

 查看Pod

kubectl get pod

 描述

kubectl describe pod nginx-local

 查看Pod的運行日志

kubectl logs mynginx

顯示pod的IP和運行節點信息

kubectl get pod -owide

 使用Pod的ip+pod里面運行容器的端口

curl 10.42.1.3

 在容器中執行

kubectl exec nginx-local -it -- /bin/bash

 刪除

kubectl delete pod nginx-local

 強制刪除

kubectl delete pod nginx-local --force

 

二、Deployment(部署)與ReplicaSet(副本集)

Deployment是對ReplicaSet和Pod更高級的抽象。它使Pod擁有多副本,自愈,擴縮容、滾動升級等能力。ReplicaSet(副本集)是一個Pod的集合。它可以設置運行Pod的數量,確保任何時間都有指定數量的 Pod 副本在運行。

常見命令

創建deployment,部署3個運行nginx的Pod

kubectl create deployment nginx-deployment --image=nginx:1.22 --replicas=3

查看deployment

kubectl get deploy

查看replicaSet

kubectl get rs

刪除deployment

kubectl delete deploy nginx-deployment

縮放

手動縮放

將副本數量調整為5

kubectl scale deployment/nginx-deployment --replicas=5

kubectl get deploy

自動縮放

自動縮放通過增加和減少副本的數量,以保持所有 Pod 的平均 CPU 利用率不超過 75%。

自動縮放

kubectl autoscale deployment/nginx-auto --min=3 --max=10 --cpu-percent=75

查看自動縮放

kubectl get hpa

刪除自動縮放

kubectl delete hpa nginx-deployment

滾動更新

查看版本和Pod

kubectl get deployment/nginx-deployment -owide

kubectl get pods

更新容器鏡像

kubectl set image deployment/nginx-deployment nginx=nginx:1.23

滾動更新

kubectl rollout status deployment/nginx-deployment

查看過程

kubectl get rs --watch

版本回滾

查看歷史版本

kubectl rollout history deployment/nginx-deployment

查看指定版本的信息

kubectl rollout history deployment/nginx-deployment --revision=2

回滾到歷史版本

kubectl rollout undo deployment/nginx-deployment --to-revision=2

三、Service(服務)

Service將運行在一組 Pods 上的應用程序公開為網絡服務的抽象方法。

Service為一組 Pod 提供相同的 DNS 名,并且在它們之間進行負載均衡。

Kubernetes 為 Pod 提供分配了IP 地址,但IP地址可能會發生變化。

集群內的容器可以通過service名稱訪問服務,而不需要擔心Pod的IP發生變化。

ServiceType 取值

  • ClusterIP將服務公開在集群內部。kubernetes會給服務分配一個集群內部的 IP,集群內的所有主機都可以通過這個Cluster-IP訪問服務。集群內部的Pod可以通過service名稱訪問服務。
  • NodePort通過每個節點的主機IP 和靜態端口(NodePort)暴露服務。 集群的外部主機可以使用節點IP和NodePort訪問服務。
  • ExternalName:將集群外部的網絡引入集群內部。
  • LoadBalancer:使用云提供商的負載均衡器向外部暴露服務。
kubectl expose deployment/nginx-deployment --name=nginx-service --type=ClusterIP --port=8080 --target-port=80

nginx-service后面的負載

kubectl get endpoints nginx-service

隨機產生主機端口

kubectl expose deployment/nginx-deployment --name=nginx-service2 --type=NodePort --port=8080 --target-port=80

四、Namespace(命名空間)

名空間(Namespace)是一種資源隔離機制,將同一集群中的資源劃分為相互隔離的組。

Kubernetes 會創建四個初始命名空間:

  • default 默認的命名空間,不可刪除,未指定命名空間的對象都會被分配到default中。
  • kube-system Kubernetes 系統對象(控制平面和Node組件)所使用的命名空間。
  • kube-public 自動創建的公共命名空間,所有用戶(包括未經過身份驗證的用戶)都可以讀取它。通常我們約定,將整個集群中公用的可見和可讀的資源放在這個空間中。
  • kube-node-lease 租約(Lease)對象使用的命名空間。每個節點都有一個關聯的 lease 對象,lease 是一種輕量級資源。lease對象通過發送心跳,檢測集群中的每個節點是否發生故障。

管理命名空間

創建命名空間

kubectl create namespace dev

查看命名空間

kubectl get ns

在命名空間內運行Pod

kubectl run nginx --image=nginx --namespace=dev

kubectl run my-nginx --image=nginx -n=dev

查看命名空間內的Pod

kubectl get pods -n=dev

查看命名空間內所有對象

kubectl get all

刪除命名空間會刪除命名空間下的所有內容

kubectl delete ns dev

切換當前命名空間

查看當前上下文

kubectl config current-context

將dev設為當前命名空間,后續所有操作都在此命名空間下執行。

kubectl config set-context $(kubectl config current-context) --namespace=dev

常用命令縮寫

名稱

縮寫

Kind

namespaces

ns

Namespace

nodes

no

Node

pods

po

Pod

services

svc

Service

deployments

deploy

Deployment

replicasets

rs

ReplicaSet

statefulsets

sts

StatefulSet

0條評論
作者已關閉評論
l0cal
2文章數
0粉絲數
l0cal
2 文章 | 0 粉絲
l0cal
2文章數
0粉絲數
l0cal
2 文章 | 0 粉絲
原創

Kubernetes常見命令

2024-09-06 10:11:52
13
0

一、創建和管理Pod

創建nginx pod

kubectl run nginx-local --image=nginx

 查看Pod

kubectl get pod

 描述

kubectl describe pod nginx-local

 查看Pod的運行日志

kubectl logs mynginx

顯示pod的IP和運行節點信息

kubectl get pod -owide

 使用Pod的ip+pod里面運行容器的端口

curl 10.42.1.3

 在容器中執行

kubectl exec nginx-local -it -- /bin/bash

 刪除

kubectl delete pod nginx-local

 強制刪除

kubectl delete pod nginx-local --force

 

二、Deployment(部署)與ReplicaSet(副本集)

Deployment是對ReplicaSet和Pod更高級的抽象。它使Pod擁有多副本,自愈,擴縮容、滾動升級等能力。ReplicaSet(副本集)是一個Pod的集合。它可以設置運行Pod的數量,確保任何時間都有指定數量的 Pod 副本在運行。

常見命令

創建deployment,部署3個運行nginx的Pod

kubectl create deployment nginx-deployment --image=nginx:1.22 --replicas=3

查看deployment

kubectl get deploy

查看replicaSet

kubectl get rs

刪除deployment

kubectl delete deploy nginx-deployment

縮放

手動縮放

將副本數量調整為5

kubectl scale deployment/nginx-deployment --replicas=5

kubectl get deploy

自動縮放

自動縮放通過增加和減少副本的數量,以保持所有 Pod 的平均 CPU 利用率不超過 75%。

自動縮放

kubectl autoscale deployment/nginx-auto --min=3 --max=10 --cpu-percent=75

查看自動縮放

kubectl get hpa

刪除自動縮放

kubectl delete hpa nginx-deployment

滾動更新

查看版本和Pod

kubectl get deployment/nginx-deployment -owide

kubectl get pods

更新容器鏡像

kubectl set image deployment/nginx-deployment nginx=nginx:1.23

滾動更新

kubectl rollout status deployment/nginx-deployment

查看過程

kubectl get rs --watch

版本回滾

查看歷史版本

kubectl rollout history deployment/nginx-deployment

查看指定版本的信息

kubectl rollout history deployment/nginx-deployment --revision=2

回滾到歷史版本

kubectl rollout undo deployment/nginx-deployment --to-revision=2

三、Service(服務)

Service將運行在一組 Pods 上的應用程序公開為網絡服務的抽象方法。

Service為一組 Pod 提供相同的 DNS 名,并且在它們之間進行負載均衡。

Kubernetes 為 Pod 提供分配了IP 地址,但IP地址可能會發生變化。

集群內的容器可以通過service名稱訪問服務,而不需要擔心Pod的IP發生變化。

ServiceType 取值

  • ClusterIP將服務公開在集群內部。kubernetes會給服務分配一個集群內部的 IP,集群內的所有主機都可以通過這個Cluster-IP訪問服務。集群內部的Pod可以通過service名稱訪問服務。
  • NodePort通過每個節點的主機IP 和靜態端口(NodePort)暴露服務。 集群的外部主機可以使用節點IP和NodePort訪問服務。
  • ExternalName:將集群外部的網絡引入集群內部。
  • LoadBalancer:使用云提供商的負載均衡器向外部暴露服務。
kubectl expose deployment/nginx-deployment --name=nginx-service --type=ClusterIP --port=8080 --target-port=80

nginx-service后面的負載

kubectl get endpoints nginx-service

隨機產生主機端口

kubectl expose deployment/nginx-deployment --name=nginx-service2 --type=NodePort --port=8080 --target-port=80

四、Namespace(命名空間)

名空間(Namespace)是一種資源隔離機制,將同一集群中的資源劃分為相互隔離的組。

Kubernetes 會創建四個初始命名空間:

  • default 默認的命名空間,不可刪除,未指定命名空間的對象都會被分配到default中。
  • kube-system Kubernetes 系統對象(控制平面和Node組件)所使用的命名空間。
  • kube-public 自動創建的公共命名空間,所有用戶(包括未經過身份驗證的用戶)都可以讀取它。通常我們約定,將整個集群中公用的可見和可讀的資源放在這個空間中。
  • kube-node-lease 租約(Lease)對象使用的命名空間。每個節點都有一個關聯的 lease 對象,lease 是一種輕量級資源。lease對象通過發送心跳,檢測集群中的每個節點是否發生故障。

管理命名空間

創建命名空間

kubectl create namespace dev

查看命名空間

kubectl get ns

在命名空間內運行Pod

kubectl run nginx --image=nginx --namespace=dev

kubectl run my-nginx --image=nginx -n=dev

查看命名空間內的Pod

kubectl get pods -n=dev

查看命名空間內所有對象

kubectl get all

刪除命名空間會刪除命名空間下的所有內容

kubectl delete ns dev

切換當前命名空間

查看當前上下文

kubectl config current-context

將dev設為當前命名空間,后續所有操作都在此命名空間下執行。

kubectl config set-context $(kubectl config current-context) --namespace=dev

常用命令縮寫

名稱

縮寫

Kind

namespaces

ns

Namespace

nodes

no

Node

pods

po

Pod

services

svc

Service

deployments

deploy

Deployment

replicasets

rs

ReplicaSet

statefulsets

sts

StatefulSet

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0