版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
^Kubernetes集群实战(微课版)》
项目实训参考指导
项目1从Docker转向Kubernetes
实训1安装DockerEngine并进行镜像和容器的基本操作
实训目的
(I)了解Docker版本和安装方式。
(2)掌握DockerEngine的安装方法。
(3)掌握镜像和容器的基本操作方法。
实训内容
建议参照任务1.1.1道过Docker的软件仓库安装Docker;参照任务1.2.1操作镜像和容
器。
(1)准备Docker安装环境。
操作系统选择CentOSStream8或CenlOSStream9;
更改主机名;
修改网络连接配置;
禁用防火墙和SELinux;
更改时区。
(2)设置Docker软件仓库。
yuminstall-yyum-utils
yum-config-manager-add-repo\
/docker-ce/linux/centos/docker-ce.repo
(3)安装DockerEngine软件包。
如果运行的是CentOSStream8,则需要先卸载默认的容器引擎Podman:
yumerasepodmanbuilda
如果运行的是CentOSStream9,则无需此操作〃
建议安装指定版本的DockerEngine:
yuminstalldocker-ce-20.10.21docker-ce-cli-20.10.21containerd.io-1.6.10
也可以尝试安装最新版本:
yuminstalldocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-plugin
目前最新版本涉及DockerCompose的安装。
(4)启动Docker并运行hello-world镜像进行测试。
systemctlstartdocker
dockerrunhello-world
因国内网络环境限制,实际应用中我们会遇到无法拉取Docker镜像的情况。最简单的
解决方案是使用镜像加速器。推荐使用以下镜像加速器:
•Daocloud镜像加速器:https://docker.rn.daocloud.io
•阿里云镜像加速器:hitps:〃XXXXX.mirror.aliyuncs.com
•华为云镜像加速器:XXXXX.mirror.swr.myhuaw
阿里云和华为云需要登录账号,获取特定的镜像加速器地址。
•需要注意的是,之前一些常用的镜像加速器已变得不好用,列举如下:
•Docker官方镜像(中国区)镜像加速器:
•腾讯云镜像加速器:https:〃
•中国科学技术大学:h(tps://docker.m
•网易云镜像加速器:hitp:〃hub-mirror.c.163.com
•南京大学镜像加速器:https:〃
(5)执行拉取镜像、显示镜像列表和查看镜像构建历史信息的操作。
dockerpullubuntu:18.04
dockerimages
dockerhistoryubuntu:18.04
(6)基于hltpd镜像以后台方式运行Apache容器并对外开放80端口.
dockerrun-d-p80:80-nametestwebhttpd
(7)使用dockerexec命令进入Apache容器查看当前目录。
dockerexec-ittestweb/bn/bash
(8)停止并删除Apache容器。
dockerstoptestweb
dockerrmtestweb
实训2对Node.jsWeb应用程序进行容器化
实训目的
(D了解应用程序容器化的基本步骤。
(2)学会应用程序容器化的基本方法。
实训内容
直接从源码托管平台克隆一个公告板应用程序项目node-bulletin-board使用。
(1)创建项目目录。
mkdirbulletin&&cdbulletin
(2)使用Gil工具将node-bulletin-board库克隆到本地。
若实验环境中没有安装Git客户端,先执行进行安装:
yuminstall-ygit
从GilHub网站获取该项目。
(root@docker_devbulletir]#gitclone/docker-training/node-bulletin-board
正克隆到'node-bulletin-board'…
remote:Enumeratingobjects:213,done.
remote:Countingobjects:100%(23/23),done.
remote:Compressingobjects:100%(19/19),done.
remote:Total213(delta8),reused17(delta4),pack-reused190
接收对象中:100%(213/213),197.64KiB|602.00KiB/s,完成.
处理delta100%(90/90),完成.
(3)查看克隆到本地的应用程序和Dockerfileo
[root@docker_devbulletir]#Is
node-bulletin-board
[root@docker_devbulletir]#cdnode-bulletin-board
[root@docker_devnode-bulletin-board)#Is
bulletin-board-appLICENSE
[root@docker_devnode-bulletin-board]#tree
|—bulletin-board-app
II-app.js
|—backend
III-api.js
|—events.js
||1-index.js
||—Dockerfile
||一fonts
1-geomanist
1—hin(ed-Geomanist-Book.woff2
|—index.html
||—LICENSE
|—package.json
|——readme.md
||—server.js
1-site.css
1-LICENSE
[root@docker_devnode-bulletin-board]#cdbulletin-board-app
[rnot@dnckfir_dftvhiillfitir-board-app]#catDcckarfila
FROMnode:6.11.5
WORKDIR/usr/src/app
COPYpackage.json.
RUNnpminstall
COPY..
CMD["opm","start"]
该项目从现有的nodc:6.11.5镜像开始构建,但是网络环境限制,直接拉取官方node镜
像比较困难,注意使用镜像加速器解决镜像无法拉取的问题。
(4)基于Dockerfile构建镜像。
[root@docker_devbulletir-board-app]#dockerbuild-tbulletinboard:1.0.
SendingbuildcontexttoDockerdaemon45.57kB
Step1/6:FROMnode:6.11.5
6.11.5:Pullingfromlibrar)7node
85b1f47fba49:Pullcomplete
ba6bd283713a:Pullcomplete
817c8cd48a09:Pullcomplete
47cc0ed96dc3:Pullcomplete
8888adcbd08b:Pullcomplete
6f2de60646b9:Pullcompete
1666693bf996:Pullcompete
2fe410df7942:Pullcomplete
Digest:sha256:fe109b92edafd9821fbc1c80fd7587a1b4e1ff76fec3af675869e23e50bbf45b
Status:Downloadednewerimagefornode:6.11.5
—>852391892b9f
Step2/6:WORKDIR/usr.'src/app
™>Runningin01963b7cf7f0
Removingintermediatecontainer01963b7cf7f0
-->72cf46a04400
Step3/6:COPYpackage.json.
—>a6d3d413a859
Step4/6:RUNnpminstall
一>Runningin3350ea014600
npmWARNdeprecatedq@1.5.1:YouorsomeoneyoudependonisusingQ,theJavaScriptPromise
librarythatgaveJavaScriptdevelopersstrongfeelingsaboutpromises.Theycanalmostcertainlymigrateto
thenativeJavaScriptpromisenow.Thankyouliterallyeveryoneforjoiningmeinthisbetagainsttheodds.Be
excellenttoeachother.
npmWARNdeprecated
npmWARNdeprecated(ForaCapTPwithnativepromises,see@endo/eventual-sencand
@endo/captp)
npmWARNdeprecatedglob@5.0.15:Globversionspriortov9arenolongersupported
npmWARNdeprecatedinflight@1.0.6:Thismoduleisnotsupported,andleaksmemory.Donotuseit.
CheckoutIru-cacheifyouwantagoodandtestedwaytocoalesceasyncrequestsbyakeyvalue,whichis
muchmorecomprehensiveandpowerful.
>ejs@2.7.4postinstall/usr/src/app/node_modules/ejs
>node./postinstall.js
vue-event-bulletin@1.0.0/usr/src/app
+-body-parser@1.20.2
|+-bytes@3.1.2
|+-content-type@1.0.5
|+-debug@2.6.9
IT-ms@2.0.0
|+-depd@2.0.0
I+-destroy@1.2.0
I+-http-errors@2.0.0
11+-inherits@2.0.4
|r-toidentifier@1.0.1
|+-iconv-lite@0.4.24
11safer-buffer@2.1.2
|+-on-finished@2.4.1
11ee-flrst@l.1.1
|+-qs@6.11.0
11side-channel@1.0.6
||+-call-bind@1.0.7
11|+--es-define-property@1.0.0
11|+-function-bind@1.1.2
11|set-function-length@1.2.2
11|+-define-data-property@1.1.4
11|+—gopd@1.0.1
11|has-property-descriptors@1.0.2
11+-es-errors@1.3.0
11+-get-intrinsic@1.24
11|+-has-proto@1.0.3
11|+-has-symbols@1.0.3
11|-hasown@2.0.2
11object-inspect@113.2
|+-raw-body@2.5.2
|+-type-is@1.6.18
11+-media-typer@0.3.0
||mime-types@2.1.35
11mime-db@1.52.0
|unpipe@1.0.0
+-bootstrap@3.4.1
+—ejs@2.7.4
+-errorhandler@1.5.1
+-accepts®.3.8
Inegotiator@0.6.3
escape-html@1.0.3
+-express@4.19.2
+-array-flatten@1.1.1
+-content-disposition@0.5.4
+-cookie@0.6.0
+-cookie-signature@1.0.6
+-encodeurl@1.0.2
+-etag@1.8.1
+-finalhandler@1.2.0
+-fresh@0.5.2
+-merge-descriptors©".0.1
+-methods@1.1.2
+-parseurl@1.3.3
+-path-to-regexp@0.17
+-proxy-addr@2.0.7
I+-forwarded@0.2.0
|-ipaddr.js@1.9.1
+-range-parser@1.2.1
+-sa能-buffer@5.2.1
+-send@0.18.0
|+-mlme@l.6.0
IT-ms@2.1.3
|+-serve-static@1.15.0
|+--setprototypeof@1.2.0
|+--statuses@2.0.1
|+-utils-merge@1.0.1
|vary@1.1.2
+-method-override@2.3.10
+-morgan@1.10.0
|+-basic-auth@2.0.1
11safe-buffer@5.1.2
|+--on-finished@2.3.0
|,-on-headers@1.0.2
+-vue@1.0.28
|envify@3.4.1
|+-jstransform@11.0.3
||+-base62@1.2.8
||+-commoner@0.10.8
|11+-commander@220.3
|11+-detective@4.7.1
|111+-acorn@5.7.4
|HI'-defined@1.0.1
|11+-glob@5.0.15
|111+-inflight@1.0.6
||||r-wrappy@1.0.2
|111+-minimatch@3.1.2
IIIIT-brace-expansion@1.1.11
IIHI+-balanced-natch@1.0.2
I||||concat-map@0.0.1
|111+-once@1.4.0
|III'—path-is-absolute@1.0.1
|11+-graceful-fs@4.211
|11+-mkdirp@0.5.6
|III,-minimist@1.2.8
|11+-private@0.1.8
I||+-q@1.5.1
||r-recast@0.11.23
|11+-ast-types@0.9.6
|11+-esprima@3.1.3
|11'-source-map@0.5.7
||+--esprima-fb@15001.1.0-dev-harmony-fb
I|+--object-assign@2.1.1
I|*-source-map@0.4.4
||amdefine@1.01
|,一through@2.3.8
'-vue-resource@0.1.17
npmWARNvue-event-builetln@l.0.0Norepositoryfield.
Removingintermediatecontainer3350ea014600
—>73d897307a01
Step5/6:COPY..
一4f8f8611a51cl
Step6/6:CMD["npm","start"]
—>Runningin499596b33106
Removingintermediatecontainer499596b83106
—>8a25ef93958a
Successfullybuilt8a25efS3958a
Successfullytaggedbulletinboard:1.0
(5)基于构建的镜像启动容器。
[root@docker_devbulletin-board-app]#dockerrun-publish8000:8080-detach-namebulletinboard
bulletinboard:1.0
4bf78efdd73bba892af0df5756a4a9d114c415be9c2625176cfadb17540bb2b4
(6)在浏览器中访问localhosi:8000实际测试公告板应用程序。
BulletinBoard-MozillaFirefox-ox
BulletinBoardX+
<-)->GQ©©localhost8000…0©lll\CD=
WelcometotheBulletinBoard
■DockerWorkshop
■2017-1121
LinuxinginLonodon
Deieie
■IWinOps#17
■2017-11-21
WinOpsLondon
Delete
,MlDockerLondon
S2017-11-13
(7)测试完毕后,停止并删除该容器。
[root@docker_devbulletir-board-app]#dockerrm-forcebulle:inboard
bulletinboard
项目2部署Kubernetes集群
实训1使用kubeadm工具部署三节点Kubernetes集群
实训目的
(1)了解Kubernetes集群的组成。
(2)了解Kubernetes集群的部署方式。
(3)学会使用kubeadm工具快速部署Kubernetes集群。
实训内容
建议参照任务2.1.1至任务2.1.6完成本实现任务。
(1)简单规划要部署的Kubernetes集群。
(2)准备Kubernetes集群安装环境(3个节点主机卜
安装容器运行时containerd时要注意修改配置以解决镜像下载问题。在Kubernetes中,默认情
况下,Pod会从官方DockerHub拉取Docker镜像,即docker.io镜像仓库。默认情况下containerd
配置文件/etc/containerd/corfig.toml中相关设置如下:
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins.^io.contcinerd.grpc.vl.^'.registry.mirrors^docker.io"]
#没有任何设置,containerd将直接从DockerHub拉取镜像
考虑到国内网络限制,通常设置镜像加速器来解决拉取Docker镜像的问题。本教材编写时给出
的一些镜像加速器自从2024年6月开始不可用。
(plugins.',io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.contcinerd.grpc.v1.cri".registry.mirrors.Mdocker.io"]
endpoint=("","",
"https:〃","http://hub-mirror.c.163.com]
其中后面3个当前皆不可用:
腾讯云
中国区镜像
http://hub-mirror.c.163.com"网易
而Daocloud镜像加速器:https://docker.rn.daocloud.io目前可用,建议将其加入镜像加速器列
表,该设置改为:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.conteinerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint=f'https7/docker.m.daocloud.io",""]
(3)部署Kubernetes集群节点。
(4)安装Pod网络插件。
(5)通过部署Nginx来测试Kubernetes集群的使用。
(6)练习crictl命令的使用。
实训2安装和使用KubernetesDashboard
实训目的
(1)了解KubernetesDashboard的基本功能。
(2)学会使用KubernetesDashboard对集群进行可视化管理操作。
实训内容
建议参照任务2.2.1和任务2.2.2完成本实现任务。
(1)准备Kubernetes实验环境。
(2)安装KubernetesDashboardo
(3)获取dashboard-admin服务账户的令牌并登录Dashboard。
(4)熟悉Dashboard的基本操作。
(5)尝试使用Dashboard部署Nginx©
(6)删除所部署的应用程序。
项目3熟悉Kubernetes基本操作
实训1操作指定名称空间中对象的标签
实训目的
(1)了解Kubernetes名称空间和对象的标签。
(2)学会Kubernetes名称空间的基本用法。
(3)学会Kubernetes对象的基本操作。
实训内容
注意本实训的对象操作都要指定名称空间,在控制平面主机上执行操作。
(1)准备Kubernetes集群实验环境。
(2)创建一个实验用的名称空间。
[root@master01kubectlcreatenamespacemyns
namespace/mynscreated
(3)在该名称空间中创建一个Pod对象并为其添加标签app=testo
(root@master01-]#kubectlrunmynginx-image=nginx-Iapp=test-nmyns
pod/mynginxcreated
[root@master01-]#kubectlgetpod-show-labels-nmyns
NAMEREADYSTATUSRESTARTSAGELABELS
mynginx1/1Running02m34sapp=test
(4)将该对象的标签app=test修改为app=dev0
[root@master01kubectllabelpodmynginxapp=dev-overwrite
Errorfromserver(NotFound):pods"mynginx"notfound
(root@master01T#kubectllabelpodmynginxapp=dev--overwrite-nmyns
pod/mynginxlabeled
[root@master01-]#kubectlgetpod-show-labels-nmyns
NAMEREADYSTATUSRESTARTSAGELABELS
mynginx1/1Running04m19sapp=dev
(5)为该对象增加标签ver=1.5o
(root@master01-]#kubectllabelpodmynginxver=1.5-nmyns
pod/mynginxlabeled
(root@master01-]#kubectlgetpod--show-labels-nmyns
NAMEREADYSTATUSRESTARTSAGELABELS
mynginx1/1Running06m50sapp=dev,ver=1.5
(6)删除该对象名为app的标签。
[root@mastert)1-]#kubectllabelpodmynginxapp--nmyns
pod/mynginxunlabeled
[root@master01-]#kubectlgetpod-show-labels-nmyns
NAMEREADYSTATUSRESTARTSAGELABELS
mynginx1/1Running07m52sver=1.5
(7)删除该对象。
[root@mastert)1-]#kubectldeletepodmynginx-nmyns
pod"mynginx"deleted
[root@master01~]#kubectlgetpod-nmyns
Noresourcesfoundinmynsnamespace.
(8)删除该名称空间。
[root@master01-]#kubectldeletenamespacemyns
namespace"myns"deleted
实训2创建一个多容器Pod并进行测试
实训目的
(1)了解多容器Podo
(2)增加对多容器Pod的认识。
实训内容
(1)参照任务3.3.1进行操作。
(2)编写定义Pod的配置文件,其中涉及的两个容器分别运行Nginx和BusyBox,两个容器
共享卷。
(3)基于该配置文件创建Podo
(4)查看Pod及其容寄的信息,以丫AML格式输出。
(5)进入Nginx容器的Shell,使用curl命令向Nginx服务器发起请求,以验证结果。
(6)使用curl命令向Pod的IP地址发起请求,进一步验证结果。
(7)删除该Podo
项目4部署和运行应用程序
实训1使用Deployment运行Apache服务
实训目的
(1)了解Deployment的基本用法。
(2)学会使用Deployment运行和管理无状态应用程序。
实训内容
(1)准备Kubernetes集群实验环境。
(2)使用Deployment创建有3个副本的httpd服务(使用httpd镜像卜
编写Deployment配置文件(文件名httpd-deployyaml):
apiVersion:apps/v1#版本号
kind:Deployment#类型为Deployment
metadata:#元数据
name:httpd-deploy
labels:#标签
app:httpd
spec:#详细信息
replicas:3#副本数量
strategy:#策略
type:Rollingllpdate#滚动更新策略
rollingUpdate:#滚动更新设置
maxSurge:25%#更新过程中允许超出期望Pod副本数的Pod数量,用百分比或整数表示
maxUnavailable:25%#更新过程中不可用的Pod数・上限,用百分比或整数表示
selector:#选择器,指定该控制器管理哪些Pod
matchLabels:#匹配规则
app:httpd
template:#定义模板,当副本数量不足时会根据模板定义创建Pod副本
metadata:
labels;
app:httpd#Pod的标签
spec:
containers:#容器列表(本例仅定义一个容器)
-name:httpd#容器的名称
image:httpd:2.2#容器所用的镜像
ports:
-containerPort:80#容器需要暴露的端口
基于该文件创建创建Deployment:
[root@master01-]#kubectlapply-fhttpd-deploy.yaml
deployment.apps/httpd-deploycreated
查看和测试:
[root@mastert)1-]#kubectlgetdeployhttpd-deploy-owide
NAMEREADYUP-TO-DATEAVAILABLEAGECONTAINERSIMAGES
SELECTOR
httpd-deploy0/33040shttpdhttpd:2.2app=httpd
[root@master01kubectlgetdeployhttpd-deploy-owide
NAMEREADYUP-TO-DATEAVAILABLEAGECONTAINERSIMAGES
SELECTOR
httpd-deploy3/333116shttpdhttpd:2.2app=httpd
[root@master01~]#kubectlgetpods-owide
NAMEREADYSTATUSRESTARTS
AGEIPNODENOMINATEDNODEREADINESSGATES
httpd-deploy-7ffdc45d4-2>:h2c1/1Running067s
6node02<none><none>
httpd-deploy-7ffdc45d4-5zx521/1Running067s
22node02<none><none>
httpd-deploy-7ffdc45d4-vjk441/1Running067s
78node01<none><none>
[root@master01-]#curl6
<html><body><h1>ltworl(s!</h1></body></html>
(3)测试Deployment更新。
[root@master01-]#kubectlsetimagedeployment.vl.apps/httpd-deployhttpd=httpd:2.4.46
deployment.apps/httpd-deployimageupdated
(4)测试Deployment回滚。
[root@master01~]#kubectlrollouthistorydeployment/httpd-deploy
deployment.apps/httpd-deploy
REVISIONCHANGE-CAUSE
1<none>
2<none>
[root@master01-]#kubectlrolloutundodeployment/httpd-deploy
deployment.apps/httpd-deployrolledback
(5)将Deployment扩容到5个副本。
(root@master01-]#kubectlscaledeployment/httpd-deploy-replicas=5
deployment.apps/httpd-deployscaled
[root@master01-]#kubectlgetdeployhttpd-deploy-owide
NAMEREADYUP-TO-DATEAVAILABLEAGECONTAINERSIMAGES
SELECTOR
httpd-deploy5/5559m15shttpdhttpd:2.2app=httpd
(6)将Deployment缩容到2个副本。
[root@master01-]#kubectlscaledeployment/httpd-deploy-replicas=2
deployment.apps/httpd-deployscaled
[root@master01-]#kubectlgetdeployhttpd-deploy-owide
NAMEREADYUP-TO-DATEAVAILABLEAGECONTAINERSIMAGES
SELECTOR
httpd-deploy2/2229m49shttpdhttpd:2.2app=httpd
(7)删除Deploymento
[root@master01-]#kubectldelete-fhttpd-deploy.yaml
deployment.apps"httpd-deploy"deleted
详细操作请参考任务4.1中的任务实现部分。
实训2使用DaemonSet在所有工作节点上部署Nginx
实训目的
(1)了解DaemonSet的基本用法。
(2)学会使用DaemonSet部署和管理集群守护进程集。
实训内容
(1)使用DaemonSet在每个工作节点上运行Nginxo
配置文件nginx-daemonset.yaml内容如下:
apiVersion:apps/v1
kind:DaemonSet#资源类型为DaemonSet
metadata:
name:nginx-ds
labels:
k8s-app:nginx#DaemonSet资源的标筌
spec:
selector:
matchLabels:#必须指定与spec.terrplate的标签匹配的Pod选择运算符
name:nginx
template:#创建Pod副本所依据的模板
metadata:
labels:#Pod模板必须指定标签
name:nginx
spec:
tolerations:#容忍度设置,此处设置让该守护进程集在控制平面节点或主节点上运行
-key:node-role.kubernetes.io/control-plane
operator:Exists
effect:NoSchedule
-key:node-role.kubernetes.io/master
operator:Exists
effect:NoSchedule
containers:
-name:nginx
image:nginx:1.16.1#镜像
基于该文件创建DaemonSet:
[root@master01~]#kubectlcreate-fnginx-daemonset.yaml
daemonset.apps/nginx-dscreated
[root@master01-]#kubectlgetdaemonsetnginx-ds-owide
NAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLENODE
SELECTORAGECONTAINERSIMAGESSELECTOR
nginx-ds33333<none>3m43s
nginxnginx:1.16.1rame=nginx
(2)验证该DaemonSet的Pod的节点部署。
[root@mastert)1-]#kubectlgetpods-owide
NAMEREADYSTATUSRESTARTS
AGEIPNODENOMINATEDNODEREADINESSGATES
nfs-client-provisioner-bfbc644fc-zq5sw1/1Running15(123mago)62d
73nodeOl<none><none>
nginx-ds-2skg91/1Running04m19s
81nodeOl<none><none>
nginx-ds-g4l5w1/1Running04m19s
09masterOI<none><none>
(3)测试DaemonSet更新。
[root@mastert)1~]#kubectlgetds/nginx-ds-ogo-template='{{spec.updateStrategy.type}}{f\n"}}'
RollingUpdate
(root@master01-]#kubectlsetimageds/nginx-dsnginx=nginx:1.17.2
daemonset.apps/nginx-dsimageupdated
[root@master01~]#kubectlrolloutstatusds
Waitingfordaemonset"nginx-ds"rollouttofinish:1outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:1outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:1outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:2outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:2outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:2outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:2outof3newpodshavebeenupdated...
Waitingfordaemonset"nginx-ds"rollouttofinish:2of3updatedpodsareavailable...
daemonset"nginx-ds"successfullyrolledout
[root@master01-]#kubectlgetdaemonsetnginx-ds-owide
NAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLENODE
SELECTORAGECONTAINERSIMAGESSELECTOR
nginx-ds33333<none>10mnginx
nginx:1.17.2name=nginx
(4)测试DaemonSet回滚。
(root@master01kubectlrollouthistoryds/nginx-ds
daemonset.apps/nginx-ds
REVISIONCHANGE-CAUSE
1<none>
2<none>
(root@master01-]#kubectlrolloutundods/nginx-ds-to-revision=1
daemonset.apps/nginx-dsrolledback
(root@master01-]#kubectlrolloutstatusds
daemonset"nginx-ds"successfullyrolledout
[root@mastert)1kubectlgetdaemonsetnginx-ds-owide
NAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLENODE
SELECTORAGECONTAINERSIMAGESSELECTOR
nginx-ds33333<none>12mnginx
nginx:1.16.1name=nginx
(5)删除DaemonSet对象。
[root@mastert)1~]#kubectldelete-fnginx-daemonset.yaml
daemonset.apps"nginx-ds"deleted
项目5发布应用程序
实训1使用Service发布Apache服务并考察Service工作机制
实训目的
(1)了解Service的概念和基本用法。
(2)学会使用Service对外发布应用程序。
实训内容
参考任务5.1.2创建NodePort类型的Service并发布Apache服务。
(1)编写Deployment配置文件,基于该配置文件运行两个副木的Apache(使用httpd镜像卜
配置文件httpd-deploy.yaml:
apiVersion:apps/v1#版本号
kind:Deployment#类型为Deployment
metadata:#元数据
name:httpd-deploy
labels:#标签
app:httpd-deploy
spec:#详细信息
replicas:2#副本数量
selector:#选择器,指定该控制器管理哪些Pod
matchLabels:#匹配规则
app:httpd-pod
template:#定义模板,当副本数■不足时会根据模板定义创建Pod副本
metadata:
labels:
app:httpd-pod#Pod的标签
spec:
containers:#容器列表(本例仅定义一个容器)
-name:httpd#容器的名称
image:httpd:2.4.46#容器所用的镜像
ports:
-name:httpd-port
containerPort:80
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSES 217-2025水质 12种抗生素抗性基因和1种可移动遗传元件的测定 实时荧光定量PCR法
- T/UNP 89-2024建筑工程施工现场安全生产管理规范
- T/GZCBD 009-2024“贵系列”品牌 银饰类评分规范
- T/CI 959-2025储氢用钒合金
- T/CAIEC 088-2025全装修住宅施工管理与质量验收规范
- T/CSAE 380-2024汽车双倍数据速率同步动态随机存储器工作寿命试验方法
- 2025~2026学年江苏省宿迁市宿豫区多校苏教版六年级上册月考数学试卷【附答案】
- AI在阿非利卡语中的应用
- 2025-2026学年湖北省荆州市初中数学八年级期末下册点睛提升潜能激发题详细参考解析
- 2027届贵州省六盘水市第二十中学数学七年级第一学期期末考试试题含解析
- 2026军队文职招聘-军队文职技能岗-军队文职招聘(炊事员-食堂管理员)历年参考题库含答案详解
- 山东齐鲁名校教育测评2026年10月高三年级学业质量检测地理+答案
- 2.4 光的反射现象 课件(内嵌视频)2026-2027学年科学六年级上册教科版
- 2026年6月浙江高考选考技术试卷真题(含答案详解)
- 部编版五年级上册语文第七单元《习作:我最喜爱的季节》教学课件(新教材)
- 2026中国建设银行招聘考试(英语)历年参考题库含答案详解
- (2026年)清廉学校建设年度工作总结
- 2026年机电工程中级职称考试《专业基础知识》考试题库及答案
- 汽车毫米波雷达工程师考试试卷及答案
- 2026年江苏省中学生生物学奥林匹克初赛理论试题解析
- 《化工园区消防站建设指南(试行)》
评论
0/150
提交评论