




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
任務9.2.1配置Kubernetes集群各節點的系統環境(1)任務目標掌握配置Kubernetes集群各節點系統環境的方法(2)任務內容克隆三臺主機,并設置其IP地址各主機連接遠程管理工具MobaXterm設置各主機的主機名稱配置各主機的主機名解析關閉系統Swap(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:第一步:利用CentOS7-m虛擬機克隆三臺服務器,虛擬機名稱分別為master、node1和node2,Kubernetes集群的基本設置信息見表9-2所示。表9-2Kubernetes集群的基本設置信息節點名稱IP地址操作系統主要軟件CPU配置內存設置master0CentOS7.6DockerCE2核2GBnode11CentOS7.6DockerCE2核2GBnode22CentOS7.6DockerCE2核2GB以下步驟需在master、node1和node2三臺節點上同時運行,在此僅給出master節點的運行情況,其它節點可參照進行。第二步:開啟master節點,修改其IP地址為0并重啟網絡,操作命令如下:[root@docker~]#vi/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"BOOTPROTO="static"IPADDR=0NETMASK=GATEWAY=NAME="ens33"DEVICE="ens33"ONBOOT="yes"DNS1=14DNS2=[root@docker~]#systemctlrestartnetwork第三步:通過遠程管理工具MobaXterm連接master節點,如圖9-2所示。圖9-2遠程管理工具MobaXterm連接Master節點第四步:在master節點上,修改其主機名為master,操作命令如下:[root@docker~]#hostnamectlset-hostnamemaster[root@docker~]#su[root@master~]#hostname命令運行結果如圖9-3所示。圖9-3修改Master節點的主機名第五步:在master節點上,配置各節點間的主機名解析,操作命令如下:[root@master~]#vim/etc/hostslocalhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain60master1node12node2第六步:在master節點上,關閉Swap(交換分區)系統,操作命令如下:[root@master~]#free-m[root@master~]#swapoff-a[root@master~]#free-m命令運行結果如圖9-4所示。圖9-4在master節點上關閉Swap系統第七步:永久關閉Swap系統,注釋掉Swap自動掛載配置,否則默認配置下的Kubelet將無法正常啟動,操作命令如下:[root@master~]#vim/etc/fstab操作結果如圖9-5所示。圖9-5注釋掉Swap自動掛載配置(永久關閉Swap)第八步:根據需要為master節點創建快照,保存此時的狀態。任務9.2.2部署Kubernetes集群(1)任務目標掌握部署Kubernetes集群的方法(2)任務內容配置Kubeadm和Kubelet的Repo源并安裝配置網絡轉發參數并使其生效加載IPVS相關內核模塊配置Kubelet的Cgroups,啟動Kubelet服務初始化Master節點安裝網絡插件flannel并啟動Kubelet將Node1和Node2加入集群(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:以下第一步至第六步需在master、node1和node2三臺節點上同時運行,在此僅給出master節點的運行步驟,其它節點可參照進行。第一步:配置Kubeadm和Kubelet的Repo源,下載安裝信息并緩存到本地,操作命令如下:[root@master~]#vim/etc/yum.repos.d/Kubernetes.repo[Kubernetes]name=Kubernetesbaseurl=/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=/kubernetes/yum/doc/yum-key.gpg/kubernetes/yum/doc/rpm-package-key.gpg[root@master~]#yummakecachefast命令運行結果如圖9-6所示。圖9-6配置Kubeadm和Kubelet的Repo源,下載安裝信息并緩存到本地第二步:安裝Kubeadm和Kubelet工具,操作命令如下:[root@master~]#yuminstall-ykubelet-1.19.0kubeadm-1.19.0kubectl-1.19.0命令運行結果如圖9-7所示。圖9-7安裝Kubeadm和Kubelet工具第三步:配置網絡轉發參數并使其生效,確保集群能夠正常通信,操作命令如下:[root@master~]#vim/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1vm.swappiness=0[root@master~]#sysctl--system命令運行結果如圖9-8所示。圖9-8配置網絡轉發參數并使其生效第四步:加載IPVS相關內核模塊,并查看是否加載成功,操作命令如下:[root@master~]#modprobeip_vs[root@master~]#modprobeip_vs_rr[root@master~]#modprobeip_vs_wrr[root@master~]#modprobeip_vs_sh[root@master~]#modprobenf_conntrack_ipv4[root@master~]#lsmod|grepip_vs命令運行結果如圖9-9所示。圖9-9加載IPVS相關內核模塊并查看是否加載成功第五步:獲取Docker的Cgroups,配置Kubelet的Cgroups,操作命令如下:[root@master~]#DOCKER_CGROUPS=$(dockerinfo|grep'Cgroup'|cut-d''-f4)[root@master~]#echo$DOCKER_CGROUPS[root@master~]#cat>/etc/sysconfig/kubelet<<EOFKUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS--pod-infra-container-image=/google_containers/pause-amd64:3.1"EOF如果獲取Docker的Cgroups時出現WARNING:IPv4forwardingisdisabled,則需重啟網絡和docker,命令運行結果如圖9-10所示。圖9-10配置Kubelet的Cgroups第六步:啟動Kubelet服務,并查看其狀態,操作命令如下:[root@master~]#systemctldaemon-reload[root@master~]#systemctlrestartkubelet[root@master~]#systemctlenablekubelet[root@master~]#systemctlstatuskubelet命令運行結果如圖9-11所示。圖9-11啟動Kubelet服務,并查看其狀態第七步:初始化master節點,操作命令如下:[root@master~]#kubeadminit--kubernetes-version=v1.19.0--service-cidr=/12--pod-network-cidr=/16--apiserver-advertise-address=0--ignore-preflight-errors=Swap--image-repository=/google_containers命令運行后,會顯示以下內容:W121421:26:13.94527328698configset.go:348]WARNING:kubeadmcannotvalidatecomponentconfigsforAPIgroups[kubelet.config.k8s.iokubeproxy.config.k8s.io][init]UsingKubernetesversion:v1.19.0[preflight]Runningpre-flightchecks[WARNINGIsDockerSystemdCheck]:detected"cgroupfs"astheDockercgroupdriver.Therecommendeddriveris"systemd".Pleasefollowtheguideathttps://kubernetes.io/docs/setup/cri/[WARNINGSystemVerification]:thisDockerversionisnotonthelistofvalidatedversions:20.10.14.Latestvalidatedversion:19.03[preflight]PullingimagesrequiredforsettingupaKubernetescluster[preflight]Thismighttakeaminuteortwo,dependingonthespeedofyourinternetconnection[preflight]Youcanalsoperformthisactioninbeforehandusing'kubeadmconfigimagespull'[certs]UsingcertificateDirfolder"/etc/kubernetes/pki"[certs]Generating"ca"certificateandkey[certs]Generating"apiserver"certificateandkey[certs]apiserverservingcertissignedforDNSnames[kuberneteskubernetes.defaultkubernetes.default.svckubernetes.default.svc.cluster.localmaster]andIPs[0][certs]Generating"apiserver-kubelet-client"certificateandkey[certs]Generating"front-proxy-ca"certificateandkey[certs]Generating"front-proxy-client"certificateandkey[certs]Generating"etcd/ca"certificateandkey[certs]Generating"etcd/server"certificateandkey[certs]etcd/serverservingcertissignedforDNSnames[localhostmaster]andIPs[0::1][certs]Generating"etcd/peer"certificateandkey[certs]etcd/peerservingcertissignedforDNSnames[localhostmaster]andIPs[0::1][certs]Generating"etcd/healthcheck-client"certificateandkey[certs]Generating"apiserver-etcd-client"certificateandkey[certs]Generating"sa"keyandpublickey[kubeconfig]Usingkubeconfigfolder"/etc/kubernetes"[kubeconfig]Writing"admin.conf"kubeconfigfile[kubeconfig]Writing"kubelet.conf"kubeconfigfile[kubeconfig]Writing"controller-manager.conf"kubeconfigfile[kubeconfig]Writing"scheduler.conf"kubeconfigfile[kubelet-start]Writingkubeletenvironmentfilewithflagstofile"/var/lib/kubelet/kubeadm-flags.env"[kubelet-start]Writingkubeletconfigurationtofile"/var/lib/kubelet/config.yaml"[kubelet-start]Startingthekubelet[control-plane]Usingmanifestfolder"/etc/kubernetes/manifests"[control-plane]CreatingstaticPodmanifestfor"kube-apiserver"[control-plane]CreatingstaticPodmanifestfor"kube-controller-manager"[control-plane]CreatingstaticPodmanifestfor"kube-scheduler"[etcd]CreatingstaticPodmanifestforlocaletcdin"/etc/kubernetes/manifests"[wait-control-plane]WaitingforthekubelettobootupthecontrolplaneasstaticPodsfromdirectory"/etc/kubernetes/manifests".Thiscantakeupto4m0s[apiclient]Allcontrolplanecomponentsarehealthyafter36.180436seconds[upload-config]StoringtheconfigurationusedinConfigMap"kubeadm-config"inthe"kube-system"Namespace[kubelet]CreatingaConfigMap"kubelet-config-1.19"innamespacekube-systemwiththeconfigurationforthekubeletsinthecluster[upload-certs]Skippingphase.Pleasesee--upload-certs[mark-control-plane]Markingthenodemasterascontrol-planebyaddingthelabel"node-role.kubernetes.io/master=''"[mark-control-plane]Markingthenodemasterascontrol-planebyaddingthetaints[node-role.kubernetes.io/master:NoSchedule][bootstrap-token]Usingtoken:on2k3m.xpk70r1pmjrcemw1[bootstrap-token]Configuringbootstraptokens,cluster-infoConfigMap,RBACRoles[bootstrap-token]configuredRBACrulestoallowNodeBootstraptokenstogetnodes[bootstrap-token]configuredRBACrulestoallowNodeBootstraptokenstopostCSRsinorderfornodestogetlongtermcertificatecredentials[bootstrap-token]configuredRBACrulestoallowthecsrapprovercontrollerautomaticallyapproveCSRsfromaNodeBootstrapToken[bootstrap-token]configuredRBACrulestoallowcertificaterotationforallnodeclientcertificatesinthecluster[bootstrap-token]Creatingthe"cluster-info"ConfigMapinthe"kube-public"namespace[kubelet-finalize]Updating"/etc/kubernetes/kubelet.conf"topointtoarotatablekubeletclientcertificateandkey[addons]Appliedessentialaddon:CoreDNS[addons]Appliedessentialaddon:kube-proxyYourKubernetescontrol-planehasinitializedsuccessfully!Tostartusingyourcluster,youneedtorunthefollowingasaregularuser:mkdir-p$HOME/.kubesudocp-i/etc/kubernetes/admin.conf$HOME/.kube/configsudochown$(id-u):$(id-g)$HOME/.kube/configYoushouldnowdeployapodnetworktothecluster.Run"kubectlapply-f[podnetwork].yaml"withoneoftheoptionslistedat:https://kubernetes.io/docs/concepts/cluster-administration/addons/Thenyoucanjoinanynumberofworkernodesbyrunningthefollowingoneachasroot:kubeadmjoin0:6443--tokenon2k3m.xpk70r1pmjrcemw1\--discovery-token-ca-cert-hashsha256:ec388416ec8c934948157963b39fcbd2d56bf143ea15b2bfd119be143194d683注意,最后三行代碼是配置Node節點加入集群的token指令,在Node節點輸入此token指令即可加入集群,請將其復制保存。Kubernetes集群初始化完成了四項工作:(1)[kubelet]:生成Kubelet的配置文件“/var/lib/kubelet/config.yaml”。(2)[certificates]:生成相關的各種證書。(3)[kubeconfig]:生成kubeconfig文件(4)[bootstraptoken]:生成token。第八步:在master節點配置Kubectl,并查看節點狀態,操作命令如下:[root@master~]#rm-rf$HOME/.kube[root@master~]#mkdir-p$HOME/.kube[root@master~]#cp-i/etc/kubernetes/admin.conf$HOME/.kube/config[root@master~]#chown$(id-u):$(id-g)$HOME/.kube/config[root@master~]#kubectlgetnodes命令運行結果如圖9-12所示。圖9-12在master節點配置Kubectl,并查看節點狀態注意:此時master節點的狀態為“NotReady”,因為還沒有安裝網絡插件。第九步:在master節點上,安裝網絡插件flannel,并啟動Kubectl,操作命令如下:[root@master~]#dockerpullquay.io/coreos/flannel:v0.11.0-amd64[root@master~]#wget/coreos/flannel/master/Documentation/kube-flannel.yml[root@master~]#kubectlapply-fkube-flannel.yml命令運行結果如圖9-13所示。圖9-13在master節點上,安裝網絡插件flannel并啟動Kubectl第十步:在node1節點和node2節點上,安裝網絡插件flannel,并啟動Kubectl,操作命令如下:注意:此處僅給出node1節點的操作,node2節點的操作類似。[root@node1~]#dockerpullquay.io/coreos/flannel:v0.11.0-amd64[root@node1~]#wget/coreos/flannel/master/Documentation/kube-flannel.yml[root@node1~]#kubectlapply-fkube-flannel.yml命令運行結果如圖9-14所示。圖9-14在node1節點上安裝網絡插件flannel,并啟動Kubectl注意,以上啟動Kubectl失敗,原因是kubectl命令需要使用kubernetes-admin的身份來運行,在“kubeadmint”啟動集群的步驟中已經生成“/etc/kubernetes/admin.conf”,只有將主節點中的“/etc/kubernetes/admin.conf”文件拷貝到node1節點和node2節點相同目錄下,并且配置環境變量,才能啟動Kubectl成功。解決辦法如下:(1)首先需在master節點上復制文件到node1節點和node2節點,操作命令為:[root@master~]#scp/etc/kubernetes/admin.confroot@1:/etc/kubernetes/admin.conf[root@master~]#scp/etc/kubernetes/admin.confroot@2:/etc/kubernetes/admin.conf命令運行結果如圖9-15所示。圖9-15在master節點上復制文件到node1節點和node2節點(2)在node1節點和node2節點上配置環境變量,并啟動Kubectl,此處以node1為例,操作命令為:[root@node1~]#exportKUBECONFIG=/etc/kubernetes/admin.conf[root@node1~]#echo"exportKUBECONFIG=/etc/kubernetes/admin.conf">>~/.bash_profile[root@node1~]#kubectlapply-fkube-flannel.yml命令運行結果如圖9-16所示。圖9-16在node1節點上配置環境變量,并啟動Kubectl第十一步:在master節點查看Kubectl信息及節點狀態,操作命令如下:[root@master~]#kubectlgetpods--namespacekube-system[root@master~]#kubectlgetservice[root@master~]#kubectlgetsvc--namespacekube-system[root@master~]#kubectlgetnodes命令運行結果如圖9-17所示。圖9-17在master節點查看Kubectl信息及節點狀態第十二步:在node1節點和node2節點分別輸入token指令,將他們加入集群,此處以node1節點為例,操作命令如下:[root@node1~]#kubeadmjoin0:6443–tokenon2k3m.xpk70r1pmjrcemw1--discovery-token-ca-cert-hashsha256:ec388416ec8c934948157963b39fcbd2d56bf143ea15b2bfd119be143194d683注意:將之前復制的token指令粘貼過來即可。命令運行結果如圖9-18所示。圖9-18將node1加入集群第十三步:在master節點上查看Node節點的狀態,操作命令如下:[root@master~]#kubectlgetnodes[root@master~]#kubectlgetpods-nkube-system命令運行結果如圖9-19所示。圖9-19在master節點上查看Node節點狀態任務9.2.3Kubectl基本操作(1)任務目標掌握Kubectl命令的基本用法(2)任務內容檢查Kubernetes集群各節點狀態查看Kubernetes版本信息、自帶的資源對象和系統pod狀態創建Pod并查看其詳細信息登陸容器查看其中的內容刪除Pod(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:第一步:檢查Kubernetes集群各節點狀態,確保各節點狀態正常,操作命令如下:[root@master~]#kubectlgetnodes命令運行結果如圖9-20所示。圖9-20檢查Kubernetes集群各節點狀態第二步:查看Kubernetes版本信息,操作命令如下:[root@master~]#kubectlversion--short命令運行結果如圖9-21所示。圖9-21檢查Kubernetes版本信息第三步:查看Kubernetes自帶的資源對象,操作命名如下;[root@master~]#kubectlapi-resources命令運行結果如圖9-22所示。圖9-22查看Kubernetes自帶的資源對象第四步:查看Kubernetes集群的系統Pod狀態,確保所有系統Pod運行正常,操作命令如下:[root@master~]#kubectlgetpods-nkube-system命令運行結果如圖9-23所示。圖9-23查看Kubernetes集群的系統Pod狀態第五步:創建一個名稱為http的Pod,并查看Pod創建情況,鏡像為centos/httpd:latest,操作命令如下:[root@master~]#kubectlrunhttp--image=centos/httpd:latest[root@master~]#kubectlgetpod命令運行結果如圖9-24所示。圖9-24創建一個名稱為http的Pod并查看第六步:查看Pod運行的節點及IP地址,操作命令如下:[root@master~]#kubectlgetpodhttp-owide命令運行結果如圖9-25所示。圖9-25查看Pod運行的節點及IP地址第七步:查看Pod詳細信息,操作命令如下:[root@master~]#kubectldescribepodhttp命令運行結果如圖9-26所示。圖9-26查看Pod詳細信息第八步:以YAML格式查看Pod詳情,操作命令如下:[root@master~]#kubectlgetpodhttp-oyaml命令運行結果如圖9-27所示。圖9-27以YAML格式查看Pod詳情第九步:將YAML格式的Pod信息導入到YAML文件,并查看文件內容,操作命令如下:[root@master~]#kubectlrunhttp-oyaml--image=centos/httpd:latest--dry-run=client>http.yaml[root@master~]#ls[root@master~]#cathttp.yaml命令運行結果如圖9-28所示。圖9-28將YAML格式的Pod信息導入到YAML文件并查看文件內容creationTimestamp:資源對象的創建時間。resources:資源限制和請求,如內存和CPU的限制和請求。此處表示沒有為容器指定任何資源限制或請求。dnsPolicy:DNS解析策略,ClusterFirst表示在配置一個Pod時,其DNS解析將首先在Kubernetes集群內部進行,然后才會進行外部解析。restartPolicy:Pod中所有Container的重啟策略,其值為Always、OnFailure或Never,其含義如下:Always:只要Container退出,就重啟,即使成功退出也要重啟,默認為此值。OnFailure:如果Container的退出失敗則重啟。Never:Container退出后永不重啟。Status:資源的當前狀態信息,通常由Kubernetes系統自動管理。第十步:登陸到容器中查看其中的內容,操作命令如下:[root@master~]#kubectlexec-ithttp--bin/shsh-4.2#lssh-4.2#exit命令運行結果如圖9-29所示。圖9-29登陸到容器中查看其中內容第十一步:刪除Pod,操作命令如下:[root@master~]#kubectlgetpod[root@master~]#kubectldeletepodhttp[root@master~]#kubectlgetpod命令運行結果如圖9-30所示。圖9-30刪除Pod任務9.2.4通過YAML文件創建Pod(1)任務目標掌握通過YAML文件創建Pod的方法(2)任務內容編寫YAML文件創建Pod查看Pod信息(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:第一步:參照9.2.3中http.yaml文件,編寫mynginx.yaml文件,操作命令及代碼如下:[root@master~]#vimmynginx.yamlapiVersion:v1kind:Podmetadata:labels:app:mynginxname:mynginxspec:containers:-image:nginx:latestimagePullPolicy:IfNotPresentname:nginxports:-name:nginxprotocol:TCPcontainerPort:80hostPort:30000resources:{}dnsPolicy:ClusterFirstrestartPolicy:Never第二步:通過mynginx.yaml創建Pod,操作命令如下:[root@master~]#kubectlapply-fmynginx.yaml[root@master~]#kubectlgetpod命令運行結果如圖9-31所示。圖9-31通過mynginx.yaml創建Pod第三步:查看名稱為mynginx的Pod詳細信息,操作命令如下:[root@master~]#kubectldescribepodmynginx命令運行結果如圖9-32所示。圖9-32查看名稱為mynginx的Pod詳細信息從圖中可以看到,名稱為mynginx的Pod中運行nginx鏡像的容器IP地址為6,該容器運行在節點node2上。第四步:登陸容器并訪問nginx應用,操作命令如下:[root@master~]#kubectlexec-itmynginx--bin/sh#curl6:80命令運行結果如圖9-33所示。圖9-33登陸容器并訪問nginx應用第五步:在瀏覽器中通過地址2:30000訪問nginx應用,結果如圖9-34所示。圖9-34通過瀏覽器訪問nginx應用第六步:編寫twocontainers.yaml文件,操作命令及代碼如下:[root@master~]#vimtwocontainers.yamlapiVersion:v1kind:Podmetadata:labels:app:twocontainersname:twocontainersspec:containers:-image:nginx:latestimagePullPolicy:IfNotPresentname:nginxports:-containerPort:80-image:redis:latestimagePullPolicy:IfNotPresentname:redisports:-containerPort:8000dnsPolicy:ClusterFirstrestartPolicy:Never第七步:通過twocontainers.yaml創建Pod,操作命令如下:[root@master~]#kubectlapply-ftwocontainers.yaml[root@master~]#kubectlgetpod命令運行結果如圖9-35所示。圖9-35通過twocontainer.yaml創建Pod第八步:查看名稱為twocontainers的Pod詳細信息,操作命令如下:[root@master~]#kubectldescribepodtwocontainers命令運行結果如圖9-36所示。圖9-36查看名稱為twocontainer的Pod詳細信息可見,名稱為twocontainers的Pod中的兩個容器運行在node2節點上,端口分別為80和8000。任務9.2.5通過標簽調度Pod(1)任務目標掌握通過標簽調度Pod的方法(2)任務內容為K8S集群中的工作節點添加標簽創建Pod并指定其標簽通過標簽進行調度(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:第一步:在master節點上查看Node節點的標簽,操作命令如下:[root@master~]#kubectlgetnodes--show-labels命令運行結果如圖9-37所示。 圖9-37在master節點上查看Node節點的標簽第二步:修改Node節點的標簽,操作命令如下:[root@master~]#kubectllabelnodesnode1labelname=node1[root@master~]#kubectllabelnodesnode2labelname=node2[root@master~]#kubectlgetnodes--show-labels命令運行結果如圖9-38所示。圖9-38修改Node節點的標簽第三步:編寫mynginx-label.yaml文件,操作命令及代碼如下:[root@master~]#vimmynginx-label.yamlapiVersion:v1kind:Podmetadata:labels:app:mynginx-labelname:mynginx-labelspec:containers:-image:nginx:latestimagePullPolicy:IfNotPresentname:nginxports:-name:nginxprotocol:TCPcontainerPort:80hostPort:30000resources:{}dnsPolicy:ClusterFirstrestartPolicy:NevernodeSelector:labelname:node1第四步:通過mynginx-label.yaml創建Pod,操作命令如下:[root@master~]#kubectlapply-fmynginx-label.yaml[root@master~]#kubectlgetpod[root@master~]#kubectldescribepodmynginx-label命令運行結果如圖9-39所示。圖9-39通過mynginx-label.yaml創建Pod從圖中可以看出,該Pod被調度到了node1節點上。第五步:刪除該Pod,操作命令如下:[root@master~]#kubectldeletepodmynginx-label[root@master~]#kubectlgetpod命令運行結果如圖9-40所示。圖9-40刪除該Pod:mynginx-label第六步:修改mynginx-label.yaml文件,將Pod調度到node2節點上,操作命令及代碼如下:[root@master~]#vimmynginx-label.yamlapiVersion:v1kind:Podmetadata:labels:app:mynginx-labelname:mynginx-labelspec:containers:-image:nginx:latestimagePullPolicy:IfNotPresentname:nginxports:-name:nginxprotocol:TCPcontainerPort:80hostPort:30000resources:{}dnsPolicy:ClusterFirstrestartPolicy:NevernodeSelector:labelname:node2[root@master~]#kubectlapply-fmynginx-label.yaml[root@master~]#kubectlgetpod[root@master~]#kubectldescribepodmynginx-label命令運行結果如圖9-41所示。圖9-41將Pod調度到node2節點上從圖中可以看出,該Pod被調度到了node2節點上。第七步:在瀏覽器中通過地址2:30000訪問Pod中的應用,結果如圖9-42所示。圖9-42訪問Pod中的應用任務9.2.6通過YAML文件創建Deployment(1)任務目標掌握通過YAML文件創建Deployment的方法(2)任務內容編輯YAML文件并創建Deployment查看Deployment相關信息更新與回滾Deployment(3)完成任務所需的設備和軟件一臺安裝Windows10操作系統的計算機VMwareWorkstation,Docker遠程管理工具MobaXterm(4)任務實施步驟:第一步:編輯nginx-deployment.yaml文件,操作命令和代碼如下:[root@master~]#vimnginx-deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentlabels:app:nginxspec:replicas:3selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:1.21.6imagePullPolicy:IfNotPresentports:-containerPort:80第二步:通過nginx-deployment.yaml文件創建Deployment,操作命令如下:[root@master~]#kubectlapply-fnginx-deployment.yaml[root@master~]#kubectlgetdeployment命令運行結果如圖9-43所示。圖9-43通過nginx-deployment.yaml文件創建Deployment第三步:查看該Deployment相關的RS信息,操作命令如下:[root@master~]#kubectlgetrs命令運行結果如圖9-44所示。圖9-44查看該Deployment相關的RS信息第四步:查看該Deployment相關的Pod信息,操作命令如下:[root@master~]#kubectlgetpod命令運行結果如圖9-45所示。圖9-45查看該Deployment相關的Pod信息第五步:查看該Deployment相關的Pod容器運行在哪個節點上,操作命令如下:[root@master~]#kubectlgetpods-owide命令運行結果如圖9-46所示。圖9-46查看該Deployment相關的Pod容器運行在哪個節點上第六步:將nginx鏡像從nginx:1.21.6更新為nginx:latest版本,操作命令如下:[root@node2~]#k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CECS 10209-2022給水用高環剛鋼骨架增強聚乙烯復合管材
- T/CECS 10201-2022丁基橡膠自粘防水卷材
- T/CECS 10149-2021混凝土外加劑質量一致性的測定紅外光譜法
- T/CECS 10041-2019綠色建材評價門窗幕墻用型材
- T/CCSAS 027-2023粉碎、篩分單元操作機械化、自動化設計方案指南
- T/CCOA 49-2023生濕面制品專用小麥粉
- T/CBMCA 033-2022室外建筑涂裝工程消耗量定額
- T/CAS 847-2024氫氣輸送管道完整性管理規范
- T/CAQI 245-2021學校教室照明護眼系統技術要求
- T/CAPE 11004-2023基于電流頻譜檢測技術的三相異步鼠籠式電動機轉子斷條預防性檢測及故障診斷導則
- 0-6歲兒童發育行為評估表
- LY/T 3292-2021自然保護地生態旅游規范
- GB/T 24915-2010合同能源管理技術通則
- JGJT 223-2010 預拌砂漿應用技術規程
- 電力電纜基礎知識專題培訓課件
- 《國際貿易地理》課件
- 三級動火作業許可證
- 施工組織設計實訓任務書
- 貪污賄賂犯罪PPT(培訓)(PPT168頁)課件
- 人教版七年級下冊數學 第五章達標檢測卷
- 【醫學課件】生物大分子(蛋白質、核酸和酶)的結構與功能
評論
0/150
提交評論