1. 程式人生 > >Kubernetes 常用命令及應用例項

Kubernetes 常用命令及應用例項

一. 常用命令

Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。

Kubernetes一個核心的特點就是能夠自主的管理容器來保證雲平臺中的容器按照使用者的期望狀態執行著(比如使用者想讓apache一直執行,使用者不需要關心怎麼去做,Kubernetes會自動去監控,然後去重啟,新建,總之,讓apache一直提供服務),管理員可以載入一個微型服務,讓規劃器來找到合適的位置,同時,Kubernetes也系統提升工具以及人性化方面,讓使用者能夠方便的部署自己的應用(就像canary deployments)。

1. 部署

kubectl create -f request.yaml

request.yaml 內容在例項中

2. 刪除pod

kubectl delete pod pod名

#刪除deployment
kubectl delete deploy request

3. 檢視pod

kubectl get pod 

#pod的詳細資訊(執行在哪個節點)
kubectl get pod -o wide

#某個pod的詳細資訊
kubectl describe pod request-asdajsd2313-sdf

#通過選擇器名查詢
kubectl get
pod --selector name=redis

4. 檢視日誌

kubectl log -f (pod的name)

5. 部署服務

kubectl expose deployment request --type=LoadBanlancer

解釋:
kubectl expose 將資源暴露為新的Kubernetes Service
type有三種類型

  1. ClusterIP:使用一個叢集固定IP,這個是預設選項
  2. NodePort:使用一個叢集固定IP,但是額外在每個POD上均暴露這個服務,埠
  3. LoadBalancer:使用叢集固定IP,和NODEPord,額外還會申請申請一個負載均衡器來轉發到服務(load balancer )
    注意:NodePort 支援TCP和UDN,但是LoadBalancers在1.0版本只支援TCP

6. 檢視服務

kubectl get service

7. 更新pod

#第一個requet 是deployment名稱,第二個request是request.yaml中定義的映象名
#將映象設定成最新的
#-- record :記錄版本用的
kubectl set image deployment/request request=hub.yun.paic.com.cn/sunhui227/request:dev1.0.1 --record

#顯示deployment "request" image updated 則成功
#檢視更新狀態
kubectl rollout status deployment/request

#檢視pod狀態
kubectl get pod 

#檢視rs狀態
kubectl get rs 

也可以用以下方式更新:
1.使用kubectl apply命令來發起Deployment更新

新建一個yaml檔案,改成最新的IMAGES

kubectl apply -f new-request.yaml

2.通過edit命令線上修改deployment:

kubectl edit deployment nginx-deployment

儲存即可自動更新

9. 終止升級,繼續升級

kubectl rollout pause deployment/request

kubectl rollout resume deployment/request

10. 回滾pod

#回滾到前一版本
kubectl rollout undo deployment/request

#檢視歷史版本
kubectl rollout history deployment/request

#回滾到指定版本-5
kubectl rollout undo deployment/request  --to-revision=5

11. 收縮,擴容

kubectl scale  --replicas=1 deploy/request

kubectl scale deployment request --replicas 10

12. 獲取幫助

kubectl scale -h

13. 檢視deployment詳細資訊

kubectl describe deployment

14. 檢視ingress

Kubectl get ing
#詳情
Kubectl get ing –o yaml 
#更新
kubectl edit ing test

15. 刪除一直處於terminating狀態的pod

kubectl get pod | grep Terminating | awk {'print $1'} | xargs kubectl delete pod  --grace-period=0 --force

16. 進入POD內部

kubectl exec -it  change-1124521512-pmnls   /bin/bash

二. 例項

闡述一些例項

1. 編寫ingress

通常情況下,service和pod的IP僅可在叢集內部訪問。叢集外部的請求需要通過負載均衡轉發到service在Node上暴露的NodePort上,然後再由kube-proxy將其轉發給相關的Pod。
而Ingress就是為進入叢集的請求提供路由規則的集合

1. 路由到多服務的Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /foo
        backend:
          serviceName: s1
          servicePort: 80
      - path: /bar
        backend:
          serviceName: s2
          servicePort: 80

2. 虛擬主機Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: s1
          servicePort: 80
  - host: bar.foo.com
    http:
      paths:
      - backend:
          serviceName: s2
          servicePort: 80

2. 編寫建立pod的yaml

以request.yaml為例

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: request                #名稱
  namespace: sasda-asdasd123   #空間
spec:
  replicas: 1                  #pod個數
  template:
    metadata:
      labels:
        run: request           #label
    spec:
      nodeSelector:
        itil_cluster: sasda-asdasd123        #叢集選擇器,指定pod建立在哪個叢集中
      containers:
      - env:                                 #環境變數
        - name: PROFILE                      #dockerfile中的啟動專案用
          value: dev_k8s
        - name: HOSTNAME                     #專案資原始檔中的eureka用
          value: request
        image: hub.yun.com.cn/sunhui227/request:dev  #映象
        imagePullPolicy: Always                      #每次都去遠端拉取
        name: request
        ports:
        - containerPort: 9090                        #專案暴漏出來的埠
          protocol: TCP


內容不斷更新中~~

相關推薦

Kubernetes 常用命令應用例項

一. 常用命令 Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。 Kub

iptables常用命令應用

二、命令各選項及解釋  COMMAND:  規則管理類   -A,(append的意思)   -I # (I表示insert的意思,#表示數字,以下相同)   -D # (delete的意思)   -R # (replace的意思)  鏈管理類:   -F (flush)(清空鏈)   -N (new)(新建

[Hadoop 2] 常用 Java API 應用例項

1 開啟 Eclipse,開始建立專案,選擇頂部選單 File->New->Java Project,建立名為 HadoopTest 專案,如下圖: 2 為專案載入所需要的 jar 包。 如何獲取 jar 包: Java API 所在的 jar 包都在已經

tasklist taskkill命令使用方法應用例項講解

                    在Windows XP中新增了兩個命令列工具“tasklist、taskkill”

Redis資料庫的學習與實踐—Redis的常用命令高階應用

釋出訂閱(pub/sub)是一種訊息通訊模式,主要的目的是接觸訊息釋出者和訊息訂閱者之間的耦合,Redis作為一個pub/sub的server,在訂閱者和釋出者之間起到了訊息路由的功能。訂閱者可以通過subscribe和psubscribe命令向redis server訂閱自己感興趣的訊息型別,redis將

redis常用命令高階應用之鍵值的相關命令

keys 返回滿足給定pattern的所有key 例如:返回所有鍵 127.0.0.1:6379> keys * 1) "list3" 2) "myset5" 3) "list6" 4) "myset2" 5) "sset2" 6)

Linux常用命令操作(第二彈)

linux home .gz 紅旗 關閉 linu tty 歸檔文件 過程 Ctrl l清屏 Ctrl d關閉終端 Ctrl Alt T打開終端 pwd 查看當前的目錄 Shift Ctrl C復制 Shift Ctrl V粘貼 Shift Ctrl N打開新的終端 F1

kubernetes常用命令

-s ack 狀態 server list -h source doc ast kubectl source <(kubectl completion bash) #命令補全 啟動-狀態 master systemctl daemon-reload systemc

yum常用命令網絡yum源

yum使用、命令工具 源碼安裝 yum 語法yum [options] [command] [package ...]options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。command:要進行的操作。package操作的對象。yu

思科交換機-常用命令配置

load ner line 登陸 一個 中繼 test swich 查看命令 switch> 用戶模式 1:進入特權模式enable switch> enable switch# 2:進入全局配置模式configure terminal switch>

docker run常用命令 解決 ubuntu鏡像無法識別 ifconfig ping 命令

docker ubuntu ipconfig pingdocker run -it docker 前端啟動 container容器 -d 後端啟動 container容器 -p 固定端口映射

Linux常用命令配置--簡單

eve -a host 設置ip strong find ini -m ble 1,文件查找: 查找jdk路徑:which jdk;查詢Java_home變量值:echo $JAVA_HOME 從根目錄開始查找所有擴展名為.log的文本文件,並找出包含”ERROR”的行 f

ubuntu工作常用命令需要留意的點匯總

新版本 跳過 直接 任務 rep 這一 部分 狀態 絕對路徑 這段時間比較忙,先是去北京出差一段時間,然後是福建項目部署上線,領導不願意招人,只苦了我們下面的人,今天得空,簡單匯總下ubuntu服務器部署的常用命令,及日常學習使用感受; 0.書籍買的《循序漸進Linux第2

Ubuntu常用命令常見問題

循環 ubun 狀態 命令 關閉 spa 文件添加 修改 通過 常用命令 1,應用程序陷入死循環或某種無法終止的狀態,如何強制關閉 ps -ef //全格式顯示當前所有進程 sudo kill PID//PID修改為需要結束的應用程序的PID 常見問題 1,如何安

linux常用命令文件管理系統

世界 類型 管理系統 文件和目錄 追加 長度 家目錄 echo 組織 一、Linux的發展歷程1、1946年誕生的世界第一臺計算機,是在第二次世界大戰期間。2、Linux內核版本是由三部分組成的,分別是主版本號,次版本號,小版本號。次版本號為偶數是穩定版本,奇數為測試版本。

Nmap常用命令思維圖

字符 多個 .com work src 安全 隨機 nmap掃描 種類型 NMap,也就是Network Mapper,是Linux下的網絡掃描和嗅探工具包(win下也能用)。1.Nmap工具默認掃描前1000個端口,即1-1000。如果用戶想掃描1000以上端口的話,需要

Hive常用命令設置

hiveHive常用命令及設置alter table ad_app.app_accounting_daily add columns (return_cost bigint) cascade;數據傾斜set hive.map.aggr=true;set hive.groupby.skewindata=true

匯編命令OD常用命令斷點設置

編輯 中斷函數 含義 imu 彈出 his 長度 count 是我 匯編32位CPU所含有的寄存器有:4個數據寄存器(EAX、EBX、ECX和EDX)對低16位數據的存取,不會影響高16位的數據。這些低16位寄存器分別命名為:AX、BX、CX和DX,它和先前的CPU中的寄存

Linux常用命令選項

Linux運維常用命令及選項基礎命令終端相關文件管理用戶和組管理權限管理文本處理工具Linux常用命令及選項

git提交項目常用命令git分支的用法

-m git分支 平臺 註釋 pull tro req 刪除遠程分支 常用 1.第一步首先從git托管平臺clone項目,我這裏就使用idea為例: 填寫git的url與存放本地目錄名及項目名 2.如果你對項目進行了一些修改,就可以執行git命令,