黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Kubernetes基本的使用方法

Kubernetes基本的使用方法

更新時間:2022-12-21 10:27:32 來源:動力節點 瀏覽1336次

kubectl是Kubernetes集群的命令行工具,通過kubectl能夠對集群本身進行管理,并能夠在集群上進行容器化應用的安裝部署.

K8s 的 Apiserver 是集群控制的入口,k8s 集群管理要在 master 節點進行,即訪問部署的 Apiserver。kubectl 命令默認訪問本機的 Apiserver 的 8080 端口。假如在 k8s 啟動了 kubelet 服務的node 節點,想使用 k8s 集群管理命令操作。會提示如下:

常規用法

1.node 節點管理

(1)查看節點

$ kubectl get no/nodes

(2)刪除一個節點前,先驅趕掉上面的pod

$ kubectl drain slave2 --delete-local-data

(3)刪除slave2節點,這個節點如果從新啟動kubelet服務的話,在master節點還是可以看到的該節點的

$ kubectl delete node slave2

k8s刪除一個節點使用以下命令

其實以上命令是通用的,可以進行任何資源的刪除:

kubectl delete [type] [typename],type 是資源類型,可以是 node, pod, rs, rc, deployment, service 等等,typename是這個資源的名稱

(4)查看資源概況

$ kubectl describe nodes
$ kubectl describe node slave1

2.namespace 命名空間管理

命名空間是一個抽象出來的概念,在一個命名空間中,pod名稱不允許重復。這個命名空間如果我們把他想象成我們的環境可能更好理解。我們的微服務項目需要部署到開發、測試、生產環境等。那這時候我們就可以定義3個命名空間為 dev、test、product。每個環境都要部署一套微服務容器。Pod名稱在不同的 namespace 中是相同的。或者也可以把 Namespace 和 Pod 理解成數據庫和表的關系。

(1)查看命名空間

(2)創建命名空間

方式1:使用命令創建

[root@master local]# kubectl create namespace esign-dev
namespace "esign-dev" created

方式2:配置文件創建命名空間

編輯配置文件:namespace-test.yaml

apiVersion: v1    #api版本號
kind: Namespace    #指定類型為Namespace
metadata:     #元數據描述
 name: test    #指定namespace名稱

創建namespace

[root@master local]# kubectl apply -f ./namespace-test.yaml 
namespace "test" created

(3)刪除命名空間

刪除命名空間時會同時刪除該空間下所有資源,就好像數據庫和表的關系。開發中要謹慎操作,同時系統命名空間不會被刪除

3.pod 資源管理

(1)Pod 生命周期

pod生命周期:

Pending:API Server已經創建了該Pod,但Pod中的一個或多個容器的鏡像還沒有創建,包括鏡像下載過程

Running:Pod內所有容器已創建,且至少一個容器處于運行狀態、正在啟動狀態或正在重啟狀態

Completed:Pod內所有容器均成功執行退出,且不會再重啟

Failed :Pod內所有容器均已退出,但至少一個容器退出失敗

Unknown:由于某種原因無法獲取Pod狀態,例如網絡通信不暢

pod失效時的重啟策略:

Always:當容器失效時,立馬由kubelet自動重啟該容器

OnFailure:當容器終止運行且退出碼不為0時,由kubelet自動重啟該容器

Never:不論容器運行狀態如何,kubelet都不會重啟該容器

*對于Always這種策略,容器只要掛了,就會立即重啟,這樣是很耗費資源的。所以Always重啟策略會這么做:第一次容器掛了立即重啟,如果再掛了就要延時10s重啟,第三次掛了就等20s重啟...... 依次類推

(2)創建 pod 容器

編輯 demo-rc/yaml 文件:

鏡像192.168.56.104:5000/nginx,是我基于Nginx鏡像重新tag,并上傳到docker私服的。這樣做是因為 k8s 會把構建的 Pod 隨機分配到 node節點去處理,無論是哪個 node去構建 Pod都要能保證能拉到鏡像,所以必須用私服統一管理鏡像。

鏡像拉取策略 imagePullPolicy:

Always - 每次都要從私服pull

IfNotPresent - 本地有就不從私服拉(這是默認值)

Never - 從不pull

關于鏡像拉取,Pod 構建 docker 容器時,會執行docker pull 將鏡像從私服拉到本地。且其默認執行策略是如果本地有就不再pull。所以如果我們用jenkins構建應用服務時,首先需要將鏡像上傳到私服,且 Pod 的執行策略也必須是每次都要從私服Pull,否則它Pull 一次之后。將不再拉取最新構建的鏡像。

apiVersion: v1    #描述的是Api版本
kind: Pod    #指定的是Pod類型
metadata:    #描述該Pod的元數據信息
  name: nginx    #Pod名稱    
  namespace: esign-dev    #指定該Pod所屬的命名空間,這個命名空間需要提前創建好。否則報錯
  labels:
    owner: jpjinga    #給Pod添加自定義標簽,key、value都是自定義
spec:
  containers:
    - name: nginx
      image: 192.168.56.104:5000/nginx:latest
      imagePullPolicy: Always    #一直從遠程倉庫拉取
      ports:
      - containerPort: 80    #容器端口
        hostPort: 8081    #映射的主機端口
        name: web
        protocol: TCP

創建并啟動 pod

獲取Pod

kubectl get po -n esign-dev    #獲取指定命名空間的Pod資源
kubectl get po --all-namespaces -o wide    #獲取所有命名空間的Pod資源

我們看一下Pod啟動后的具體信息:

kubectl describe pod nginx -n esign-dev

我們切換到主機名為 slave1(192.168.56.102)的節點,查看運行容器。可以發現 k8s 運行的是一個Pod基礎容器,我們在上一篇搭建k8s集群node節點時,配置過這個Pod基礎鏡像。Pod是K8s管理的最小單元。在這個Pod里運行的是Nginx容器。主機對Pod內部容器的端口映射是:8081->80。

我們用瀏覽器來訪問一下這個Nginx,可以看到訪問正常。

(3)查看容器運行狀態

ready:Pod準備情況,準備就緒/Pod包含容器的總數目

restarts:Pod重啟次數

age:Pod存活時間

(4)查看Pod詳細信息

說明:查看的pod所屬命名空間namespace != dufault 時,需要-n 指定其命名空間才可以看到

kubectl describe pod [podname] -n [namespace]

(5)更新Pod

更新:

kubectl replace -f demo-rc.yaml

由于Pod的很多屬性沒辦法修改,比如容器鏡像,這時候可以采用--force參數

kubectl replace --force -f demo-ng.yaml

看運行效果,就相當于刪掉后重新構建了一個Pod:

(6)進入Pod中的容器

命名空間非默認時需要-n 指定

如果Pod內部只有一個容器,不需要指定 -c ,默認進入第一個容器。

kubectl exec -it [pod-name] -n [namespace] -c [container-name] /bin/bash 

(7)Pod與標簽

添加標簽

kubectl label pod [podname] -n [namespace] key=value    #指定pod,添加自定義標簽

查詢Pod時,展示標簽內容:

(8)刪除Pod

-n 刪除指定命名空間下的Pod容器

如不指定,則刪除的是 namespace=default 下的Pod容器

kubectl delete pod [podname] -n [namespace]    # 刪除一個Pod
kubectl delete pod --all -n [namespace]    # 刪除所有Pod

(9)查看容器日志,參數-f 可以監控實時日志

kubectl logs [-f] -n [namespace] [podName] -c [containerName]

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美精品一线二线大片 | 黄污视频免费观看 | 99re热精品视频国产免费 | 九九色视频在线观看 | 久久久久久久99精品免费观看 | 日韩在线www| 欧美三级超在线视频 | 2015xxx小明永久免费 | 日本欧美视频在线 | 国产一区系列在线观看 | 亚洲国产高清在线 | 在线视频一区二区日韩国产 | 中文字幕15页 | 丝袜三级 | 97夜夜澡人人爽人人喊一欧美 | 91网站免费看 | 日本动态120秒免费 日本二区视频 | 老色批在线播放视频网站免费 | 青青草国拍 | 成人在线免费视频播放 | 国产亚洲视频在线播放大全 | 美女网站大黄 | 久久国产精品-国产精品 | 看免费毛片天天看 | 免费看黄视频 | 瑟瑟网站免费网站入口 | 国产99视频精品免视看7 | 古代级a毛片在线 | 国产成人a一区二区 | 日韩视频免费 | 曰批免费视频播放在线看片二 | 深夜免费福利 | 2048国产精品原创综合在线 | 免费看片的网址 | 福利在线看片 | 中文字幕另类 | 欧美在线精品一区二区三区 | 日韩精品视频福利资源站 | 欧美videos另类hd肥妇色 | 一个人看的www免费视频 | 亚洲国产欧美无圣光一区 |