91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

K8S基本使用方法有哪些

發布時間:2021-12-04 15:08:03 來源:億速云 閱讀:200 作者:小新 欄目:云計算

小編給大家分享一下K8S基本使用方法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

pod創建

K8s集群的最小單位是pod,一個pod里面可以包含多的容器,通常以yaml文件去創建pod,也可以使用run命令直接創建

創建pod:命令格式: kubectl create –f [yaml文件]

使用RUN命令直接創建:命令格式:kubectl run –i –t [pod名稱] –image=[鏡像名稱]

列1:通過ymal文件創建一個Redis-master pod

redis-master-controller.yaml 文件內容:
apiVersion: v1
kind: ReplicationController
metadata: 
  name: redis-master
  labels:
    name: redis-master
spec:
  replicas:
  selector:
    name: redis-master
  template:
   metadata:
     labels:
       name: redis-master
   spec:
     containers:
     - name: master
       image: kubeguide/redis-master
       ports:
       - containerPort: 6379


kubectl create -f redis-master-controller.yaml

例2: 使用RUN命令直接創建

kubectl run -i -t busybox --image=busybox
kubectl run -i -t busybox --image=busybox --replicas=5  
--replicas 指定副本數 常用參數

pod刪除

命令格式: kubectl delete pod/po [pod名稱]

此時雖然顯示pod已經刪除,但是你再次查看pod的時候會發現還是有一個名為busybox**的pod存在,這是因為k8s的安全機制,k8s保證了定義的pod副本數的恒定,加入一個pod副本數為5那么有5個pod提供服務,pod壞掉或者刪除掉k8s的安全機制將檢查副本數量如果pod數量少于5 那么k8s將會自動創建pod使之保持在數量為5個。

徹底刪除:

第一種方式是重新編輯yaml文件 如果文件指定多個副本數將其改為0

第二種方式使用 kubectl delete –f m命令

POD 查看

總體查看

命令 kubectl get pods 進行查看

相對詳細信息查看

kubectl get pod -o wide

更加詳細的信息

命令格式: kubectl describe [po/deploy] [名稱]

pod 和deployment

pod是什么

Pod是k8s集群的最小單元,一個pod里面可以包含多的容器,那么所有屬于這個pod的容器都會運行在一個節點上面。Pod封裝了一個或多個應用程序的容器(比如nginx等),存儲資源,唯一的網絡IP以及管理容器的一些選項 Pod標示的是一個部署單元,可以理解為Kubernetes中的應用程序的單個實例,它可能由單個容器組成,也可能由少量緊密耦合并共享資源的容器組成。如果多個容器在同一Pod下他們公用一個IP所以不能出現重復的端口號,比如在一個Pod下運行兩個nginx就會有一個容器異常,一個Pod下的多個容器可以使用localhost來訪問對方端口應為Pod是最小的單元如果在Pod中容器出現異常終止了是不會重啟,在實際使用場景下基本不會直接使用Pod而是使用Deployment部署自己的應用

deployment 是什么

在早期版本使用Replication Controller對Pod副本數量進行管理,在新的版本中官方推薦使用Deployment來代替RC,Deployment相對RC有這些好處

 特點:

Deployment擁有更加靈活強大的升級、回滾功能,并且支持滾動更新

使用Deployment升級Pod只需要定義Pod的最終狀態,k8s會為你執行必要的操作(RC要自己定義如何操作)

進入到容器內部操作

K8s進入pod指令和 docker 進入容器指定類似

Docker進入容器指令為:

docker exec –it 容器ID/name sh/bash

K8s進入到pod中容器中指令:

kubectl exec –it pod-name sh/bash

拷貝一個文件到pod指定目錄

命令:kubectl cp file/dir  <some-pod>:某目錄

service與pod or deployment

pod 與 service的關系

前面寫到創建了POD,但是有了POD依然不能提供服務,此時輪到了我們service上場了,專業一點講叫服務發布。服務發布是創建了POD或者deployment 然后還需要創建service發布出去。 關聯pod和service 是通過 labels 標簽實現的。為關聯的準確性可以添加多個標簽

例:我們創建一個redis-master的POD 然后在創建一個redis-master 的服務并發布

發布pod

創建pod:
vim redis-master-controller.yaml   
 
apiVersion: v1
kind: ReplicationController
metadata: 
  name: redis-master
  labels:
    name: redis-master
spec:
  replicas:
  selector:
    name: redis-master
  template:
   metadata:
     labels:
       name: redis-master
   spec:
     containers:
     - name: master
       image: kubeguide/redis-master
       ports:
       - containerPort: 6379

發布Service

vim redis-master-service.yaml   
    
apiVersion: v1
kind: Service
metadata:
  name: redis-master
  labels:
    name: redis-master
spec:
  ports:
  - port: 6379
    targetPort: 6379
  selector:
    name: redis-master
服務的創建方式與pod相同:
使用 kubectl create –f [x-service.yaml]
kubectl create -f redis-master-service.yaml

查看服務

命令 
kubectl get svc –o wide 
服務的CLUSTER-IP 是服務的 VIP

查看詳細的描述信息:

Kubectl describe svc [service-name]

銷毀服務

service的銷毀和pod的銷毀方法相同
命令: kubectl delete –f [x-service.yaml]

注意:創建完整的容器提供服務包含 POD(Deployment)和 Services,建議Services在Pod之前創建。

Pod 副本數動態縮放

方法一 使用命令操作副本數量

例:創建一個redis-slave 應用容器 副本數量指定為2 然后通過命令進行動態擴容和縮容

vim redis-slave.yaml

apiVersion: v1
kind: ReplicationController
metadata: 
  name: redis-slave
  labels:
    name: redis-slave
spec:
  replicas: 2
  selector: 
    name: redis-slave
  template: 
    metadata: 
      labels:
        name: redis-slave
    spec:
      containers:
      - name: slave
        image: kubeguide/guestbook-redis-slave
        env:
        - name: GET_HOSTS_FROM
          value: env
        ports:
        - containerPort: 6379

kubectl create -f redis-slave.yaml

上面的yaml文件是定義了2個pod副本,我們通過命令擴容到5個

使用scale命令 
kubectl scale rc redis-slave --replicas=5

此時通過 kubectl get pod -o wide 命令去查看,你會發現有五個redis-slave pod了

縮容的方式一樣 在命令里面指定  --replicas 的數量即可實現

方法2 修改配置達成縮容擴容
命令 :kubectl edit  rc/deployment [rc/deployment-name]

例:修改應用配置 我們上一步將replicas 數量設置為5 現在將他改為6 保存退出驗證

kubectl edit rc redis-slave

K8S基本使用方法有哪些

方法3 修改 yaml文件重構達成目的
重構命令:kubectl replace -f x.yaml

修改配置文件進行重構即可,這個是需要釋放已存在的pod,然后創建新的pod的過程

查看已經構建的服務使用的端口

查看全部的包括宿主機的

命令:kubectl get endpoints

只查看rc/deploy相關的端口

kubectl get ep [rc/deploy-name]

pod的狀態

使用k8s創建pod的幾種狀態

Pending:Pod已經被系統接收,準備下載鏡像。
Running:Pod已經分配到節點,并且所有容器已創建。至少有一個容器仍在運行、正在啟動或重新啟動。
Successed:Pod中的所有容器已成功終止,不會重新啟動。
Failed:Pod中的所有容器已終止,并且至少有一個容器已經終止。也就是說,容器退出非零狀態或被系統終止。
Unknown:由于某種原因,無法獲得Pod狀態,通常是由于與Pod所在主機通信時出現錯誤。

Namespace

查看所有namespace

命令:kubectl get namespace/ns(ns 為簡寫)

注:我們的在未指定namespace創建Pod 會默認使用default 這個命名空間

給pod指定namespace

在給pod指定之前我們k8s集群默認是只有default 這個命名空間,所以我們如果使用其他命名空間需要先創建命名空間

例: 創建一個名為mynamespace的命名空間

cat mynamespace.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: mynamespace

創建命令與創建pod和service相同

yaml 指定namespace示子:

cat pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: busybox1
  namespace: mynamespace
spec:
  containers:
  - image: gcr.io/google_containers/busybox
    command:
      - sleep
      - "3600"
    name: busybox1


kubectl create -f pod.yaml

創建完pod 此時你使用 kubectl get pod -o wide 或者 kubectl get pod  查看是看不到的,因為這些pod都是在默認空間中的

所以想要查看 mynamespace 空間的pod 需要在查看命令指定namespace空間

命令:

kubectl get pods –n [namespace名稱]
或者
kubectl get pods -o wide –n [namespace名稱]

使用run 命令創建pod指定namespace

kubectl run -i -t busybox --image=busybox --namespace=mynamespace

Kubectl命令行管理對象

K8S基本使用方法有哪些

K8S基本使用方法有哪些

創建資源小技巧

當資源可以使用create 創建時,可以使用 -o yaml 和 --dry-run 查看yaml文件如何寫

-o yaml  以yaml格式輸出

--dry-run 測試創建,不會真的創建資源

例:

kubectl create serviceaccount mycount -o yaml --dry-run

另外一種方法導出摸個pod/deploy yaml文件 用于模板文件可以修改為其他的pod/deploy的yaml

kubectl get pods x-pod -o yaml --export

查看 node標簽

kubectl get nodes --show-labels

給node打標簽

kubectl label nodes node1 zone=foo

zone 標簽key
foo  標簽值

node設置污點

kubectl taint node node2 node-type=dev:NoExecute

node去污

kubectl taint node node2 node-type:NoExecute-

以上是“K8S基本使用方法有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

k8s
AI

新绛县| 华坪县| 游戏| 汉阴县| 禄劝| 阜新| 郴州市| 诏安县| 彩票| 泸溪县| 乌兰浩特市| 彭阳县| 宕昌县| 武汉市| 永宁县| 抚顺市| 和平县| 成安县| 新泰市| 汨罗市| 江津市| 疏附县| 青铜峡市| 玉山县| 临武县| 安多县| 定边县| 马边| 南木林县| 临潭县| 白沙| 米易县| 潼南县| 栖霞市| 松原市| 襄垣县| 长阳| 始兴县| 商都县| 东兴市| 余姚市|