版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Docker容器技術(shù)與應(yīng)用湖北輕工職業(yè)技術(shù)學院Kubernetes概述及基本操作項目6項目背景隨著容器技術(shù)的迅速發(fā)展,企業(yè)對容器化應(yīng)用的管理和部署需求日益增長。傳統(tǒng)方式難以滿足應(yīng)用大規(guī)模、高效運行的要求。Kubernetes應(yīng)運而生,作為Google開源的容器編排引擎,能有效解決這些問題。Kubernetes概述及基本操作項目6
Kubernetes是Google開源的容器編排引擎,它提供了自動化部署、大規(guī)模可伸縮、應(yīng)用容器化管理等功能。本項目通過兩個任務(wù)介紹了Kubernetes的發(fā)展及其基本操作,并以RHEL8.1操作系統(tǒng)為基礎(chǔ),介紹了使用kubeadm安裝Kubernetes集群的方法和kubectl命令的使用方法。項目六:Kubernetes概述及基本操作目錄任務(wù)6.1、Kubernetes概述任務(wù)6.2、Kubernetes的基本操作Kubernetes概述回顧1、Kubernetes的概念及架構(gòu)。2、Kubernetes集群的安裝方法。知識目標理解kubectl命令的使用方法。能力目標掌握kubectl的運維命令。素質(zhì)目標鍛煉學生溝通交流的能力。培養(yǎng)自主鉆研的工匠精神。工程師小王在編寫完Kubernetes安裝手冊后,為利于公司相關(guān)技術(shù)人員對Kubernetes集群管理內(nèi)容的了解,編寫了kubectl命令手冊,以方便公司相關(guān)技術(shù)人員學習。任務(wù)6.2Kubernetes的基本操作任務(wù)要求6.2kubectl概述Kubectl是Kubernetes命令行工具,它是Kubernetes的主要管理工具之一。通過kubectl,用戶可以與Kubernetes集群進行交互,管理容器、Pod、服務(wù)、部署等各種資源對象。Kubectl的主要功能包括以下幾個方面:部署應(yīng)用:kubectl可以用來創(chuàng)建、更新和刪除部署、副本集、DaemonSet等應(yīng)用資源。管理Pod:kubectl可以用來創(chuàng)建、更新和刪除Pod,以及查看Pod的狀態(tài)、日志和運行情況等。管理服務(wù):kubectl可以用來創(chuàng)建、更新和刪除服務(wù)資源,并查看服務(wù)的狀態(tài)和IP地址等。管理配置:kubectl可以用來管理Kubernetes中的配置信息,包括ConfigMap和Secret等。擴容與縮容:kubectl可以用來擴容和縮容部署和副本集等資源對象。訪問KubernetesAPI:kubectl可以用來訪問KubernetesAPI,以便于查詢和修改Kubernetes資源對象。調(diào)試應(yīng)用:kubectl可以用來調(diào)試應(yīng)用程序,包括查看Pod日志、執(zhí)行進入容器等操作??傊?,kubectl是Kubernetes中最常用的命令行工具之一,它提供了豐富的功能,使得用戶可以方便地管理和操作Kubernetes集群。6.2任務(wù)6.2Kubernetes的基本操作相關(guān)知識任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2kubectl概述kubectl是Kubernetes集群的命令行工具。使用kubectl能夠?qū)罕旧磉M行管理,并能夠在集群上進行容器化應(yīng)用的安裝部署。kubectl命令格式如下。kubectl[command][TYPE][NAME][flags]其各參數(shù)說明如下。(1)command:指定要對資源執(zhí)行的操作的子命令。(2)TYPE:指定要操作的資源對象,資源對象區(qū)分英文字母大小寫。(3)NAME:指定要操作資源的名稱,名稱區(qū)分英文字母大小寫。如果省略名稱,則會顯示所有的資源。(4)flags:指定可選的參數(shù)任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2kubectl概述flag參數(shù)的選項及作用如表6-1所示。任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2kubectl概述flag參數(shù)的選項及作用如表6-1所示。任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2kubectl概述kubectl命令支持命令自動補全功能。在Linux系統(tǒng)下,可執(zhí)行以下操作添加kubectl命令自動補全功能。#yum-yinstallbash-completion#echo"source<(kubectlcompletionbash)">>~/.bashrc任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令1.kubectlapply命令kubectlapply命令主要利用相關(guān)的配置文件對集群對象執(zhí)行增、改操作。其命令格式如下。kubectlapply-fFILENAME[options]-f參數(shù)后添加YAML或JSON格式的資源配置文件。如果配置文件中的資源在集群中不存在,則創(chuàng)建這個資源;如果存在,則根據(jù)配置對資源字段進行更新。例如,利用deployment-nginx.yaml配置文件創(chuàng)建資源的代碼如下。#kubectlapply-fdeployment-nginx.yaml任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令2.kubectlcreate命令kubectlcreate命令主要根據(jù)配置文件或輸入的代碼創(chuàng)建集群的資源。其命令格式如下。kubectlcreate-fFILENAME[flags]例如,創(chuàng)建各類資源的示例如下。#kubectlcreate-f./my-manifest.yaml //創(chuàng)建資源#kubectlcreate-f./my1.yaml-f./my2.yaml //使用多個文件創(chuàng)建資源#kubectlcreate-f./dir //使用目錄中的所有清單文件創(chuàng)建資源也可以直接使用子命令[namespace/secret/configmap/serviceaccount]等創(chuàng)建相應(yīng)的資源。#kubectlcreatedeploymentmy-dep--image=busybox//創(chuàng)建一個deployment任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令kubectlapply命令和kubectlcreate命令的區(qū)別1.設(shè)計理念kubectlcreate屬于
命令式(Imperative)管理:直接告訴Kubernetes做什么(例如:“創(chuàng)建一個資源”)。適用于一次性操作,如臨時創(chuàng)建資源,不關(guān)注后續(xù)變更管理。kubectlapply屬于
聲明式(Declarative)管理:告訴Kubernetes期望的最終狀態(tài)是什么(例如:“確保資源按這個YAML文件定義的狀態(tài)存在”)。適用于長期維護資源,支持持續(xù)更新和狀態(tài)合并。任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令kubectlapply命令和kubectlcreate命令的區(qū)別行為kubectlcreatekubectlapply資源存在時的操作報錯(資源已存在,無法重復創(chuàng)建)自動合并變更(更新現(xiàn)有資源)輸入依賴必須指定文件(如
-ffile.yaml)必須指定文件(如
-ffile.yaml)底層機制直接調(diào)用KubernetesAPI的
Create
操作調(diào)用
Apply
操作(基于差異合并的PATCH)版本控制無版本記錄通過注解(last-applied-configuration)記錄配置歷史任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令kubectlapply命令和kubectlcreate命令的區(qū)別如何選擇?場景推薦命令臨時創(chuàng)建資源,無需后續(xù)更新kubectlcreate長期維護資源,需持續(xù)更新kubectlapply更新已被其他方式修改過的資源kubectlapply--force(謹慎使用)完全覆蓋現(xiàn)有資源配置(非合并)kubectlreplace-ffile.yaml任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令3.kubectldelete命令kubectldelete命令可用于刪除對象。其命令格式如下。kubectldelete(-fFILENAME\|TYPE[NAME\|/NAME\|-llabel\|–all])[flags]例如,刪除各類對象的示例如下。#kubectldelete-fxxx.yaml //刪除一個配置文件對應(yīng)的資源對象#kubectldeletepod,servicebazfoo //刪除名稱為baz或foo的Pod和Service#kubectldeletepods,services-lname=myLabel //-l參數(shù)可以刪除包含指定Label的資源對象#kubectldeletepodfoo--grace-period=0--force //強制刪除一個Pod任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令4.kubectlreplace命令kubectlreplace命令用于對已有的資源進行更新、替換操作。其命令格式如下。kubectlreplace-fFILENAMEkubectlreplace命令可更新副本數(shù)量、修改Label、更改image版本等,但名稱不能更新。如果更新Label,則原有標簽的Pod將會與更新Label后的rc斷開連接,并會創(chuàng)建指定副本數(shù)的新Pod,但是默認不會刪除原有的Pod。#kubectlreplace-f./pod.json//使用pod.json中的數(shù)據(jù)替換Pod#kubectlreplace--force-f./pod.json //強制替換、刪除原有資源,創(chuàng)建新資源任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令5.kubectlpatch命令kubectlpatch命令用于在容器運行時對容器屬性進行修改。其命令格式如下。kubectlpatch(-fFILENAME\|TYPENAME\|TYPE/NAME)–patchPATCH[flags]例如,修改容器屬性的示例如下。#kubectlpatchnodek8s-node-1-p'{"spec":{"unschedulable":true}}' //使用patch更新Node#kubectlpatch-fnode.json-p'{"spec":{"unschedulable":true}}' //使用patch更新“node.json”文件中指定類型和名稱的節(jié)點#kubectlpatchpodrc-nginx-2-kpiqt-p'{"metadata":{"labels":{"app":"nginx-3"}}}' //使用patch將Pod的Label修改為app=nginx-3任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令6.kubectlget命令kubectlget命令用于獲取并列出一個或多個資源的信息。其命令格式如下。kubectlget(-fFILENAME\|TYPE[NAME\|/NAME\|-llabel])[–watch][–sort-by=FIELD][[-o\|–output]=OUTPUT_FORMAT][flags]例如,列出各類資源信息的示例如下。#kubectlgetall //列出所有資源對象#kubectlgetservices //列出所有命名空間中的所有服務(wù)#kubectlgetrc,services //列出所有命名空間中的所有Replication和Service信息#kubectlgetpods--all-namespaces //列出所有命名空間中的所有Pod信息任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令6.kubectlget命令例如,列出各類資源信息的示例如下。#kubectlgetpods-owide //列出所有Pod并顯示詳細信息#kubectlgetdeploymentmy-deployment //列出指定名稱的Deployment的信息#kubectlget-ojsonpodweb-pod-13je7 //以JSON格式輸出一個Pod信息#kubectlget-fpod.yaml-ojson //輸出pod.yaml配置文件中指定資源對象和名稱的Pod信息,并以JSON格式進行輸出任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令7.kubectldescribe命令kubectldescribe命令用于獲取資源的相關(guān)信息。其命令格式如下。kubectldescribe(-fFILENAME\|TYPE[NAME_PREFIX\|/NAME\|-llabel])[flags]例如,獲取資源相關(guān)信息的示例如下。#kubectldescribenodesmy-node //查看節(jié)點my-node的詳細信息#kubectldescribepodsmy-pod //查看Podmy-pod的詳細信息任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令8.kubectllogs命令kubectllogs命令用于查看日志信息。其命令格式如下。kubectllogs[-f][-p](POD|TYPE/NAME)[-cCONTAINER][options]例如,輸出日志信息的示例如下。#kubectllogsmy-pod //輸出單容器Podmy-pod的日志到標準輸出控制臺上#kubectllogsnginx-78f5d695bd-czm8z-cnginx//輸出多容器Pod中的某個nginx容器的日志任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令8.kubectllogs命令#kubectllogs-lapp=nginx //輸出所有包含app-nginx標簽的Pod日志#kubectllogs-fmy-pod //加上-f參數(shù)表示跟蹤日志,類似于tail-f#kubectllogsmy-pod-p //輸出該Pod的上一個退出容器的實例日志,在Pod容器異常退出時很有用#kubectllogsmy-pod--since-time=2018-11-01T15:00:00Z //指定時間戳輸出日志任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令9.kubectlscale命令kubectlscale命令用于設(shè)置副本的數(shù)量。其命令格式如下。kubectlscale(-fFILENAME\|TYPENAME\|TYPE/NAME)–replicas=COUNT[–resource-version=version][–current-replicas=count][flags]例如,設(shè)置資源副本的示例如下。#kubectlscale--replicas=4rs/foo //將foo中Pod副本的數(shù)量設(shè)置為4#kubectlscale--replicas=3-ffoo.yaml 任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令9.kubectlscale命令
//將由foo.yaml配置文件中指定的資源對象和名稱標識的Pod資源副本數(shù)量設(shè)置為3#kubectlscale--current-replicas=2--replicas=3deployment/mysql //如果當前副本數(shù)為2,則將其擴展至3#kubectlscale--replicas=5rc/foorc/barrc/baz //設(shè)置多個RC中Pod副本的數(shù)量任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令10.kubectlrolling-update命令
kubectlrolling-update命令用于滾動更新,即在不中斷業(yè)務(wù)的情況下更新Pod。其命令格式如下。kubectlrolling-updateOLD_CONTROLLER_NAME([NEW_CONTROLLER_NAME]–image=NEW_CONTAINER_IMAGE\|-fNEW_CONTROLLER_SPEC)[flags]說明:對于已經(jīng)部署并且正在運行的業(yè)務(wù),rolling-update提供了不中斷業(yè)務(wù)的更新方式。rolling-update每次啟動一個新的Pod,等新Pod完全啟動后再刪除一個舊的Pod,重復此過程,直到替換掉所有舊的Pod。rolling-update需要確保新的Pod有不同的名稱、版本和標簽,否則會報錯。任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令10.kubectlrolling-update命令
#kubectlrolling-updatefrontend-v1frontend-v2--image=image:v2在滾動升級的過程中,如果發(fā)生了失敗或者配置錯誤,則可隨時執(zhí)行回滾操作。#kubectlrolling-updatefrontend-v1frontend-v2–rollback任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令11.其他命令
kubectlexec命令類似于Docker的exec命令。kubectlrun命令類似于Docker的run命令。kubectlcp命令用于Pod和外部文件的交換。kubectlcluster-info命令可查看集群信息。kubectlcordon、kubectluncordon、kubectldrain命令可用于節(jié)點管理。任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令11.其他命令
例如,kubectl其他命令的使用示例如下。#kubectlexecmy-pod--ls/ //在已存在的容器中執(zhí)行命令(在只有一個容器的情況下)#kubectlexecmy-pod-cmy-container--ls/ //在已存在的容器中執(zhí)行命令(在Pod中有多個容器的情況下)#kubectlrun-i--ttybusybox--image=busybox--sh任務(wù)6.2Kubernetes的基本操作相關(guān)知識6.2Kubernetes常用命令11.其他命令
//以交互式Shell的方式運行Pod#ubectlcp/tmp/foo_dir<some-pod>:/tmp/bar_dir //復制宿主機本地文件夾到Pod中#kubectlcp<some-namespace>/<some-pod>:/tmp/foo/tmp/bar //將Pod中的文件復制到宿主機本地目錄中#kubectlcordonmy-node //標記my-node不可調(diào)度#kubectldrainmy-node //清空my-node以待維護#kubectluncordonmy-node //標記my-node可調(diào)度實訓目的(1)掌握Kubernet集群下部署nginx的方法。(2)掌握Kubectl基本命令的使用。6.2任務(wù)6.2Kubernetes的基本操作項目實訓(在Kubernetes下部署nginx服務(wù))實訓步驟1.任務(wù)環(huán)境準備本任務(wù)選用兩臺部署在VMwareWorkstation16中的虛擬機,虛擬機均已預先安裝Redhat8.1運行環(huán)境。各虛擬主機基本配置信息表如表6-1所示。表6-1各虛擬主機基本配置信息表6.2任務(wù)6.2Kubernetes的基本操作項目實訓主機名IP地址虛擬機CPU/內(nèi)存節(jié)點角色k8s-master192.168.100.101/242vcpus/8GB管理節(jié)點
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 過敏反應(yīng)的藥物治療
- 員工討論會課件
- 老年人護理與老年護理學
- 護理技能:靜脈輸液并發(fā)癥處理
- 急腹癥護理案例分析視頻
- 肝癌護理中的健康教育
- 員工HSE培訓課件
- 吸氧課件講解稿
- 2026屆八省聯(lián)考(T8聯(lián)考)2026屆高三年級12月檢測訓練生物試卷(含答案詳解)含湖北湖南山西河北卷
- 美術(shù)學院畢業(yè)生就業(yè)方向
- 在線網(wǎng)課知慧《形勢與政策(吉林大學)》單元測試考核答案
- 業(yè)主授權(quán)租戶安裝充電樁委托書
- 化工建設(shè)綜合項目審批作業(yè)流程圖
- 親子鑒定的報告單圖片
- 遼寧軌道交通職業(yè)學院單招《職業(yè)技能測試》參考試題庫(含答案)
- 新概念二單詞表新版,Excel 版
- 2023年陜西西安經(jīng)濟技術(shù)開發(fā)區(qū)招聘120人(共500題含答案解析)筆試必備資料歷年高頻考點試題摘選
- 第八講 發(fā)展全過程人民民主PPT習概論2023優(yōu)化版教學課件
- 篇12pmc窗口功能指令舉例講解
- GB/T 7332-2011電子設(shè)備用固定電容器第2部分:分規(guī)范金屬化聚乙烯對苯二甲酸酯膜介質(zhì)直流固定電容器
- GB/T 38658-20203.6 kV~40.5 kV交流金屬封閉開關(guān)設(shè)備和控制設(shè)備型式試驗有效性的延伸導則
評論
0/150
提交評論