游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

kubernetes快速安装部署指南

  一、部署环境说明
  1、节点操作系统:CentOSLinux7。3。1611;
  2、主机及角色(主机名基于hosts文件或dns服务解析):
  IP地址
  主机名
  节点角色
  172。16。0。69
  master,etcd1,registry
  master,etcd,privateregistry,chronyserver
  172。16。0。67
  node1。magedu。com
  node1
  172。16。0。68
  node2。magedu。com
  node2
  如果基于hosts文件解析主机名,各节点hosts文件内容如下:172。16。0。67node1。magedu。comnode1172。16。0。68node2。magedu。comnode2172。16。0。69master。magedu。commasteretcd1registry
  3、各节点通过chrony服务器完成时间同步;
  4、各节点关闭firewalld。service或iptables。service,并确保其不会自动启动;
  二、部署etcd
  2。1服务注册(ServiceRegistration)和服务发现(ServiceDiscovery)
  服务发现是大多数分布式系统或面向服务的架构中的核心组件之一,它的出现是用于解决此类环境中普遍面临的一个问题客户端如何获知运行于多个节点之上的服务的IP地址和端口?
  解决此类问题的方案有两个。一是静态配置,直接将服务的相关信息写入配置文件。然而,服务数量较大时其配置复杂度会指数级上升,更何况对于一个支持自动缩扩容的系统来说,其服务地址并非固定不变,此时就需要第二种解决方案:动态服务注册和发现。服务注册:服务进程将其信息写入中心注册表(centralregistry),这些信息通常包括IP地址、端口、认证标识、协议、版本号及其它环境信息;服务发现:客户端程序的相关进程查询中心注册表服务器,以获知目标服务的相关信息;
  通常情况下,多数服务发现解决方案还能够或者必须提供额外功能,例如服务健康状态监控、负载均衡、访问集成(整合多个语言客户端)、运行时依赖关系及可用性提升等。
  此类问题的解决方案有两类:一类是通用目的的实现,它们基于强一致性协议提供一致性数据存储,例如Zookeeper、etcd、Doozer和Consul等,它们不但可用于服务注册和服务发现,也常被用于服务协作中的其它多种功能,例如leaderelection,以及centralizedlocking等。
  另一类是专用实现,它们仅用于服务注册和服务发现,例如Airbnb的SmartStack、Netflix的Eureka、Bitly的NSQlookupd、Serf,以及SkyDNS等。
  2。2etcd概述
  etcdisanopensourcedistributedkeyvaluestorethatprovidessharedconfigurationandservicediscoveryforContainerLinuxclusters。etcdrunsoneachmachineinaclusterandgracefullyhandlesleaderelectionduringnetworkpartitionsandthelossofthecurrentleader。
  Applicationcontainersrunningonyourclustercanreadandwritedataintoetcd。Commonexamplesarestoringdatabaseconnectiondetails,cachesettings,featureflags,andmore。
  Etcdisahighlyavailable,keyvaluestoreforsharedconfigurationandservicediscovery。EtcdwasinspiredbyZookeeperandDoozer。ItswritteninGo,usesRaftforconsensusandhasaHTTPJSONbasedAPI。
  Etcdistypicallyrunwiththree,fiveorsevenmembersintheensemble。ClientsusealanguagespecificbindingorimplementoneusinganHTTPclient。
  ServiceregistrationreliesonusingakeyTTLalongwithheartbeatingfromtheservicetoensurethekeyremainsavailable。IfaservicesfailstoupdatethekeysTTL,Etcdwillexpireit。Ifaservicebecomesunavailable,clientswillneedtohandletheconnectionfailureandtryanotherserviceinstance。
  Servicediscoveryinvolveslistingthekeysunderadirectoryandthenwaitingforchangesonthedirectory。SincetheAPIisHTTPbased,theclientapplicationkeepsalongpollingconnectionopenwiththeEtcdcluster。
  SinceEtcdusesRaft,itshouldbeastronglyconsistentsystem。Raftrequiresaleadertobeelectedandallclientrequestsarehandledbytheleader。However,Etcdalsoseemstosupportreadsfromnonleadersusingthisundocumentedconsistentparameterwhichwouldimproveavailabiltyinthereadcase。Writeswouldstillneedtobehandledbytheleaderduringapartitionandcouldfail。
  2。3Kubernetes场景中的etcd部署方式
  开发或测试环境
  2。4部署etcd
  部署单节点etcd
  etcd程序包位于CentOS7的Extras仓库中,配置得当后,执行如下命令即可完成安装。
  master〕yuminstalletcd
  etcd服务需要提供kubernetes集群的所有节点,因此需要监听于可用于外部通信的地址。编辑etcetcdetcd。conf配置文件,修改如下选项的值中的localhost为合适的值即可,例如此示例中的master,即对应的IP地址172。16。0。69。
  〔member〕
  ETCDNAMEetcd1
  ETCDDATADIRvarlibetcddefault。etcd
  ETCDLISTENPEERURLShttp:master:2380
  ETCDLISTENCLIENTURLShttp:master:2379
  〔cluster〕
  ETCDINITIALADVERTISEPEERURLShttp:master:2380
  ETCDINITIALCLUSTERetcd1http:etcd1:2380
  ETCDINITIALCLUSTERSTATEnew
  ETCDINITIALCLUSTERTOKENetcdcluster
  ETCDADVERTISECLIENTURLShttp:master:2379
  上述的各选项的意义如下:ETCDNAME:当前节点的名称;ETCDLISTENCLIENTURLS:当前节点用于与etcd客户端通信的URL列表,彼此间以逗号分隔;ECTDADVERTISECLIENTURLS:当前节点向外通告的其用于与客户通信的URL列表;ETCDINITIALCLUSTER:用于etcd启动时初始化的集群配置;构建一个多节点的etcd集群时,需要让集群成员间通信的端口监听于对外通信的IP地址上,默认为localhost;以下两个选项可用于此配置;ETCDLISTENPEERURLS:listofURLstolistenonforpeertraffic。ETCDINITIALADVERTISEPEERURLS:listofthismemberspeerURLstoadvertisetotherestofthecluster。
  而后启动etcd服务即可。
  master〕systemctlstartetcd。service
  查看etcd集群成员列表:
  master〕etcdctlChttp:master:2379memberlist
  64d0398ed3861f26:nameetcd1peerURLshttp:172。16。0。69:2380
  clientURLshttp:master:2379isLeadertrue
  查看集群健康状态:
  master〕etcdctlChttp:master:2379clusterhealth
  member64d0398ed3861f26ishealthy:gothealthyresultfromhttp:master:2379
  etcdctl的各子命令及其功能:
  backup:backupanetcddirectory
  clusterhealth:checkthehealthoftheetcdcluster
  mk:makeanewkeywithagivenvalue
  mkdir:makeanewdirectory
  rm:removeakeyoradirectory
  rmdir:removesthekeyifitisanemptydirectoryorakeyvaluepair
  get:retrievethevalueofakey
  ls:retrieveadirectory
  set:setthevalueofakey
  setdir:createanewdirectoryorupdateanexistingdirectoryTTL
  update:updateanexistingkeywithagivenvalue
  updatedir:updateanexistingdirectory
  watch:watchakeyforchanges
  execwatch:watchakeyforchangesandexecanexecutable
  member:memberadd,removeandlistsubcommands
  user:useradd,grantandrevokesubcommands
  role:roleadd,grantandrevokesubcommands
  auth:overallauthcontrols
  help,h:Showsalistofcommandsorhelpforonecommand
  部署etcd集群
  etcd集群的启动方式支持三种机制:Static(静态):集群成员固定,初始化前直接指定成员主机URL即可;etcdDiscovery(etcd发现):集群成员地址不固定,此时可利用已经存在etcd集群来发现并创建一个新的集群,发现方式是etcd标识;DNSDiscovery(DNS发现):集群成员地址不固定,此时可利用已经存在etcd集群来发现并创建一个新的集群,发现方式是DNSSRVrecords;
  具体的配置过程,请参考官方文档。
  三、部署kubernetesmaster节点
  3。1master节点功能概述
  Kubernetesmaster包含三个核心组件:APIServer、Scheduler和ControllerManager,它们分别对应于一个要启动的服务,kubeapiserver、kubescheduler和kubecontrollermanager。
  APIServer:TheKubernetesAPIservervalidatesandconfiguresdatafortheapiobjectswhichincludepods,services,replicationcontrollers,andothers。TheAPIServerservicesRESToperationsandprovidesthefrontendtotheclusterssharedstatethroughwhichallothercomponentsinteract。Scheduler:TheKubernetesschedulerisapolicyrich,topologyaware,workloadspecificfunctionthatsignificantlyimpactsavailability,performance,andcapacity。Theschedulerneedstotakeintoaccountinpidualandcollectiveresourcerequirements,qualityofservicerequirements,hardwaresoftwarepolicyconstraints,affinityandantiaffinityspecifications,datalocality,interworkloadinterference,deadlines,andsoon。WorkloadspecificrequirementswillbeexposedthroughtheAPIasnecessary。ControllerManager:TheKubernetescontrollermanagerisadaemonthatembedsthecorecontrolloopsshippedwithKubernetes。Inapplicationsofroboticsandautomation,acontrolloopisanonterminatingloopthatregulatesthestateofthesystem。InKubernetes,acontrollerisacontrolloopthatwatchesthesharedstateoftheclusterthroughtheapiserverandmakeschangesattemptingtomovethecurrentstatetowardsthedesiredstate。ExamplesofcontrollersthatshipwithKubernetestodayarethereplicationcontroller,endpointscontroller,namespacecontroller,andserviceaccountscontroller。
  3。2部署master节点
  kubernetes由CentOS7。3。1611的Extras仓库提供,配置完成后使用如下命令即可完成安装。
  master〕yuminstallkubernetesmaster
  kubernetesmaster的配置文件位于etckubernetes目录下,主要修改的有两个:apiserver和config。
  配置apiserver,将各选项设定为符合环境的值:
  配置kubeapiserver监听的本机地址,配置多节点集群时,应该使用对外通信的地址
  KUBEAPIADDRESSinsecurebindaddress0。0。0。0
  配置kubeapiserver监听的商品,默认为8080
  KUBEAPIPORTport8080
  Portminionslistenon
  KUBELETPORTkubeletport10250
  配置kubernetes集群要使用的etcd集群的成员列表
  KUBEETCDSERVERSetcdservershttp:etcd1:2379
  集群内各service可使用的地址范围
  KUBESERVICEADDRESSESserviceclusteriprange10。254。0。016
  默认的管理控制策略
  KUBEADMISSIONCONTROLadmissioncontrolNamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota
  自定义的其它配置选项
  KUBEAPIARGS
  配置公共配置文件config,定义master访问接口
  配置错误日志记录方式
  KUBELOGTOSTDERRlogtostderrtrue
  指定日志级别,0表示debug
  KUBELOGLEVELv0
  设定本集群中是否允许运行特权docker容器
  KUBEALLOWPRIVallowprivilegedfalse
  配置controllermanager,scheduler和proxy访问master服务的接口;
  KUBEMASTERmasterhttp:master:8080
  3。3启动master节点
  此示例中,kubeapiserver、kubescheduler和kubecontrollermanager均运行于master节点,因此直接启动它们即可。
  master〕systemctlstartkubeapiserver。servicekubescheduler。service
  kubecontrollermanager。service
  四、部署Kubernetes集群的各Node
  Kubernetes集群的各节点用于运行容器,因此部署kubernetes的相关组件之前需要事先提供容器相关的环境(Containerruntime),例如docker。以下操作需要在各Node主机分别进行。
  4。1部署并启动Docker
  docker位于CentOS7。3。1611的Extras仓库中,配置好之后以如下命令即可安装。
  〕yuminstalldocker
  配置好docker的需自定义的选项后即可启动服务,例如私有仓库等。
  〕systemctlstartdocker。service
  4。2部署并启动Kubelet和KubernetesNetworkProxy
  Kubernetes集群的各node分别包含两个重要组件:Kubelet和KubernetesNetworkProxy,它们分别对应于一个服务kubelet和kubeproxy。kubelet:Thekubeletistheprimarynodeagentthatrunsoneachnode。ThekubeletworksintermsofaPodSpec。APodSpecisaYAMLorJSONobjectthatdescribesapod。ThekubelettakesasetofPodSpecsthatareprovidedthroughvariousmechanisms(primarilythroughtheapiserver)andensuresthatthecontainersdescribedinthosePodSpecsarerunningandhealthy。ThekubeletdoesntmanagecontainerswhichwerenotcreatedbyKubernetes。kubeproxy:TheKubernetesnetworkproxyrunsoneachnode。ThisreflectsservicesasdefinedintheKubernetesAPIoneachnodeandcandosimpleTCP,UDPstreamforwardingorroundrobinTCP,UDPforwardingacrossasetofbackends。ServiceclusteripsandportsarecurrentlyfoundthroughDockerlinkscompatibleenvironmentvariablesspecifyingportsopenedbytheserviceproxy。ThereisanoptionaladdonthatprovidesclusterDNSfortheseclusterIPs。TheusermustcreateaservicewiththeapiserverAPItoconfiguretheproxy。
  kubernetesnodes位于CentOS7。3。1611的Extras仓库中,配置好之后以如下命令即可安装。
  〕yuminstallkubernetesnode
  kubernetesnode的配置文件位于etckubernetes目录下,主要修改的有两个:kubelet和config。
  配置kubelet
  kubelet服务监听的IP地址(setto0。0。0。0orforallinterfaces)
  KUBELETADDRESSaddress0。0。0。0
  kubelet监听的端口
  KUBELETPORTport10250
  当前节点的主机名,留空表示使用本机的真实主机名
  KUBELETHOSTNAMEhostnameoverridenode1
  apiserver的访问接口
  KUBELETAPISERVERapiservershttp:master:8080
  podinfrastructurecontainer
  KUBELETPODINFRACONTAINERpodinfracontainerimageregistry。access。redhat。comrhel
  7podinfrastructure:latest
  按需定义的其它选项
  KUBELETARGS
  配置公共配置文件config,定义master访问接口
  配置错误日志记录方式
  KUBELOGTOSTDERRlogtostderrtrue
  指定日志级别,0表示debug
  KUBELOGLEVELv0
  设定本集群中是否允许运行特权docker容器
  KUBEALLOWPRIVallowprivilegedfalse
  配置controllermanager,scheduler和proxy访问master服务的接口;
  KUBEMASTERmasterhttp:master:8080
  4。3启动node的各服务
  此示例中,kubelet和kubeproxy要同时运行于Node节点,因此直接启动它们即可。
  master〕systemctlstartkubelet。proxykubeproxy。service
  五、集群测试
  5。1kubectl概述
  Kubernetes的APIServer是集群服务的访问入口,kubectl通过API与集群交互完成各种管理工具,因此,kubectl需要在管理集群之前知悉集群的访问入口,并拥有访问凭证(如果集群配置了验正和授权机制)。这些信息可以命令行选项给出,也可以通过配置文件kubeconfigfile设定。
  ClientaccesstoarunningKubernetesclustercanbesharedbycopyingthekubectlclientconfigbundle(kubeconfig)。ThisconfigbundlelivesinHOME。kubeconfig。
  Inordertoeasilyswitchbetweenmultipleclusters,akubeconfigfilewasdefined。Thisfilecontainsaseriesofauthenticationmechanismsandclusterconnectioninformationassociatedwithnicknames。Italsointroducestheconceptofatupleofauthenticationinformation(user)andclusterconnectioninformationcalledacontextthatisalsoassociatedwithanickname。
  例如,要了解指定集群中的节点信息,可使用如下命令进行。
  〕kubectlshttp:master:8080getnodes
  NAMESTATUSAGE
  node1Ready36m
  node2Ready34m
  查看集群运行状态,可使用如下命令进行。
  〕kubectlshttp:master:8080clusterinfo
  Kubernetesmasterisrunningathttp:master:8080
  Tofurtherdebuganddiagnoseclusterproblems,usekubectlclusterinfodump。
  5。2kubectl命令概览
  kubectl命令在线手册获取地址为https:kubernetes。iodocsuserguidekubectl。
  5。3测试于Kubernetes中运行容器
  kubectlrun命令能够创建并运行一个指定的可复制的镜像,它会自动创建一个deployment或者job来管理创建的容器。例如,创建一个交互登录的基于busybox镜像的容器bbox。
  〕kubectlshttp:master:8080runitbboximagebusybox
  查看集群中的部署(deployment)资源:
  〕kubectlshttp:master:8080getdeployments
  NAME
  DESIRED
  CURRENT
  UPTODATE
  AVAILABLE
  AGE
  bbox
  1hr1hr1hr1hr1m
  查看集群中启动的Pod:
  〕kubectlshttp:master:8080getpods
  NAME
  READY
  STATUS
  RESTARTS
  AGE
  bbox4272330656t6pzw
  11
  Running
  0hr2m
  也可以以yaml格式查看启动的Pod的详细格式的信息:
  〕kubectlshttp:master:8080getoyamlpods
  hostIP:172。16。0。67
  phase:Running
  podIP:172。17。0。2
  startTime:20170731T10:32:44Z
  kubectldelete命令可用于删除集群中的资源,例如此前使用kubectlrun命令自动创建的
  deployment类型的资源bbox,可使用如下命令:
  〕kubectlshttp:master:8080deletedeploymentbbox
  deploymentbboxdeleted
  六、Kubernetes的网络功能
  6。1Docker网络模型存在的问题
  WithDocker,eachcontainerisassignedanIPaddressthatcanbeusedtocommunicatewithothercontainersonthesamehost。Forcommunicatingoveranetwork,containersaretiedtotheIPaddressesofthehostmachinesandmustrelyonportmappingtoreachthedesiredcontainer。ThismakesitdifficultforapplicationsrunninginsidecontainerstoadvertisetheirexternalIPandportasthatinformationisnotavailabletothem。
  6。2Kubernetes网络模型
  Kubernetes需要其原子组件Pod彼此间可直接通信,无论它们位于集群中的哪台主机之上。因此,每个Pod必须拥有一个可路由的IP地址,相互间无须NAT或端口映射即可进行数据交换。这有别于Docker的网络模型,使用默认网络模型的两个Docker主机无满足此类需求。同时,同一个Pod内部的各容器间可直接通过loopback接口进行通信,例如同一pod内部的tomcat容器可直接经由lo接口访问mariadbserver容器上的数据。这种模型中,Pod类似于IaaS架构中的VM,同一VM上运行的多个application极容易迁移至Pod的容器上,且各Pod之间的通信也类似于各VM之间的通信。
  KubernetesPAUSEcontainer
  Kubernetes的每个Pod中均存在一个名为PAUSE的容器,它持有Pod的IP地址等网络属性,并将网络名称空间共享给当前Pod中的其它容器,这些容器是Pod的joined网络类型的容器。
  在Pod内部,每个容器以映射容器(mappedcontainer)模型连接至PAUSE容器,通信过程中,目标地址为PodIP地址的流量首先到达PAUSE容器,而后再由PAUSE容器转发至后端的一个或多个容器。此种模型中,PAUSE容器也被称作目标容器(targetcontainer),而其它容器被称为源容器(sourcecontainer)。
  概括来讲,Kubernetes的网络模型中存在四种通信模式:同一Pod内部的容器间通信:籍由同一网络名称空间中的lo接口进行;Pod间的通信:同一Kubernetes集群中的所有Pod拥有同一IP网络中的地址,Pod彼此间可通过IP地址直接通信;Pod与Service间的通信:Service的核心是VIP,它能够直接接受客户端的请求,并将请求代理至与此服务关联的各Pod;其过程是到达Service的请求被发往各Node主机的kubeproxy进程,并由其路由至相关的Pod;来自集群外部的访问:集群中的节点拥有公网IP(ExternalIP)地址时,Kubernetes可将服务暴露至此些IP地址;到此些IP地址上的服务端口的访问流量会被路由至Service的端点,而后由kubeproxy转发至目标Pod;ExternalIP非由Kubernetes
  管理,管理员需要完成此工作;
  Kubernetes网络解决方案
  Kubernetes虽然设计了网络模型,但它自己并不实现此功能,而是借助于第三方解决解决方案,例如Flannel、Calico、Weave、OpenContrail、CiscoContiv和OpenVSwitch等等。
  Flannel
  FlannelisaverysimpleoverlaynetworkthatsatisfiestheKubernetesrequirements。FlannelisavirtualnetworksolutionmaintainedbytheCoreOSproject。Itsawelltested,productionreadysolution,soithasthelowestsetupcost。
  ProjectCalico
  Calicoisanewapproachtovirtualnetworkingandnetworksecurityforcontainers,VMs,andbaremetalservices,thatprovidesarichsetofsecurityenforcementcapabilitiesrunningontopofahighlyscalableandefficientvirtualnetworkfabric。CalicoincludespreintegrationwithKubernetesandMesos(asaCNInetworkplugin),Docker(asalibnetworkplugin)andOpenStack(asaNeutronplugin)。Calicosupportsabroadrangeofdeploymentoptionsincludingonpremiseorpubliccloud(AWS,GCE,etc)providingthesamerichsetoffeaturesacrossall。
  Contiv
  Contivisaopensourcecontainernetworkingandpolicyfabricforheterogeneousdockercontainerdeploymentsacrossvirtualmachines,baremetal,andpublicorprivateclouds。Astheindustrysmostpowerfulcontainernetworkingfabric,Contiv,withitsLayer2,Layer3,overlayACImodes,nativelyintegrateswithCiscoinfrastructureandmapstheapplicationintentwiththeinfrastructurecapabilitiesusingrichnetworkingandsecuritypolicies。
  6。3叠加网络flannel概述
  Flannel是由CoreOS项目维护的虚拟网络解决方案,它是能够满足Kubernetes网络模型需求的极简洁实现方式,但经由充分测试且可用于生产环境,部署代价极低。
  运行时,Flannel需要首先确定自己使用的网络地址,例如10。1。0。016,而后为集群中的每个Docker主机分配一个子网,例如10。1。15。024或10。1。20。024等,Docker主机将此子网地址作为本机上运行的容器的可用地址池。
  同一Docker主机上的Pod间通信通过docker0桥即可直接进行,而跨Docker主机的Pod间通信时,Pod的报文经由本机上的flannel桥隧道转发其目标网络所在的Docker主机的flannel桥,并到达目标网络,而后由目标Pod接收。如下图所示。
  Flannel将虚拟IP和主机地址的映射关系存于etcd中,运行于各主机上的flanneld进程负责监控etcd中与当前主机相关的配置信息,并完成报文路由。
  6。4安装flannel
  flannel需要运行于集群的各节点,包括master主机和各Node主机。flannel程序包位于CentOS7。3。1611的Extras仓库中,配置好之后在各主机以如下命令即可完成安装。
  〕yuminstallflannel
  6。5配置flannel
  flannel需要基于etcd存储数据,配置其使用etcd服务的URL。配置文件为etcsysconfigflanneld。配置详情如下所示。
  etcd服务器URL列表
  FLANNELETCDENDPOINTShttp:etcd1:2379
  flannel向etcd查询网络地址池相关的配置时使用的key,其值需要手动创建
  FLANNELETCDPREFIXatomic。ionetwork
  传递flanneld程序的其它选项
  FLANNELOPTIONS
  6。6在etcd配置flanneld使用的地址池
  〕etcdctlChttp:etcd1:2379mkatomic。ionetworkconfig{Network:10。99。0。016}
  {Network:10。99。0。016}
  6。7启动flanneld,并重启各服务
  在master主机启动flanneld服务。
  〕systemctlstartflanneld。service
  在各Node主机上启动flanneld服务,并重启docker服务即可完成配置。
  〕systemctlstartflanneld。service
  〕systemctlrestartdocker。service
  6。8测试
  启动多个Pod,查看其启动的主机及获得的IP地址,并测试各Pod中的容器间的连通性即可。测试方法参考上文第5部分。
  七、KubernetesDashboard
  7。1KubernetesDashboard概述
  KubernetesDashboardisageneralpurpose,webbasedUIforKubernetesclusters。Itallowsuserstomanageapplicationsrunningintheclusterandtroubleshootthem,aswellasmanagetheclusteritself。
  7。2部署KubernetesDashboard
  KubernetesDashboard的镜像位于gcr。io(GoogleContainersRegistry),此站点在GFW的转名单列表中,无法在国内直接访问,因此简单按照官方的文档进行部署。不过,好在有人将gcr中的镜像同步到了dockerhub中,例如docker。iomritdkubernetesdashboardamd64,部署时只需简单地将KubernetesDashboard提供的部署文件中的镜像改动一下即可。
  Kubernetes1。5部署dashboard
  首先确保集群中没有运行中dashboard实例:
  〕kubectlgetpodsallnamespacesgrepdashboard
  而后下载部署文件https:git。iokubedashboardnorbac,并修改其内容如下所示:
  接着使用此文件创建Service和Pod即可。
  〕kubectlshttp:master:8080createf。kubedashboardnorbac
  查看创建的服务:
  〕kubectlshttp:master:8080getservices
  NAME
  CLUSTERIP
  EXTERNALIP
  PORT(S)
  AGE
  kubernetes
  10。254。0。1
  443TCP
  4h
  通过master主机的URL(ui)即可访问Dashboard。例如,打开浏览器,键入如下地址。http:masterip:8080ui
  Kubernetes1。6部署dashboard
  请参考https:github。comkubernetesdashboard中给出的说明。
  八、Kubernetes监控系统
  8。1cAdvisor概述
  cAdvisor(ContainerAdvisor)providescontainerusersanunderstandingoftheresourceusageandperformancecharacteristicsoftheirrunningcontainers。Itisarunningdaemonthatcollects,aggregates,processes,andexportsinformationaboutrunningcontainers。Specifically,foreachcontaineritkeepsresourceisolationparameters,historicalresourceusage,histogramsofcompletehistoricalresourceusageandnetworkstatistics。Thisdataisexportedbycontainerandmachinewide。
  cAdvisorhasnativesupportforDockercontainersandshouldsupportjustaboutanyothercontainertypeoutofthebox。Westriveforsupportacrosstheboardsofeelfreetoopenanissueifthatisnotthecase。cAdvisorscontainerabstractionisbasedonlmctfyssocontainersareinherentlynestedhierarchically。
  cAdvisor是开源容器资源占用率及性能分析agent,其设计目标即为容器监控,并原生支持Docker容器。cAdvisor会自动发现当前主机上的所有容器,并收集CPU、内存、文件系统和网络资源占用率相关的数据,甚至可收集当前主机的所有监控数据。
  实践中,cAdvisor运行于Kubernetes集群中的各主机上,收集、聚合、处理及导出当前主机上各容器的相关监控数据。Kubernetes新近的版本已经将cAdvisor功能集成到kubelet程序中。cAdvisor内嵌了WebUI,并通过http::输出,它默认监听于tcp协议的4194端口,因此可通过各节点的http::4194直接访问。
  不过,cAdvisor的WebUI仅能显示当前节点上各容器的相关数据,如果需要集成多个主机上的cAdvisor数据于一个系统中,可以使用HeapSter。,因此cAdvisor常作为HeapSter的agent使用。
  8。2HeapSter概述
  Heapsterisaclusterwideaggregatorofmonitoringandeventdata。ItcurrentlysupportsKubernetesnativelyandworksonallKubernetessetups。Heapsterrunsasapodinthecluster,similartohowanyKubernetesapplicationwouldrun。TheHeapsterpoddiscoversallnodesintheclusterandqueriesusageinformationfromthenodesKubelets,theonmachineKubernetesagent。TheKubeletitselffetchesthedatafromcAdvisor。Heapstergroupstheinformationbypodalongwiththerelevantlabels。Thisdataisthenpushedtoaconfigurablebackendforstorageandvisualization。Theoverallarchitectureoftheservicecanbeseenbelow:
  实践中,可将数据存储于InfluxDB,并通过Grafana进行展示。
  InfluxDBisanopensourcedatabasewritteninGospecificallytohandletimeseriesdatawithhighavailabilityandhighperformancerequirements。ItexposesaneasytouseAPItowriteandfetchtimeseriesdata。HeapsterissetuptouseInfluxDBasthestoragebackendbydefaultonmostKubernetesclusters。
  Grafanaisthedatavisualizationcomponentinourmonitoringsetup。ItisavailableoutoftheboxinaKubernetescluster。Thedefaultdashboarddisplaysresourceusageoftheclusterandthepodsinsideofit。Thisdashboardcaneasilybecustomizedandexpanded。
  InfluxDBandGrafanaalreadyruninpodsexposingthemselvesasKubernetesservices,makingiteasyforHeapstertodiscoverthem。Withallofthisalreadyinplace,thereisminimalsetuprequiredtogetthingsupandrunning。
  HeapSter是容器集群监控和性能分析工具,其设计上原生支持Kubernetes和CoreOS,也可很容易地扩展为支持其它集群的监控。Heapster收集并解析诸多数据指标,例如资源利用率、生命周期事件等,并将其通过REST端点输出为ClusterMetrics。Heapster监听于tcp协议的10025端口。
  DNS有两种配置方式,在1。3之前使用etcdkube2skyskydns的方式,在1。3之后可以
  使用kubednsdnsmasq的方式。
  参考文献:
  http:networkinsight。net201606kubernetesnetworking101
  https:coreos。comkubernetesdocslatestkubernetesnetworking。html

20256G大存储,6。92英寸屏下技术,中兴性价比强机上线随着时间的推移,高通公司即将新一代骁龙898处理器,该处理器会采用4nm制程工艺制造而成。无论是哪一方面,这款处理器都会比上一代骁龙888要强。随着这款处理器即将出世,手机市场……谷歌第一次用上12GB内存?Pixel6Pro这款产品的消息很多的小伙伴都是比较的漠然的吧,不少的人都是比较的好奇这款产品的消息的吧,那么我们一起来看看最新的一个信息吧!说不定还有惊喜呢!据悉,Ge……一加9Pro哈苏影像120Hz,12256GB再降700,值在如今这个高端旗舰如此密集的市场,如何做到脱颖而出才是手机品牌厂商们最应考虑的问题。对于一部高质量手机来说,至少也要做到外观设计有辨识度,颜值也要在线,而且在性能以及影像上也不……工信部再发新规!微信淘宝终于要打通了不准屏蔽任何外部链接【9月12日讯】相信大家都知道,国内很多互联网企业巨头,旗下的APP应用一直都是处于相互屏蔽状态,这也让很多用户体验并不是很好,例如很多消费者在某宝上看中了一件商品,想要将相关……确定!iPhone13即将发布,你要的信息都在这里9月15日凌晨1点,就是科技界春晚苹果秋季发布会,大家心心念念的iPhone13就要登场了。相比往年的各种无脑猜,今年果粉更机智了,直接跑到旗舰店找客服求剧透,可把苹果客……腾讯回应60岁老人凌晨三点打排位17次人脸识别均通过此前,一张60岁花甲老太太,凌晨三点排位用赵云拿五杀,让腾讯陷入沉思的朋友圈截图在网上流传,引发网友热议。9月9日,腾讯成长守护平台就此事作出回应。腾讯成长守护平台称,关……如果原子99。99为空,为什么大部分物体不透明?这个问题的前提都是原子的内部空间十分空旷,我们先说下这个想法是否正确,然后再分两个部分回答物体为什么不透明?和我们为啥为啥对物体有触感?原子内部是否空旷首先,原子内部几乎……麒麟芯片耗尽,5G被封,华为能否再战?莫慌,任正非早有两大准相信大家都知道,无论是华为新发布的P50系列还是上线的多款旧终端,大多都是搭载高通骁龙芯片,仅有P50Pro采用麒麟9000芯片。而近日,又有媒体爆料,华为即将发布的nova9……python安装教程(mac版)python安装步骤python安装步骤详解一、安装python3。x步骤:1。首先检查下自己的电脑是否安装了python3尝试在终端输入以下代码(第一行为输入的代码,第二行为返回的结……上市即破发,理想陷入产品围城理想汽车今日正式登陆港交所,平开后走低,盘中跌破118港元股的发行价,截至发稿,跌幅为1。36,成交额近3亿港元。距离在美上市仅仅过去一年左右的时间,小鹏汽车、理想汽车先……微信开通借条新功能!再也不用催人还钱啦作为一款国民级的社交软件,微信最近的动作不少。比如:暂停个人微信帐号新用户注册、腾讯电子签小程序上线小借条功能、安卓端终于支持手机、电脑、iPad三设备登录等,也引发了人……为什么有人专门到山区农村免费送净水器,为什么免费送?一些爱心人士去山区农村免费送净水器,是义举和善心的体现。他们如同雪中送碳,可以有效改善和解决一些山村水质不佳的问题。为什么免费送?如果是商家行为,也不排除作免费广告、宣传……
让你选大陆3位最有战略眼光的企业家,你会选谁?理由是什么?所谓战略眼光,就是能够把握市场未来的发展方向,从而为公司的发展寻找出商机。比如在上世纪90年代,互联网刚开始起步之时,就有一批企业家就投入这个领域。再如,在本世纪初功能机称霸天……为什么录音比自己真实声音难听?谢邀!为什么录音比自己真实声音难听?因为,录音和现实听到的自己的声音原本就是两种声音,这两种声音的构成成分本身就是不同的,听起来自然也不一样。至于说录音听起来……马化腾宣布探星计划李彦宏称百度智能汽车两三年内面世世界人工智哦,你上面提到的这两位著名的成功企业家,他们都具有展开相应的科研创新项目的独特的组织管理及研发能力,他们的企业也都汇聚了大批专业从事创新研发的高端人才,在人才智力、企业文化、内……一日一技协程与多进程的完美结合我们知道,协程本质上是单线程单进程,通过充分利用IO等待时间来实现高并发。在IO等待时间之外的代码,还是串行运行的。因此,如果协程非常多,多少每个协程内部的串行代码运行时间超过……热门中概股盘前走高哔哩哔哩(BILI。US)涨超114月4日(周一)美股盘前,热门中概股多数上涨。截至发稿,哔哩哔哩(BILI。US)涨超11,爱奇艺(IQ。US)涨超9,滴滴(DIDI。US)、拼多多(PDD。US),贝壳(B……iOS14。5。1出现随机降频,固件更新可能是一把双刃剑写本文的时候,iOS已经开始向开发者推送了第一个版本的iOS14。7测试版。同时,iOS的稳定版暂时维持在14。5。1,且已经关闭了iOS14。5版本的验证,而正式版iOS14……LCD永不为奴红米Note10系列采用120Hz高刷屏,硬件随着发布日期的临近,现在关于红米Note10系列的相关信息已经越来越多了,其实现在已经可以确定手机的表现如何,最关键的就看在发布会上会公布出什么价格,以此来决定值不值得买。现在……关于币圈的六个传说马斯克、木头姐站队比特币01:我是中本聪2017年8月,一个ID叫BitcoinPizza的新用户悄然入驻推特,每天都会根据当天币价实时播报10000枚比特币值多少……我先生要花2万5千多买一个单反相机,我反对有错吗?富人买一只二万五干相机,小菜一碟。穷人就沒必要了,想当初,我年轻时低收入连海鸥照相机都买不起,想出去游玩,到照像馆里去租借。现在我的邻居好朋友,年近70岁,家中有高档相机带长镜……FF被指造车骗局,贾跃亭收到美国退市警告11月26日,贾跃亭收到美国退市警告登上微博热搜,具体内容为贾跃亭创立的法拉第未来被指控造车骗局,并收到了一份来自美国证券交易委员会发出的退市警示函,FF存在被退市的可能。……第三方测评夹杂利益考量回归公允中立需疏堵结合来源:科技日报第三方测评夹杂利益考量回归公允中立需疏堵结合胡麒牧数字经济智库高级研究员、中钢经济研究院首席研究员日前,有媒体调查指出,第三方测评行业鱼龙混杂,……快递进村年底全省全覆盖11月26日,山东商报速豹新闻网记者从山东省政府网站获悉,省政府办公厅印发《关于加快农村寄递物流体系建设的实施方案的通知》,确保2021年底山东省在全国率先实现快递进村全覆盖,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网