K8S基础操作知识总结Word文档下载推荐.docx
《K8S基础操作知识总结Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《K8S基础操作知识总结Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。
![K8S基础操作知识总结Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/c7421ef2-d520-468b-9b43-11284b32f8d5/c7421ef2-d520-468b-9b43-11284b32f8d51.gif)
//gettheyamlfilewith--dry-runflag
kubectlrunnginx--image=nginx--restart=Never--dry-run-oyaml>
nginx-pod.yaml
//catnginx-pod.yaml
apiVersion:
v1
kind:
Pod
metadata:
creationTimestamp:
null
labels:
run:
nginx
name:
spec:
containers:
-image:
resources:
{}
dnsPolicy:
ClusterFirst
restartPolicy:
Never
status:
//createapod
kubectlcreate-fnginx-pod.yaml
8.输出刚创建的Pod的yaml文件
kubectlgetpodnginx-oyaml
9.输出刚创建的Pod的yaml文件,并且其中不包含特定于集群的信息
kubectlgetpodnginx-oyaml--export
10.获取刚刚创建的Pod的完整详细信息
kubectldescribepodnginx
11.删除刚创建的Pod
kubectldeletepodnginx
kubectldelete-fnginx-pod.yaml
12.强制删除刚创建的Pod
kubectldeletepodnginx--grace-period=0--force
13.创建版本为1.17.4的NginxPod,并将其暴露在端口80上
kubectlrunnginx--image=nginx:
1.17.4--restart=Never--port=80
14.将刚创建的容器的镜像更改为1.15-alpine,并验证该镜像是否已更新
kubectlsetimagepod/nginxnginx=nginx:
1.15-alpine
kubectldescribeponginx
//anotherwayitwillopenvieditorandchangetheversion
kubeclteditponginx
15.对于刚刚更新的Pod,将镜像版本改回1.17.1,并观察变化
1.17.1
kubectlgetponginx-w#watchit
16.在不用describe命令的情况下检查镜像版本
kubectlgetponginx-ojsonpath='
{.spec.containers[].image}{"
\n"
}'
17.创建NginxPod并在Pod上执行简单的shell
//execintothepod
kubectlexec-itnginx/bin/sh
18.获取刚刚创建的Pod的IP地址
kubectlgetponginx-owide
19.创建一个busyboxPod,在创建它时运行命令ls并检查日志
kubectlrunbusybox--image=busybox--restart=Never--ls
kubectllogsbusybox
20.如果Pod崩溃了,请检查Pod的先前日志
kubectllogsbusybox-p
21.用命令sleep3600创建一个busyboxPod
kubectlrunbusybox--image=busybox--restart=Never--/bin/sh-c"
sleep3600"
22.检查busyboxPod中NginxPod的连接
//checktheconnection
kubectlexec-itbusybox--wget-o-<
IPAddress>
23.创建一个能回显消息“Howareyou”的busyboxPod,并手动将其删除
kubectlrunbusybox--image=nginx--restart=Never-it--echo"
Howareyou"
kubectldeletepobusybox
24.创建一个能回显消息“Howareyou”的busyboxPod,并立即将其删除
//noticethe--rmflag
kubectlrunbusybox--image=nginx--restart=Never-it--rm--echo"
25.创建一个NginxPod并列出具有不同复杂度(verbosity)的Pod
kubectlrunnginx--image=nginx--restart=Never--port=80
//Listthepodwithdifferentverbosity
kubectlgetponginx--v=7
kubectlgetponginx--v=8
kubectlgetponginx--v=9
26.使用自定义列PODNAME和PODSTATUS列出NginxPod
Kubectlgetpo-o=custom-columns="
POD_NAME:
.metadata.name,POD_STATUS:
.status.containerStatuses[].state"
27.列出所有按名称排序的Pod
kubectlgetpods--sort-by=.metadata.name
28.列出所有按创建时间排序的Pod
kubectlgetpods--sort-by=.metadata.creationTimestamp
多容器Pod
了解多容器Pod的设计模式(例如
ambassador、adaptor、sidecar)。
29.用“ls;
sleep3600;
”“echoHelloWorld;
”及“echothisisthethirdcontainer;
sleep3600”三个命令创建一个包含三个busybox容器的Pod,并观察其状态
//firstcreatesinglecontainerpodwithdryrunflag
kubectlrunbusybox--image=busybox--restart=Never--dry-run-oyaml--bin/sh-c"
sleep3600;
ls"
>
multi-container.yaml
//editthepodtofollowingyamlandcreateit
kubectlcreate-fmulti-container.yaml
kubectlgetpobusybox
30.检查刚创建的每个容器的日志
kubectllogsbusybox-cbusybox1
kubectllogsbusybox-cbusybox2
kubectllogsbusybox-cbusybox3
31.检查第二个容器busybox2的先前日志(如果有)
kubectllogsbusybox-cbusybox2–previous
32.在上述容器的第三个容器busybox3中运行命令ls
kubectlexecbusybox-cbusybox3–ls
33.显示以上容器的metrics,将其放入file.log中并进行验证
kubectltoppodbusybox--containers
//puttingthemintofile
kubectltoppodbusybox--containers>
file.log
catfile.log
34.用主容器busybox创建一个Pod,并执行“whiletrue;
doecho‘HiIamfromMaincontainer’>
>
/var/log/index.html;
sleep5;
done”,并带有暴露在端口80上的Nginx镜像的sidecar容器。
用emptyDirVolume将该卷安装在/var/log路径(用于busybox)和/usr/share/nginx/html路径(用于nginx容器)。
验证两个容器都在运行。
//createaninitialyamlfilewiththis
kubectlrunmulti-cont-pod--image=busbox--restart=Never--dry-run-oyaml>
//edittheymlasbelowandcreateit
kubectlgetpomulti-cont-pod
35.进入两个容器并验证main.txt是否存在,并用curllocalhost从sidecar容器中查询main.txt
//execintomaincontainer
kubectlexec-itmulti-cont-pod-cmain-container--sh
cat/var/log/main.txt
//execintosidecarcontainer
kubectlexec-itmulti-cont-pod-csidecar-container--sh
cat/usr/share/nginx/html/index.html
//installcurlandgetdefaultpage
#apt-getupdate&
&
apt-getinstall-ycurl
#curllocalhost
Pod设计
了解如何使用Labels、Selectors和Annotations,了解部署以及如何执行滚动更新,了解部署以及如何执行回滚,了解Jobs和CronJobs。
36.获取带有标签信息的Pod
kubectlgetpods--show-labels
37.创建5个NginxPod,其中两个标签为env=prod,另外三个标签为env=dev
kubectlrunnginx-dev1--image=nginx--restart=Never--labels=env=dev
kubectlrunnginx-dev2--image=nginx--restart=Never--labels=env=dev
kubectlrunnginx-dev3--image=nginx--restart=Never--labels=env=dev
kubectlrunnginx-prod1--image=nginx--restart=Never--labels=env=prod
kubectlrunnginx-prod2--image=nginx--restart=Never--labels=env=prod
38.确认所有Pod都使用正确的标签创建
kubecltgetpods--show-labels
39.获得带有标签env=dev的Pod
kubectlgetpods-lenv=dev
40.获得带标签env=dev的Pod并输出标签
kubectlgetpods-lenv=dev--show-labels
41.获得带有标签env=prod的Pod
kubectlgetpods-lenv=prod
42.获得带标签env=prod的Pod并输出标签
kubectlgetpods-lenv=prod--show-labels
43.获取带有标签env的Pod
kubectlgetpods-Lenv
44.获得带标签env=dev、env=prod的Pod
kubectlgetpods-l'
envin(dev,prod)'
45.获取带有标签env=dev和env=prod的Pod并输出标签
--show-labels
46.将其中一个容器的标签更改为env=uat并列出所有要验证的容器
kubectllabelpod/nginx-dev3env=uat--overwrite
47.删除刚才创建的Pod标签,并确认所有标签均已删除
kubectllabelpodnginx-dev{1..3}env-
kubectllabelpodnginx-prod{1..2}env-
kubectlgetpo--show-labels
48.为所有Pod添加标签app=nginx并验证
kubectllabelpodnginx-dev{1..3}app=nginx
kubectllabelpodnginx-prod{1..2}app=nginx
49.获取所有带有标签的节点(如果使用minikube,则只会获得主节点)
kubectlgetnodes--show-labels
50.标记节点(如果正在使用,则为minikube)nodeName=nginxnode
kubectllabelnodeminikubenodeName=nginxnode
51.建一个标签为nodeName=nginxnode的Pod并将其部署在此节点上
pod.yaml
//addthenodeSelectorlikebelowandcreatethepod
kubectlcreate-fpod.yaml
52.使用节点选择器验证已调度的Pod
kubectldescribeponginx|grepNode-Selectors
53.验证我们刚刚创建的PodNginx
是否具有nodeName=nginxnode这个标签
kubectldescribeponginx|grepLabels
54.用name=webapp注释Pod
kubectlannotatepodnginx-dev{1..3}name=webapp
kubectlannotatepodnginx-prod{1..2}name=webapp
55.验证已正确注释的Pod
kubectldescribeponginx-dev{1..3}|grep-iannotations
kubectldescribeponginx-prod{1..2}|grep-iannotations
56.删除Pod上的注释并验证
kubectlannotatepodnginx-dev{1..3}name-
kubectlannotatepodnginx-prod{1..2}name-
57.删除到目前为止我们创建的所有Pod
kubectldeletepo–all
58.创建一个名为webapp的Deployment,它带有5个副本的镜像Nginx
kubectlcreatedeploywebapp--image=nginx--dry-run-oyaml>
webapp.yaml
//changethereplicasto5intheyamlandcreateit
kubectlcreate-fwebapp.yaml
59.用标签获取我们刚刚创建的Deployment
kubectlgetdeploywebapp--show-labels
60.导出该Deployment的yaml文件
kubectlgetdeploywebapp-oyaml
61.获取该Deployment的Pod
//getthelabelofthedeployment
kubectlgetdeploy--show-labels
//getthepodswiththatlabel
kubectlgetpods-lapp=webapp
62.将该Deployment从5个副本扩展到20个副本并验证
kubectlscaledeploywebapp--replicas=20
kubectlgetpo-lapp=webapp
63.获取该Deployment的rollout状态
kubectlrolloutstatusdeploywebapp
64.获取使用该Deployment创建的副本集
kubectlgetrs-lapp=webapp
65.获取该Deployment的副本集和Pod的yaml
kubectlgetrs-lapp=webapp-oyaml
kubectlgetpo-lapp=webapp-oyaml
66.删除刚创建的Deployment,并查看所有Pod是否已被删除
kubectldeletedeploywebapp
kubectlgetpo-lapp=webapp–w
67.使用镜像nginx:
1.17.1和容器端口80创建webappDeployment,并验证镜像版本
kubectlcreatedeploywebapp--image=nginx:
1.17.1--dry-run-oyaml>
//addtheportsectionandcreatethedeployment
//verify
kubectldescribedeploywebapp|grepImage
68.使用镜像版本1.17.4更新Deployment并验证
kubectlsetimagedeploy/webappnginx=nginx:
1.17.4
69.检查rollout历史记录,并确保更新后一切正常
kubectlrollouthistorydeploywebapp
70.撤消之前使用版本1.17.1的Deployment,并验证镜像是否还有老版本
kubectlrolloutundodeploywebapp
71.使用镜像版本1.16.1更新Deployment,并验证镜像、检查rollout历史记录
1.16.1
72.将Deployment更新到镜像1.17.1并确认一切正常
kubectlrolloutundodeployweb