




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、k8s介紹Kubernetes是谷歌十幾的Borg的一個開源版本,是Docker分布式系統(tǒng)解決方案。 Borg是谷歌內(nèi)部使用的大規(guī)模集群管系統(tǒng),基于容技術(shù),目的是實現(xiàn)管的自動化, 以及跨多個數(shù)據(jù)中心的用率的最大化容編排引擎三足鼎立:早在 2015 5 月,Kubernetes 在上的的搜索熱度就已經(jīng)超過 Mesos 和 DockerSwarm,從那兒之后是一飆升,將對手甩開十幾條街,容編排引擎領(lǐng)域的三足鼎立結(jié)束。目前,AWS、Azure、阿云、騰訊云等主流公有云提供的是基于 Kubernetes 的容服務(wù);Rancher、CoreOS、IBM、Mirantis、Oracle、Red Hat、V
2、MWare 等無數(shù)廠商也在大研發(fā)和推廣基于 Kubernetes 的容 CaaS 或 PaaS的明星。可以說,Kubernetes 是當前容業(yè)最手可熱的數(shù)據(jù)中心運著超過 20 億個容,而且十前就開始使用容技術(shù)。 最初,開發(fā)一個叫 Borg 的系統(tǒng)(現(xiàn)在命令為 Omega)來調(diào)度如此龐大數(shù)的容和工作負載。在積累這么多的經(jīng)驗后,決定重寫這個容管系統(tǒng),并將其貢獻到開源社區(qū),讓界都能受益。這個項目就是 Kubernetes。簡單的講,Kubernetes 是k8s核心概念Omega 的開源版本。1.PodPod直譯是豆莢,可以把容想像成豆莢的豆子,把一個或多個關(guān)系緊密的豆子包在一起就是豆莢(一個Pod
3、)。在k8s中我們 直接操作容,而是把容包裝成Pod再進管運于Node節(jié)點上,若干相關(guān)容的組合。Pod內(nèi)包含的容運在同一宿主機上,使用相同的網(wǎng)絡(luò) 命名空間、IP地址和端口,能夠通過localhost進通信。Pod是Kurbernetes進創(chuàng)建、調(diào)度和管 的最小 ,它提供比容高層次的抽象,使得部署和管加靈活。一個Pod可以包含一個容或者多個相關(guān)容。 每個Pod都有一個特殊的被稱為“容”Pause容,還包含一個或多個緊密相關(guān)的用戶業(yè)務(wù)容 ; 一個Pod的容與另外主機上的Pod容能夠直接通信; 如果Pod所在的Node宕機,會將這個Node上的所有Pod重新調(diào)度到其他節(jié)點上; 普通Pod及靜態(tài)Pod
4、,前者存放在etcd中,后者存放在具體Node上的一個具體文件中,并且只能在 此Node上啟動運; Docker Volume對應Kubernetes中的Pod Volume; 每個Pod可以設(shè)置限額的計算機 有CPU和Memory; Requests, 的最小申請; Limits, 最大 使用的;EventMesosDocker Swarm Kubernetes是一個,最早產(chǎn)生的時間、最后重復時間、重復次數(shù)、發(fā)起者、類型,以及導致此的等信息。Event通常關(guān)聯(lián)到具體對象上,式排查故障的重要參考信息;Pod IPPod的IP地址,是Docker Engine根據(jù)docker0網(wǎng)橋的IP地址段進
5、分配的,通常是一個虛擬的二層網(wǎng)絡(luò),位于同Node上的Pod能夠彼此通信,需要通過Pod IP所在的虛擬二層網(wǎng)絡(luò)進通信,而真實的TCP流則是通過Node IP所在的物網(wǎng)卡流出的;Cluster IPService的IP地址。特性如下: 僅僅作用于Kubernetes Servcie這個對象,并由Kubernetes管和分配IP地址; 無法被Ping,因為沒有一個實體網(wǎng)絡(luò)對象來響應; 只能結(jié)合Service Port組成一個具體的通信端口; Node IP網(wǎng)、Pod IP網(wǎng)域Cluster IP網(wǎng)之間的通信,采用的是Kubernetes自己設(shè)計的一種編程方式的特殊的由規(guī)則,與IP由有很大的同;No
6、de IPNode節(jié)點的IP地址,是Kubernetes集群中每個節(jié)點的物網(wǎng)卡的IP地址,是真是存在的物網(wǎng)絡(luò), 所有屬于這個網(wǎng)絡(luò)的服務(wù)之間都能通過這個網(wǎng)絡(luò)直接通信;2. Replication ControllerReplication Controller用來管Pod的副本,保證集群中存在指定數(shù)的Pod副本。集群中副本的數(shù)大于指定數(shù),則會停止指定數(shù)之外的多余容數(shù),反之,則會啟動少于指定數(shù)個數(shù)的容,保證數(shù)變。Replication Controller是實現(xiàn)彈性伸縮、動態(tài)擴容和滾動升級的核心。部署和升級Pod,某種Pod的副本數(shù)在任意時刻都符合某個預期值; Pod期待的副本數(shù); 用于篩選目標P
7、od的Label Selector; 當Pod副本數(shù)小于預期數(shù)的時候,用于創(chuàng)建新Pod的Pod模板(template);Replica Set下一代的Replication Controlle,Replication Controlle只支持基于等式的selector(env=dev或environment!=qa)但Replica Set還支持新的、基于集合的selector(version in (v1.0, v2.0)或env notin (dev, qa)),這對復雜的運維管帶來很大方。3.ServiceService定義Pod的邏輯集合和該集合的策,是真實服務(wù)的抽象。Service提
8、供一個統(tǒng)一的服務(wù)入口以及服務(wù)和發(fā)現(xiàn)機制,用戶需要解Pod是如何運。一個service定義pod的方式,就像單個固定的IP地址和與其相對應的DNS名之間的關(guān)系。Service其實就是我們經(jīng)常提起的微服務(wù)架構(gòu)中的一個微服務(wù),通過分析、識別并建模系統(tǒng)中的所有服務(wù)為微服務(wù)Kubernetes Service,最終我們的系統(tǒng)由多個提供同業(yè)務(wù)能而又彼此獨立的微服務(wù)單元所組成,服務(wù)之間通過TCP/IP進通信,從而形成我們強大而又靈活的彈性網(wǎng)絡(luò),擁 有強大的分布式能、彈性擴展能、容錯能;k8s核心組件Kubernetes Master:集群 節(jié)點,負責整個集群的管和 ,基本上Kubernetes所有的 命令責
9、具體的執(zhí)過程,我們后面所有執(zhí) 令基本都是在Master節(jié)點上運的;給它,它來負包含如下組件:1. Kubernetes API Server作為Kubernetes系統(tǒng)的入口,其封裝核心對象的增刪改查操作,以RESTful API接口方式提供給外部客戶和內(nèi)部組件調(diào)用。維護的REST對象持久化到Etcd中 。2. Kubernetes Scheduler為新建立的Pod進節(jié)點(node)選擇(即分配 ),負責集群的 調(diào)度。組件 ,可以方替換成其他調(diào)度。3.Kubernetes Controller每個Pod都提供一個獨立的Endpoint(Pod IP+ContainerPort)以被客戶端 ,
10、多個Pod副本組成一個集群來提供服務(wù),一般的做法是部署一個負載均衡來 它們,為這組Pod開啟一個對外的服務(wù)端口如8000,并且將這些Pod的Endpoint表加入8000端口的轉(zhuǎn)發(fā)表中,客戶端可以通過負載 均衡的對外IP地址+服務(wù)端口來 此服務(wù)。運在Node上的kube-proxy其實就是一個智能的軟件負載均衡,它負責把對Service的請求轉(zhuǎn)發(fā)到后端的某個Pod實上,并且在內(nèi)部實現(xiàn)服務(wù)的負載均 衡與會話保持機制。Service是共用一個負載均衡的IP地址,而是每個Servcie分配一個全局唯一 的虛擬IP地址,這個虛擬IP被稱為Cluster IP。4.LabelKubernetes中的任意
11、API對象都是通過Label進標識,Label的實質(zhì)是一系的K/V鍵值對。Label是Replication Controller和Service運的基礎(chǔ),二者通過Label來進關(guān)聯(lián)Node上運的Pod。一個label是一個被附加到 上的鍵/值對,譬如附加到一個Pod上,為它傳遞一個用戶自定的并且可識別的屬性.Label還可以被應用來組織和選擇子網(wǎng)中的selector是一個通過匹配labels來定義 之間關(guān)系得表 ,如為一個負載均衡的service 指定所目標PodLabel可以附加到各種 對象上,一個 對象可以定義任意數(shù)的Label。給某個 定義一個Label,相當于給他打一個 ,隨后可以通
12、過Label Selector( 選擇) 和篩選擁有某些Label的 對象。我們可以通過給指定的 對象 一個或多個Label來實現(xiàn) 度的 分組管功能,以于靈活、方的進 分配、調(diào)度、配置、部署等管工作;5.NodeNode是Kubernetes集群架構(gòu)中運Pod的服務(wù)節(jié)點(亦叫agent或minion)。Node是Kubernetes集群操作的單元,用來承載被分配Pod的運,是Pod運的宿主機。6.Endpoint(IP+Port) 標識服務(wù)進程的 點;負責執(zhí)各種,目前已經(jīng)提供很多- Replication Controller來保證Kubernetes的正常運。管維護Replication C
13、ontroller,關(guān)聯(lián)Replication Controller和Pod,保證Replication Controller定義的副本數(shù)與實際運Pod數(shù)一致。- Node Controller管維護Node,定期檢查Node的健康狀態(tài),標識出(失效|未失效)的Node節(jié)點。- Namespace Controller管維護Namespace,定期Pod、Service等。- Service Controller無效的Namespace,包括Namesapce下的API對象,比如管維護Service,提供負載以及服務(wù)- EndPoints Controller。管維護Endpoints,關(guān)聯(lián)S
14、ervice和Pod,創(chuàng)建Endpoints為Service的后端,當Pod發(fā)生變化時,實時新Endpoints。- Service Account Controller管維護Service Account,為每個Namespace創(chuàng)建默認的Service Account,同時為Service Account創(chuàng)建Service Account Secret。- Persistent Volume Controller管維護Persistent Volume和Persistent Volume Claim分配Persistent Volume進綁定,為- Daemon Set Controlle
15、rVolume Claim,為新的Persistent的Persistent Volume執(zhí)回收。管維護Daemon Set,負責創(chuàng)建Daemon Pod,保證指定的Node上正常的運Daemon Pod。- Deployment Controller管維護Deployment,關(guān)聯(lián)Deployment和Replication Controller,保證運指定數(shù)的Pod。當Deployment新時,- Job Controller實現(xiàn)Replication Controller和 Pod的新。管維護Job,為Jod創(chuàng)建一次性任務(wù)Pod,保證完成Job指定完成的任務(wù)數(shù)目- Pod Autosca
16、ler Controller實現(xiàn)Pod的自動伸縮,定時獲取數(shù)據(jù),進策匹配,當滿足條件Pod的伸縮動作。Kubernetes Node:除Master,Kubernetes集群中的其他被稱為Node節(jié)點,Node節(jié)點才是Kubernetes集群中的工作負載節(jié)點,每個Node都會被Master分配一些工作負載(Docker容),當某個Node宕機,其上的工作負載會被Master自動轉(zhuǎn)移到其他節(jié)點上去;包含如下組件:1.Kubelet負責管控容,Kubelet會從Kubernetes API Server接收Pod的創(chuàng)建請求,啟動和停止容,容運狀態(tài)并匯報給Kubernetes API Server。
17、2.Kubernetes Proxy負責為Pod創(chuàng)建服務(wù),Kubernetes Proxy會從Kubernetes API Server獲取所有的Service信息,并根據(jù)Service的信息創(chuàng)建現(xiàn)Kubernetes層級的虛擬轉(zhuǎn)發(fā)網(wǎng)絡(luò)。服務(wù),實現(xiàn)Service到Pod的請求由和轉(zhuǎn)發(fā),從而實3.Docker Engine(docker),Docker引擎,負責本機的容創(chuàng)建和管工作;k8s集群部署集群環(huán)境: 系統(tǒng):centos7u4本次實驗使用三臺 用于部署k8s的運環(huán)境,1臺master,2臺node:細節(jié)如下設(shè)置三臺 的主機名:Master上執(zhí):# hostnamectl -static s
18、et-hostname k8s-masterNode1上執(zhí):# hostnamectl -static set-hostname k8s-node-1Node2上執(zhí):# hostnamectl -static set-hostname k8s-node-2修改每臺 的hosts文件互解:50 k8s-master50 etcd50 registry51 k8s-node-152 k8s-node-2所有 關(guān)閉防火墻和selinux:# systemctl stop
19、firewalld & systemctl disable firewalld & setenforce 0所有 安裝epel-release源# yum -y install epel-release部署master:1.使用yum安裝etcdetcd服務(wù)作為Kubernetes集群的主數(shù)據(jù)庫,在安裝Kubernetes各服務(wù)之前需要首先安裝和啟動。# yum -y install etcd2.編輯/etc/etcd/etcd.conf文件(修改加粗部分3) #Member#ETCD_CORS=ETCD_DATA_DIR=/var/lib/etcd/default.etcd #ETCD_WA
20、L_DIR=#ETCD_LISTEN_PEER_URLS= ETCD_LISTEN_CLIENT_URLS= #ETCD_MAX_SNAPSHOTS=5節(jié)點及功能主機名IPMaster、etcd、registryK8s-master50Node1K8s-node-151Node2K8s-node-252#ETCD_MAX_WALS=5ETCD_NAME=master #ETCD_SNAPSHOT_COUNT=100000 #ETCD_HEARTBEAT_INTERVAL=100 #ETCD_ELECTION_TIME
21、OUT=1000 #ETCD_QUOTA_BACKEND_BYTES=0 #ETCD_MAX_REQUEST_BYTES=1572864 #ETCD_GRPC_KEEPALIVE_MIN_TIME=5s #ETCD_GRPC_KEEPALIVE_INTERVAL=2h0m0s #ETCD_GRPC_KEEPALIVE_TIMEOUT=20s#Clustering#ETCD_INITIAL_ADVERTISE_PEER_URLS=ETCD_ADVERTISE_CLIENT_URLS=啟動并驗證狀態(tài):# systemctl start etcd# etcdctl set testdir/testk
22、ey0 0 0# etcdctl get testdir/testkey0 0# etcdctl -Ccluster-healthmember 8e9e05c52164694d is healthy: got healthy result from cluster is healthy# etcdctl -Ccluster-healthmember 8e9e05c52164694d is healthy: got healthy result from cluster is healthy安裝Dockerrootk8s-master # yum install docker -y配置Docke
23、r配置文件,使其 從registry中拉取鏡像rootk8s-master # vim /etc/sysconfig/docker # /etc/sysconfig/docker# Modify these options if you want to change the way the docker daemon runs OPTIONS=-selinux-enabled -log-driver=journald -signature-verification=false if -z $DOCKER_CERT_PATH ; thenDOCKER_CERT_PATH=/etc/dockerf
24、iOPTIONS=-insecure-registry registry:5000設(shè)置開機自啟動并開啟服務(wù)rootk8s-master # chkconfig docker on rootk8s-master # service docker start安裝kubernetsrootk8s-master # yum install kubernetes -y配置并啟動kubernetes在kubernetes master上需要運以下組件: Kubernets API Server Kubernets Controller ManagerKubernets Scheduler相應的要改以下幾個
25、配置中帶顏色部分信息:rootk8s-master # vim /etc/kubernetes/apiserver # kubernetes system config # The following values are used to configure the kube-apiserver # The address on the local server to listen to. KUBE_API_ADDRESS=-insecure-bind-address=# The port on the local server to listen on. KUBE_API_PO
26、RT=-port=8080# Port minions listen on# KUBELET_PORT=-kubelet-port=10250# Comma separated list of nodes in the etcd cluster KUBE_ETCD_SERVERS=-etcd-servers=# Address range to use for servicesKUBE_SERVICE_ADDRESSES=-service-cluster-ip-range=/16# default admission control policies #KUBE_ADMIS
27、SION_CONTROL=-admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,Service Account,ResourceQuotaKUBE_ADMISSION_CONTROL=-admission- control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,Resourc eQuota# Add your own! KUBE_API_ARGS=rootk8s-master # v
28、im /etc/kubernetes/config # kubernetes system config # The following values are used to configure various aspects of all # kubernetes services, including# kube-apiserver.service# kube-controller-manager.service# kube-scheduler.service # kubelet.service# kube-proxy.service# logging to stderr means we
29、 get it in the systemd journal KUBE_LOGTOSTDERR=-logtostderr=true# journal message level, 0 is debug KUBE_LOG_LEVEL=-v=0# Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV=-allow-privileged=false# How the controller-manager, scheduler, and proxy find the apiserver KU
30、BE_MASTER=-master=啟動服務(wù)并設(shè)置開機自啟動rootk8s-master # systemctl enable kube-apiserver.service rootk8s-master # systemctl start kube-apiserver.service rootk8s-master # systemctl enable kube-controller-manager.service rootk8s-master # systemctl start kube-controller-manager.service rootk8s-master # systemctl
31、 enable kube-scheduler.service rootk8s-master # systemctl start kube-scheduler.service部署node:安裝配置啟動docker(兩臺node一樣) # yum install docker -y配置Docker配置文件,使其 從registry中拉取鏡像# vim /etc/sysconfig/docker # /etc/sysconfig/docker# Modify these options if you want to change the way the docker daemon runs OPTI
32、ONS=-selinux-enabled -log-driver=journald -signature-verification=false if -z $DOCKER_CERT_PATH ; thenDOCKER_CERT_PATH=/etc/dockerfiOPTIONS=-insecure-registry registry:5000設(shè)置開機自啟動并開啟服務(wù)rootk8s-master # chkconfig docker on rootk8s-master # service docker start安裝配置啟動kubernets(兩臺node一樣) # yum install ku
33、bernetes -y配置并啟動kubernetes在kubernetes node上需要運以下組件: KubeletKubernets Proxy相應的要改以下幾個配置文中帶顏色部分信息: rootK8s-node-1 # vim /etc/kubernetes/config # kubernetes system config # The following values are used to configure various aspects of all # kubernetes services, including# kube-apiserver.service# kube-co
34、ntroller-manager.service # kube-scheduler.service# kubelet.service# kube-proxy.service# logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR=-logtostderr=true# journal message level, 0 is debug KUBE_LOG_LEVEL=-v=0# Should this cluster be allowed to run privileged docker containe
35、rs KUBE_ALLOW_PRIV=-allow-privileged=false# How the controller-manager, scheduler, and proxy find the apiserver KUBE_MASTER=-master=rootK8s-node-1 # vim /etc/kubernetes/kubelet # kubernetes kubelet (minion) config# The address for the info server to serve on (set to or for all interfaces)KUB
36、ELET_ADDRESS=-address=# The port for the info server to serve on # KUBELET_PORT=-port=10250# You may leave this blank to use the actual hostname KUBELET_HOSTNAME=-hostname-override=k8s-node-1# location of the api-serverKUBELET_API_SERVER=-api-servers=# pod infrastructure container KUBELET_POD
37、_INFRA_CONTAINER=-pod-infra-container-image=# Add your own! KUBELET_ARGS=啟動服務(wù)并設(shè)置開機自啟動rootk8s-master # systemctl enable kubelet.service rootk8s-master # systemctl start kubelet.service rootk8s-master # systemctl enable kube-proxy.service rootk8s-master # systemctl start kube-proxy.service查看狀態(tài):在master
38、上查看集群中節(jié)點及節(jié)點狀態(tài)rootk8s-master # kubectl -sget node NAMESTATUS AGEk8s-node-1 Ready 3m k8s-node-2 Ready 16srootk8s-master # kubectl get nodes NAMESTATUS AGEk8s-node-1 Ready 3m k8s-node-2 Ready 43s創(chuàng)建覆蓋網(wǎng)絡(luò)Flannel 安裝Flannel在master、node上均執(zhí)如下命令,進安裝rootk8s-master # yum install flannel -y配置Flannelmaster、node上均編
39、輯/etc/sysconfig/flanneld,修改紅色部分rootk8s-master # vi /etc/sysconfig/flanneld # Flanneld configuration options# etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS=# etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL
40、_ETCD_PREFIX=/atomic.io/network# Any additional options that you want to pass #FLANNEL_OPTIONS=配置etcd中關(guān)于flannel的keyFlannel使用Etcd進配置,來保證多個Flannel實之間的配置一致性,所以需要在etcd上進如下配置:(/atomic.io/network/config這個key與上文/etc/sysconfig/flannel中的配置項FLANNEL_ETCD_PREFIX是相對應的,錯誤的話啟動就會出錯)rootk8s-master # etcdctl mk /atom
41、ic.io/network/config Network: /16 Network: /16 啟動啟動Flannel之后,需要依次重啟docker、kubernete。在master執(zhí):systemctl enable flanneld.service systemctl start flanneld.service部署dashboard部署dashboard需要兩個費勁的鏡像注:正常來講只需要配置好yaml文件,需要事先 好鏡像到節(jié)點當中,也就是如果yaml配置文件內(nèi)所使用的鏡像在node中存在就會自動從docker源 ,但是我們現(xiàn)在使用的鏡像是沒有國內(nèi)源 的
42、,所以先 下來導入到每個node內(nèi)準備鏡像:國外 ,國內(nèi)導入核心操作:從外的服務(wù)上pull下來對應的鏡像,之后通過docker save保存成tar包,將tar包傳回國內(nèi),在每個node上執(zhí)docker load將鏡像導入(我在master上也倒入)。鏡像1:在dashboard.yaml中定義dashboard所用的鏡像:daocloud.io/daocloud/ _containers_kubernetes-dashboard-amd64:v1.6.1也可以選擇其他的版本注:這個鏡像我是從國內(nèi)源 的,每個節(jié)點都# docker pull daocloud.io/daocloud/ _con
43、tainers_kubernetes-dashboard- amd64:v1.6.1鏡像2:啟動k8s的pod還需要一個額外的鏡像:中,/etc/kubernetes/kubelet的配置),由于一些眾所周知的 ,這個鏡像在國內(nèi)是 下來的我先申請香港服務(wù)安裝doker,pull鏡像下來打tar包,但是香港服務(wù)scp到我本地的時候速度每次降到0,換服務(wù),我又申請美國的服務(wù)50K的速度下1個多小時,具體方法如下:美國服務(wù):# yum install docker -y # systemctl start docker# docker search pod-infrastructure /從找到的結(jié)
44、果中 一個其他版本的鏡像,原裝的能# docker pull docker.io/tianyebj/pod-infrastructure# docker save -o podinfrastructure.tar docker.io/tianyebj/pod-infrastructure本地 node1:service docker restartsystemctl restart kube-apiserver.service systemctl restart kube-controller-manager.service systemctl restart kube-scheduler.s
45、ervice在node上執(zhí):systemctl enable flanneld.service systemctl start flanneld.service service docker restartsystemctl restart kubelet.service systemctl restart kube-proxy.service# scp 美國服務(wù)IP:/podinfrastructure.tar /下來之后拷貝給所有node節(jié)點,然后導入:# docker load podinfrastructure.tar查看導入之后的鏡像# docker imagesREPOSITORY
46、TAGIMAGE IDCREATEDSIZEdaocloud.io/daocloud/_containers_kubernetes-dashboard-amd64 v1.6.1 71dfe833ce7410 months ago134 MBdocker.io/tianyebj/pod-infrastructurelatest34d3450d733b14 months ago 205 MB修改配置文件(每個節(jié)點都修改):# vim /etc/kubernetes/kubelet /修改下內(nèi)的鏡像名稱KUBELET_POD_INFRA_CONTAINER=-pod-infra-container-
47、image=docker.io/tianyebj/pod- infrastructure:latest重啟服務(wù)(每個節(jié)點都重啟):# systemctl restart kubeletmaster上編輯dashboard.yaml:任何目錄下都可以,注意或改以下紅色部分rootk8s-master /# vim dashboard.yaml apiVersion: extensions/v1beta1kind: Deployment metadata:# Keep the name in sync with image version and# gce/coreos/kube-manifest
48、s/addons/dashboard counterparts name: kubernetes-dashboard-latestnamespace: kube-system spec:replicas: 1 template:metadata:labels:k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service: truespec:containers:- name: kubernetes-dashboardimage: daocloud.io/daocloud/_containers_kuber
49、netes-dashboard- amd64:v1.6.1resources:# keep request = limit to keep this container in guaranteed class limits:cpu: 100mmemory: 50Mi requests:cpu: 100m memory: 50Miports:- containerPort: 9090 args:- -apiserver-host= livenessProbe:httpGet:path: / port: 9090initialDelaySeconds: 30timeoutSeconds: 30ma
50、ster上編輯dashboardsvc.yaml文件任何目錄下都可以:rootk8s-master /# vim dashboardsvc.yaml apiVersion: v1kind: Service metadata:name: kubernetes-dashboard namespace: kube-system labels:k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: truespec:selector:k8s-app: kubernetes-dashboard ports:- port: 80target
51、Port: 9090啟動在master執(zhí)如下命令:# kubectl create -f dashboard.yaml# kubectl create -f dashboardsvc.yamldashboard搭建完成。驗證命令驗證,master上執(zhí)如下命令:rootk8s-master /# kubectl get deployment -all-namespacesNAMESPACENAMEDESIREDCURRENTUP-TO-DATE AVAILABLEAGEkube-systemkubernetes-dashboard-latest111119srootk8s-master /# k
52、ubectl get svc -all-namespacesNAMESPACEdefault kube-systemNAMEkubernetes kubernetes-dashboardCLUSTER-IP 2EXTERNAL-IPPORT(S) 443/TCP80/TCPAGE4d 32srootk8s-master /# kubectl get pod -o wide -all-namespacesNAMESPACENAMERESTARTS AGEREADYSTATUSIPNODEkube-system kubernetes-dashboard-latest-1231782504-t79t7 1/1 1m k8s-node-2Running 0界面驗證,瀏覽:部署集群本地倉庫生產(chǎn)環(huán)境下,勢必能
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同中止協(xié)議書
- 財政系統(tǒng)面試試題及答案
- 2025年家用醫(yī)療器械市場品牌競爭策略與消費者需求變化趨勢分析報告
- 合作舞蹈合同協(xié)議書
- 搭建合同協(xié)議書
- 買墓地協(xié)議書合同范本
- 工程合同解約協(xié)議書
- 干部合同協(xié)議書
- 門窗合同雙方協(xié)議書樣板
- 食品產(chǎn)品供貨合同協(xié)議書
- 熱塑性聚酯彈性體(TPEE)
- 畢業(yè)論文機電一體化發(fā)展歷程及其面臨的形勢和任務(wù)
- 家具廠首件檢驗記錄表
- 《中小學綜合實踐活動課程指導綱要》教育部2022版
- 太上碧落洞天慈航靈感度世寶懺
- 國家標準硬度轉(zhuǎn)換表參考模板
- 輪胎式裝載機檢測報告(共5頁)
- 電子設(shè)備裝接工(高級)理論知識考核試卷一(共11頁)
- 彎矩二次分配法excel表-(1)
- 半導體分立器件制造公司績效制度范文
- 鐵板神數(shù)詳細取數(shù)法(共16頁)
評論
0/150
提交評論