




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4公有云容器化部署公有云综合运维知识目标学习目标技能目标学习目标
认识云原生技术栈相关技术的使用。掌握kubernetes云平台部署。掌握kubernetes的基础知识。掌握kubernetes部署应用系统的流程。4.1公有云上原生Kubernetes云平台部署4.2基于Kubernetes集群的博客系统部署与运维目录CONTENTS目录4.3基于公有云容器平台的博客系统部署与运维4.1公有云上原生Kubernetes云平台部署1.掌握容器技术的架构2.掌握Kubernetes的含义任务描述任务4.13.掌握容器的操作流程4.掌握Kubernetes搭建流程1.Docker容器技术Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。同时Docker也提供了一种将应用程序安全,隔离运行的一种方式,能够将应用程序依赖和库文件打包在一个容器中,后续再任何地方运行起来即可,其包含了应用程序所依赖相关环境,一次构建,任意运行(buildonce,runanywhere),Docker的架构如图4-1-1所示。知识学习任务4.11.Docker容器技术Docker组成:DockerDaemon:容器管理组件,守护进程,负责容器,镜像,存储,网络等管理DockerClient:容器客户端,负责和DockerDaemon交互,完成容器生命周期管理DockerRegistry:容器镜像仓库,负责存储,分发,打包DockerObject:容器对象,主要包含container和images容器的优势与挑战:知识学习任务4.12.kubernetes简介与功能Kubernetes是google开源的一套微服务,容器化的编排引擎,提供容器化应用的自动化部署,横向扩展和管理,是google内部容器十多年实战沉淀的结晶,已战胜Swarm,Mesos成为容器编排的行业标准。kuberntes内置有很多非常优秀的特性使开发者专注于业务本身,其包含的功能如下:知识学习任务4.12.kubernetes简介与功能Servicediscoveryandloadbalancing:服务发现和负载均衡,通过DNS实现内部解析,service实现负载均衡。Storageorchestration:存储编排,通过plungin的形式支持多种存储,如本地,nfs,ceph,公有云块存储等。Automatedrolloutsandrollbacks:自动发布与回滚,通过匹配当前状态与目标状态一致,更新失败时可回滚。Automaticbinpacking:自动资源调度,可以设置pod调度的所需(requests)资源和限制资源(limits)。Self-healing:内置的健康检查策略,自动发现和处理集群内的异常,更换,需重启的pod节点。Secretandconfigurationmanagement:密钥和配置管理,对于敏感信息如密码,账号的那个通过secret存储,应用的配置文件通过configmap存储,避免将配置文件固定在镜像中,增加容器编排的灵活性。Batchexecution:批处理执行,通过job和cronjob提供单次批处理任务和循环计划任务功能的实现。Horizontalscaling:横向扩展功能,包含有HPA和AS,即应用的基于CPU利用率的弹性伸缩和基于平台级的弹性伸缩,如自动增加node和删除nodes节点。知识学习任务4.13.kubernetes架构解析kubernetes包含两种角色:master节点和node节点,master节点是集群的控制管理节点,作为整个k8s集群的大脑,负责集群所有接入请求(kube-api-server),在整个集群的入口;(三个主要功能)。集群资源调度(kube-controller-scheduler),通过watch监视pod的创建,负责将pod调度到合适的node节点;资源调度。集群状态的一致性(kube-controller-manager),通过多种控制器确保集群的一致性,包含有NodeController,ReplicationController,EndpointsController等。元数据信息存储(etcd),主要用于存储kubernetes集群状态的数据;存储node节点和四个角色的状态数据。云控制器管理器(cloud-ccontroller-manager),主要用于公有云的集成。知识学习任务4.13.kubernetes架构解析node节点是实际的工作节点,负责集群负载的实际运行,即pod运行的载体,其通常包含三个组件:ContainerRuntime,kubelet和kube-proxyContainerRuntime:是容器运行时,负责实现container生命周期管理,如docker,containerd,rktlet;Kubelet:负责镜像和pod的管理,kube-proxy:是service服务实现的抽象,负责维护和转发pod的路由,实现集群内部和外部网络的访问。知识学习任务4.14.华为云公有云容器发展作为容器最早的采用者之一,华为自2013年起就在内部多个产品落地容器技术,2014年开始广泛使用Kubernetes。云原生2.0,企业云化从“ONCloud”走向“INCloud”,生于云、长于云且立而不破。智能升级新阶段,赋能“新云原生企业。云原生2.0是企业智能升级的新阶段,企业云化从“ONCloud”走向“INCloud“,成为”新云原生企业“。知识学习任务4.15.云原生基础设施云容器引擎(CloudContainerEngine,简称CCE)云容器实例(CloudContainerInstance,简称CCI)容器镜像服务(SoftwareRepositoryforContainer,简称SWR)容器安全服务(ContainerGuardService,CGS)智能边缘平台(IntelligentEdgeFabric,简称IEF)多云容器平台(Multi-CloudContainerPlatform,简称MCP)应用服务网格(ApplicationServiceMesh,简称ASM)知识学习任务4.16.云原生应用赋能应用敏捷软件开发平台(DevCloud)应用管理与运维平台(ServiceStage)应用与数据集成平台(ROMAConnect)分布式消息服务(Kafka)函数工作流(FunctionGraph)业务智能AI开发平台(ModelArts)云数据库(GaussDB)数据湖治理中心(DGC)安全可信数据安全中心服务(DSC)企业主机安全服务(HSS)态势感知(SA)Anti-DDoS流量清洗服务(Anti-DDoS)知识学习任务4.17.云容器引擎的优势云容器引擎(CloudContainerEngine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序,其架构如图如图4-1-5所示。知识学习任务4.17.云容器引擎的优势云容器引擎深度整合华为云高性能的计算(ECS/BMS)、网络(VPC/EIP/ELB)、存储(EVS/OBS/SFS)等服务,并支持GPU、NPU、ARM、FPGA等异构计算架构,支持多可用区(Availablezone,简称AZ)、多区域(Region)容灾等技术构建高可用Kubernetes集群,其架构如4-1-6所示。知识学习任务4.1任务实施任务4.1
1.云主机部署kubernetes(1)环境说明和准备①设置主机名,其他两个节点类似设置[root@kubernetes-1-0001~]#hostnamectlset-hostnamenode-1[root@kubernetes-1-0001~]#bash②设置hosts文件,并将文件远程复制到node-2和node-3[root@node-1~]#vim/etc/hosts28node-192node-243node-3[root@node-1~]#scp/etc/hostsnode-2:/etc/[root@node-1~]#scp/etc/hostsnode-3:/etc/任务实施任务4.1
1.云主机部署kubernetes(1)环境说明和准备③设置SSH无密码登录,并通过ssh-copy-id将公钥拷贝到node-2和node-3[root@node-1~]#ssh-keygen[root@node-1~]#ssh-copy-idnode-2[root@node-1~]#ssh-copy-idnode-3④三个节点关闭防火墙和设置为开机不启用[root@node-1~]#systemctlstopfirewalld[root@node-1~]#systemctldisablefirewalld⑤三个节点修改selinux[root@node-1~]#setenforce0[root@node-1~]#getenforceDisabled任务实施任务4.1
1.云主机部署kubernetes(2)三台节点安装Docker环境①下载docker和centos的yum源文件[root@node-1~]#curl-o/etc/yum.repos.d/dockerce.repo/dockerce/linux/centos/docker-ce.repo[root@node-1~]#curl-o/etc/yum.repos.d/CentOSBase.repo/repo/Centos7.repo②将docker和centos的yum源文件远程复制到node-2和node-3[root@node-1~]#scp/etc/yum.repos.d/docker-ce.reponode-2:/etc/yum.repos.d/[root@node-1~]#scp/etc/yum.repos.d/docker-ce.reponode-3:/etc/yum.repos.d/[root@node-1~]#scp/etc/yum.repos.d/CentOS-Base.reponode-2:/etc/yum.repos.d/[root@node-1~]#scp/etc/yum.repos.d/CentOS-Base.reponode-3:/etc/yum.repos.d/任务实施任务4.1
1.云主机部署kubernetes(2)三台节点安装Docker环境③三个节点分别安装docker[root@node-1~]#yuminstalldocker-ce-19.03.8dockerce-cli-19.03.8containerd.io-1.2.13-y[root@node-1~]#systemctlrestartdocker&&systemctlenabledocker[root@node-1~]#systemctlstatusdocker④查看docker的版本[root@node-1~]#dockerversion任务实施任务4.1
1.云主机部署kubernetes(2)三台节点安装Docker环境⑤三个节点分别修改docker的CgroupDriver为system[root@node-1~]#cat>/etc/docker/daemon.json<<EOF{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size":"100m"},"storage-driver":"overlay2","storage-opts":["overlay2.override_kernel_check=true"]}EOF[root@node-1~]#scp/etc/docker/daemon.jsonroot@node-2:/etc/docker/daemon.json[root@node-1~]#scp/etc/docker/daemon.jsonroot@node-3:/etc/docker/daemon.json[root@node-1~]#systemctlrestartdocker[root@node-1~]#dockerinfo|grepCgroupCgroupDriver:systemd任务实施任务4.1
1.云主机部署kubernetes(3)三个节点安装kubeadm组件①三个节点安装kubernetes源,国内可以使用阿里的kubernetes源,速度会快一点[root@node-1~]#cat<<EOF>/etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=/kubernetes/yum/doc/yum-key.gpg/kubernetes/yum/doc/rpmpackage-key.gpgEOF
[root@node-1~]#scp/etc/yum.repos.d/kubernetes.reponode-2:/etc/yum.repos.d/kubernetes.repo[root@node-1~]#scp/etc/yum.repos.d/kubernetes.reponode-3:/etc/yum.repos.d/kubernetes.repo任务实施任务4.1
1.云主机部署kubernetes(3)三个节点安装kubeadm组件②三个节点安装kubeadm,kubelet,kubectl,会自动安装几个重要依赖包:socat,cri-tools,cni等包[root@node-1~]#yuminfokubeadmkubectlkubelet-y[root@node-1~]#yuminstallkubeadmkubectlkubelet-y③设置iptables网桥参数[root@node-1~]#cat<<EOF>/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1EOF[root@node-1~]#scp/etc/sysctl.d/k8s.confnode2:/etc/sysctl.d/k8s.confk8s.conf[root@node-1~]#scp/etc/sysctl.d/k8s.confnode3:/etc/sysctl.d/k8s.confk8s.conf任务实施任务4.1
1.云主机部署kubernetes(3)三个节点安装kubeadm组件④三个节点重新启动kubelet服务,使配置生效[root@node-1~]#sysctl--system,然后使用sysctl-a|grep参数的方式验证是否生效[root@node-1~]#sysctl-a|grepnet.bridge.bridge-nf[root@node-1~]#systemctlrestartkubelet[root@node-1~]#systemctlenablekubelet任务实施任务4.1
1.云主机部署kubernetes(4)kubeadm初始化集群①kubeadm初始化集群,需要设置初始参数。pod-network-cidr指定pod使用的网段,设置值根据不同的网络plugin选择,本文以flannel为例设置值为/16。[root@node-1~]#kubeadminit--pod-network-cidr/16任务实施任务4.1
1.云主机部署kubernetes(5)三节点添加到kubernetes集群①三台节点⽣成kubectl环境配置⽂件[root@node-1~]#mkdir-p$HOME/.kube[root@node-1~]#sudocp-i/etc/kubernetes/admin.conf$HOME/.kube/config[root@node-1~]#sudochown$(id-u):$(id-g)$HOME/.kube/config[root@node-1~]#vi/root/.kube/config[root@node-1~]#vikubeinit.txt(kubeadminit初始化后自动生成)kubeadmjoin0:6443--tokenuyubnf.5lkvfanjz1n4vtdm\--discovery-token-ca-cert-hashsha256:ec56eb59b6f592aa076f71bf2dd18e6ede3c0201cfa2d12993c3babb1aa8f549查看集群中node节点[root@node-1~]#kubectlgetnodes任务实施任务4.1
1.云主机部署kubernetes(5)三节点添加到kubernetes集群在node-2和node-3节点执行命令将这两个节点node加入:[root@node-2~]#kubeadmjoin0:6443--tokenuyubnf.5lkvfanjz1n4vtdm\>--discovery-token-ca-cert-hashsha256:ec56eb59b6f592aa076f71bf2dd18e6ede3c0201cfa2d12993c3babb1aa8f549[root@node-3~]#kubeadmjoin0:6443--tokenuyubnf.5lkvfanjz1n4vtdm\>--discovery-token-ca-cert-hashsha256:ec56eb59b6f592aa076f71bf2dd18e6ede3c0201cfa2d12993c3babb1aa8f549在node-1节点查看node节点情况:[root@node-1~]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONnode-1NotReadymaster22mv1.18.5node-2NotReady<none>68sv1.18.5node-3NotReady<none>63sv1.18.5任务实施任务4.1
1.云主机部署kubernetes(5)三节点添加到kubernetes集群②在node-1节点下载calico的yaml文件并执行[root@node-1~]#wget/v3.14/manifests/calico.yaml[root@node-1~]#kubectlapply-fcalico.yaml安装完calico插件以后,三个节点的状态变为Ready状态[root@node-1~]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONnode-1Readycontrol-plane,master4m56sv1.21.1node-2Ready<none>2m30sv1.21.1node-3Ready<none>2m24sv1.21.14.2基于Kubernetes集群的博客系统部署与运维1.掌握Kubernetes的架构2.掌握Kubernetes创建业务的流程任务描述任务4.2
1.Kubernetes定义Kubernetes可以把大量的服务器看做一台巨大的服务器,在一台大服务器上面运行应用程序。无论Kubernetes的集群有多少台服务器,在Kubernetes上部署应用程序的方法永远一样,如图4-2-1所示。知识学习任务4.2
2.Kubernetes集群架构Kubernetes集群包含master节点和node节点,应用部署在node节点上,且可以通过配置选择应用部署在某些特定的节点上。Kubernetes集群的架构如图4-2-2所示:知识学习任务4.2
任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维①新建namespace[root@master~]#kubectlcreatenamespaceblognamespace/blogcreated②创建MySQL的Deployment对象[root@node-1~]#catwordpress-db.yaml---apiVersion:apps/v1beta1kind:Deploymentmetadata:name:mysql-deploynamespace:bloglabels:app:mysql任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维spec:selector:matchLabels:app:mysqltemplate:metadata:labels:app:mysqlspec:containers:-name:mysqlimage:mysql:5.6#使用mysql:5.7镜像会报错imagePullPolicy:IfNotPresentports:-containerPort:3306name:dbport任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维env:-name:MYSQL_ROOT_PASSWORDvalue:rootPassW0rd-name:MYSQL_DATABASEvalue:wordpress-name:MYSQL_USERvalue:wordpress-name:MYSQL_PASSWORDvalue:wordpressvolumeMounts:-name:dbmountPath:/var/lib/mysqlvolumes:-name:dbhostPath:path:/var/lib/mysql---apiVersion:v1kind:Servicemetadata:name:mysqlnamespace:blogspec:selector:app:mysqlports:-name:mysqlportprotocol:TCPport:3306targetPort:dbport任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维然后创建上面的wordpress-db.yaml文件。[root@node-1~]#kubectlcreate-fwordpressdb.yamldeployment.apps/mysql-deploycreatedservice/mysqlcreated然后查看Service的详细情况。[root@node-1~]#kubectldescribesvcmysql-nblogName:mysqlNamespace:blogLabels:<none>Annotations:<none>Selector:app=mysqlType:ClusterIPIPFamilyPolicy:SingleStackIPFamilies:IPv4可以看到Endpoints部分匹配到了一个Pod,生成了一个clusterIP为81,现在就可以通过这个clusterIP加上定义的3306端口问MySQL服务了。IP:81IPs:81Port:mysqlport3306/TCPTargetPort:dbport/TCPEndpoints::3306SessionAffinity:NoneEvents:<none>任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维③创建Wordpress服务[root@node-1~]#catwordpress.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:wordpress-deploynamespace:bloglabels:app:wordpressspec:selector:matchLabels:app:wordpresstemplate:metadata:labels:app:wordpressspec:containers:-name:wordpressimage:wordpressimagePullPolicy:IfNotPresentports:-containerPort:80name:wdportenv:-name:WORDPRESS_DB_HOSTvalue:81:3306#此处的IP,是mysqlsvc的clusterIP-name:WORDPRESS_DB_USERvalue:wordpress-name:WORDPRESS_DB_PASSWORDvalue:wordpressapiVersion:v1kind:Service任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维metadata:name:wordpressnamespace:blogspec:type:NodePortselector:app:wordpressports:-name:wordpressportprotocol:TCPport:80targetPort:wdport[root@node-1~]#kubectlcreate-fwordpress.yamldeployment.apps/wordpress-deploycreatedservice/wordpresscreated任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维编写YAML文件wordpress-pod.yaml[root@node-1~]#catwordpress-pod.yamlapiVersion:v1kind:Podmetadata:name:wordpressnamespace:blogspec:containers:-name:wordpressimage:wordpressimagePullPolicy:IfNotPresentports:-containerPort:80name:wdportenv:-name:WORDPRESS_DB_HOSTvalue:localhost:3306-name:WORDPRESS_DB_USERvalue:wordpress-name:WORDPRESS_DB_PASSWORDvalue:wordpress-name:mysqlimage:mysql:5.6imagePullPolicy:IfNotPresentports:-containerPort:3306name:dbport任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维env:-name:MYSQL_ROOT_PASSWORDvalue:rootPassW0rd-name:MYSQL_DATABASEvalue:wordpress-name:MYSQL_USERvalue:wordpress-name:MYSQL_PASSWORDvalue:wordpressvolumeMounts:-name:dbmountPath:/var/lib/mysqlvolumes:-name:dbhostPath:path:/var/lib/mysql任务实施任务4.2
1.基于Kubernetes集群的博客系统部署与运维创建Pod。[root@node-1~]#kubectlcreate-fwordpress-pod.yamlpod/wordpresscreated访问服务,查看svc。[root@node-1~]#kubectlgetsvc-nblogNAMETYPECLUSTER-IPEXTERNALIPPORT(S)AGEmysqlClusterIP81<none>3306/TCP72mwordpressNodePort0<none>80:32377/TCP68m可以看到Wordpress服务产生了一个32377的端口,现在通过任意节点的NodeIP加上32377端口,就可以访问Wordpress应用了,如图4-2-3所示。4.3基于公有云容器平台的博客系统部署与运维1.掌握云容器引擎的定义2.掌握云容器引擎的部署流程任务描述任务4.3
1.云容器引擎的定义云容器引擎(CloudContainerEngine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器。借助云容器引擎,您可以在云上轻松部署、管理和扩展容器化应用程序。云容器引擎深度整合了华为云高性能的计算(ECS/BMS)、网络(VPC/EIP/ELB)、存储(EVS/OBS/SFS)等服务,并支持GPU、ARM、FPGA等异构计算架构,支持多可用区(Availablezone,简称AZ)、多区域(Region)容灾等技术构建高可用Kubernetes集群,并提供高性能可伸缩的容器应用管理能力,简化集群的搭建和扩容等工作,让您专注于容器化应用的开发与管理。知识学习任务4.3
2.基本概念使用云容器引擎服务,会涉及到以下基本概念:集群:是指容器运行所需云资源的集合,包含了若干台云服务器、负载均衡器等云资源。实例(Pod):由相关的一个或多个容器构成一个实例,这些容器共享相同的存储和网络空间。工作负载:Kubernetes资源对象,用于管理Pod副本的创建、调度以及整个生命周期的自动控制。Service:由多个相同配置的实例(Pod)和访问这些实例(Pod)的规则组成的微服务。Ingress:Ingress是用于将外部HTTP(S)流量路由到服务(Service)的规则集合。Helm应用:Helm是管理Kubernetes应用程序的打包工具,提供了HelmChart在指定集群内图形化的增删改查。镜像仓库:用于存放Docker镜像,Docker镜像用于部署容器服务。知识学习任务4.3
3.应用场景CCE集群支持管理X86资源池和鲲鹏资源池,能方便的创建Kubernetes集群、部署您的容器化应用,以及方便的管理和维护,如图4-3-1所示。知识学习任务4.3
4.云容器引擎的优势多种类型的容器部署。支持部署无状态工作负载、有状态工作负载、守护进程集、普通任务、定时任务等。支持替换升级、滚动升级(按比例、实例个数进行滚动升级);支持升级回滚。支持节点和工作负载的弹性伸缩。知识学习任务4.3
任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维①进入集群服务,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->“容器服务”->“云容器引擎CCE”,如图4-3-2所示,任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维②进入云容器引擎页面,点击页面中【CCE集群】卡片中的【创建】按钮,进入CCE集群创建界面。第一步“服务选型”参数配置如下:计费模式:按需计费,区域:华北-北京四,集群名称:(自定义),版本:v1.17.17,集群管理规模:50节点,控制节点数:3,如图4-3-3所示。虚拟私有云:选择创建的VPC,所在子网:默认,网络模型:容器隧道网络,容器网段:/16,服务网段:默认,鉴权方式:默认,认证方式:不选,高级设置:采用默认设置,点击下一步进入“创建节点”,如图4-3-4所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维第二步“创建节点”参数配置:创建节点:现在添加,计费模式:按需计费,当前区域:华北-北京四,可选区:任选一项,如图4-3-5所示。节点类型:虚拟机节点,节点名称:默认,节点规格:通用型sn3.large.22核|4GB,操作系统:公共镜像CentOS7.6,如图4-3-6所示,系统盘:高IO(5000IOPS)40GB,数据盘:高IO(5000IOPS)100GB,虚拟私有云:默认,所在子网:默认,弹性IP:自动创建,规格:全动态BGP,计费模式:按流量计费,带宽类型:独享,带宽大小:5Mbit/s,如图4-3-7所示,登录方式:密码,云服务器高级设置:采用默认设置,Kubemetes高级设置:采用默认设置,节点购买数量:3,点击下一步“配置确认”,如图4-3-8所示,任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维第三步默认安装插件,点击下一步,如图4-3-9所示,第四步勾选“我已知晓上述限制”,检查集群配置无误后点击“提交”,如图4-3-10所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维提交后开始进行创建,大约需要6分钟创建完成,创建完成后,点击“返回集群管理”,“集群状态”显示为“正常”表示该集群创建成功,如图4-3-11所示,任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维②华为云云数据库RDS购买点击右上角“购买数据库实例”,并按下图配置相关信息。计费模式:按需计费,区域:亚太-香港,实例名称:自定义,数据库引擎:MySQL,数据库版本:5.7,实例类型:单机,储存类型:SSD云盘,时区:UTC+08:00,如图4-3-12所示,性能规格:通用型2核/4GB(为保证实验能正常完成,请务必选择该规格)存储空间:默认,40GB,磁盘加密:不加密,如图4-3-13所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维确保数据库使用的VPC、子网、内网安全组均使用之前创建的实例,数据库端口:默认(3306),设置并牢记数据库密码,如图4-3-14所示。点击“返回云数据库RDS列表”返回数据库实例列表,此处需要等待一段时间【约6分钟】,请耐心等待。数据库创建成功后,控制台-云数据库RDS下查看,注意查看云数据库RDS的连接信息。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维③公有云云容器引擎CCE集群创建无状态负载Deployment在CCE左侧导航栏中选择工作负载,单击“创建无状态工作负载”,如图4-3-16所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维输入工作负载基本信息,其它保持默认。工作负载名称:deployment-wp。集群名称:选择工作负载所要运行的集群。请与已部署的MySQL在同个集群下。实例数量:请设置为3,如图4-3-17所示,任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维“容器设置”,点击“添加容器”,在弹出的“选择镜像”对话框中选择“开源镜像中心”,搜索栏中输入“wordpress”,点击“确定”完成添加,如图4-3-18所示。镜像版本选择latest最新的版本,其余选项默认即可。环境变量:设置环境变量,使WordPress可以访问MySQL数据库,如图4-3-19所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维环境变量说明:详细信息请查看云数据库RDS。WORDPRESS_DB_HOST:MySQL“访问地址”。WORDPRESS_DB_USER:数据库管理员名称。WORDPRESS_DB_PASSWORD:管理员权限密码。配置信息如4-3-20所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维单击“下一步:工作负载访问设置”,设置工作负载访问方式,将Wordpress设置为通过弹性IP访问外网的方式。单击“添加服务”,设置工作负载访问参数,设置完成后,单击“确定”。访问类型:选择“负载均衡(LoadBalancer)”,如图4-3-21所示。任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维服务名称:自定义名称,建议与工作负载名称相同,此处可设置为wordpress。服务亲和:选择“集群级别”。集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。负载均衡:默认“公网”和“自动创建”,其他参数保持默认。端口配置:对外协议:TCP容器端口:80访问端口:8080,如图4-3-21所示任务实施任务4.3
1.基于公有云容器平台的博客系统部署与运维单击“下一步:高级设置”,高级设置此处可不配置,单击“创建”。单击“返回工作负载列表”,可查看到运行中的wordpress,如图4-3-22所示。单击复制外部访问地址,拷贝到浏览器中,可访问到WordPress应用,如图4-3-22所示。谢谢您的聆听公有云综合运维项目5公有云大数据处理与分析公有云综合运维知识目标学习目标技能目标学习目标
认识Hadoop生态圈常用技术的使用场景。掌握在公有云平台申请使用MRS服务。掌握在公有云平台构建大数据平台,实现日志数据的采集、存储和分析。5.1走进大数据生态圈5.2公有云大数据服务MRS使用5.3公有云大数据服务DWS使用目录CONTENTS目录5.4公有云云搜索服务CSS使用5.1走进大数据生态圈1.掌握主流大数据技术2.掌握大数据生态圈任务描述任务5.11.Hadoop简介知识学习任务5.1(1)大数据主流技术知识ApacheHadoop软件库是一个框架,允许用户在集群服务器上使用简单的编程模型对大数据集进行分布式处理。经过多年的发展形成了Hadoop生态系统,其结构如图Hadoop生态系统介绍知识学习任务5.1HDFS:Hadoop生态圈的基本组成部分是Hadoop分布式文件系统MapReduce:Hadoop的主要执行框架是MapReduce,它是一个分布式、并行处理的编程模型,MapReduce把任务分为Map(映射)阶段和Reduce(化简)阶段。HBase:HBase是一个建立在HDFS之上,面向列的NoSQL数据库,用于快速读/写大量数据,HBase使用Zookeeper进行管理。Zookeeper:用于Hadoop的分布式协调服务。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群中,用于管理Hadoop集群。Hadoop生态系统介绍知识学习任务5.1Pig:Pig是一种数据流语言和运行环境,用于检索非常大的数据集。Hive:类似于SQL高级语言,用于运行存储在Hadoop上的查询语句,Hive让不熟悉MapReduce的开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。Sqoop:一个连接工具,用于在关系数据库、数据仓库和Hadoop之间转移数据。Flume:提供了分布式、可靠、高效的服务,用于收集、汇总大数据,并将单台计算机的大量数据转移到HDFS。2.MapReduce服务MRS---(1)MRS知识学习任务5.1
大数据是人类进入互联网时代以来面临的一个巨大问题:社会生产生活产生的数据量越来越大,数据种类越来越多,数据产生的速度越来越快。传统的数据处理技术,比如说单机存储、关系数据库已经无法解决这些新的大数据问题。为解决以上大数据处理问题,Apache基金会推出了Hadoop大数据处理的开源解决方案。华为云MRS的逻辑架构如图2.MapReduce服务MRS---(2)基础设施知识学习任务5.1MRS基于华为云弹性云服务器ECS构建的大数据集群,充分利用了其虚拟化层的高可靠、高安全的能力。
云硬盘(EVS)提供高可靠、高性能的存储。数据集成数据集成层提供了数据接入到MRS集群的能力,包括Flume(数据采集)、Loader(关系型数据导入)、Kafka(高可靠消息队列),支持各种数据源导入数据到大数据集群中。MRS支持结构化和非结构化数据在集群中的存储,并且支持多种高效的格式来满足不同计算引擎的要求。基础设施数据存储数据计算MRS提供多种主流计算引擎:MapReduce(批处理)、Tez(DAG模型)、Spark(内存计算)、SparkStreaming(微批流计算)、Storm(流计算)、Flink(流计算),满足多种大数据应用场景2.MapReduce服务MRS---(2)基础设施知识学习任务5.1MRS基于华为云弹性云服务器ECS构建的大数据集群,充分利用了其虚拟化层的高可靠、高安全的能力。
基础设施数据分析数据呈现调度集群管理基于预设的数据模型,使用易用SQL的数据分析,用户可以选择Hive(数据仓库)、SparkSQL以及Presto交互式查询引擎。用于数据分析结果的呈现,并与数据湖工厂(DLF)集成,提供一站式的大数据协同开发平台,帮助用户轻松完成数据建模、数据集成、脚本开发、作业调度、运维监控等多项任务,可以极大降低用户使用大数据的门槛,帮助用户快速构建大数据处理中心。以Hadoop为基础的大数据生态的各种组件均是以分布式的方式进行部署,其部署、管理和运维复杂度较高。2.MapReduce服务MRS---(3)MRS与自建Hadoop对比优势MapReduce服务(MRS)提供租户完全可控的企业级大数据集群云服务,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,用户无需关注硬件的购买和维护。知识学习任务5.1MRS支持一键式创建、删除、扩缩容集群,并通过弹性公网IP便携访问MRS集群管理系统,让大数据集群更加易于使用。MRS支持存算分离,大幅提升大数据集群资源利用率。MRS支持自动弹性伸缩,相对自建Hadoop集群的使用成本更低。MRS支持自研CarbonData和自研超级调度器SuperiorScheduler,性能更优。2.MapReduce服务MRS---(3)MRS与自建Hadoop对比优势知识学习任务5.1MRS基于鲲鹏处理器进行软硬件垂直优化,充分释放硬件算力,实现高性价比。MRS管理节点均实现HA,支持完备的可靠性机制,让系统更加可靠。MRS支持多种隔离模式及企业级的大数据多租户权限管理能力,安全性更高。MRS提供统一的可视化大数据集群管理界面,让运维人员更加轻松。MRS具有开放的生态,支持无缝对接周边服务,快速构建统一大数据平台。5.2公有云大数据服务MRS使用1.掌握主流大数据技术任务描述任务5.2
2.掌握大数据生态圈1.MRS服务与自建Hadoop对比
与自建Hadoop集群相比,MRS还具有以下优势:知识学习任务5.2MRS支持一键式创建、删除、扩缩容集群,并通过弹性公网IP便携访问MRS集群管理系统,让大数据集群更加易于使用MRS支持自动弹性伸缩,相对自建Hadoop集群的使用成本更低MRS支持存算分离MRS支持自研CarbonData和自研超级调度器SuperiorScheduler,性能更优MRS基于鲲鹏处理器进行软硬件垂直优化,充分释放硬件算力,实现高性价比1.MRS服务与自建Hadoop对比
与自建Hadoop集群相比,MRS还具有以下优势:知识学习任务5.2MRS支持多种隔离模式及企业级的大数据多租户权限管理能力,安全性更高MRS管理节点均实现HA,支持完备的可靠性机制,让系统更加可靠MRSs提供统一的可视化大数据集群管理界面,让运维人员更加轻松MRS具有开放的生态,支持无缝对接周边服务,快速构建统一大数据平台任务实施任务5.2
1.公有云自建Hadoop实现单词计数【软件版本】
软件名软件版本OSOSCentOSLinuxrelease7.6.1810(Core)Hadoopapache-hadoop-2.8.1Flumeapache-flume-1.6.0JDKjdk-1.8.0_141Nginxnginx-1.16.1Phpphp-5.4.16Mariadbmariadb-5.5.44任务实施任务5.2
1.公有云自建Hadoop实现单词计数【环境说明】
三台机器均为华为云上购买的ECS(ElasticCloudServer),机器配置是2vcpu+4Gmemory+50Gdisk任务实施任务5.2
1.公有云自建Hadoop实现单词计数【开源Hadoop集群搭建】
(1)、设置主机名master,其他两个节点分别设置为slave-1和slave-2。[root@localhost~]#hostnamectlset-hostnamemaster[root@localhost~]#bash[root@master~]#(2)、设置hosts文件,并将文件远程复制到slave-1和slave-2[root@master~]#vim/etc/hosts28master92slave-143slave-2[root@master~]#scp/etc/hostsslave-1:/etc/[root@master~]#scp/etc/hostsslave-2:/etc/任务实施任务5.2
1.公有云自建Hadoop实现单词计数【开源Hadoop集群搭建】
(3)、设置SSH无密码登录,并通过ssh-copy-id将公钥拷贝到slave-1和slave-2[root@master~]#ssh-keygen[root@master~]#ssh-copy-idslave-1[root@master~]#ssh-copy-idslave-2(4)、三个节点关闭防火墙和设置为开机不启用[root@master~]#systemctlstopfirewalld[root@master~]#systemctldisablefirewalld任务实施任务5.2
【开源Hadoop集群搭建】
(5)、三个节点修改selinux[root@master~]#setenforce0[root@master~]#getenforceDisabled[root@master~]#(6)、上传hadoop-2.8.1.tar.gz和jdk-8u141-linux-x64.tar.gz的资源包到master节点的/root目录下[root@master~]#lsanaconda-ks.cfgdata.res.2hadoopdatajdk-8u141-linux-x64.tar.gztestdata.res.1hadoop-2.8.1.tar.gzhdfsclient.jarres.data.1[root@master~]#任务实施任务5.2
【开源Hadoop集群搭建】
(7)、分别配置三个节点的JDK[root@master~]#tarxvfjdk-8u141-linux-x64.tar.gz-C/usr/local/[root@master~]#vi/root/.bash_profileexportJAVA_HOME=/usr/local/jdk1.8.0_141/exportPATH=$JAVA_HOME/bin:$PATH[root@master~]#source/root/.bash_profile[root@master~]#java-versionjavaversion"1.8.0_141"Java(TM)SERuntimeEnvironment(build1.8.0_141-b15)JavaHotSpot(TM)64-BitServerVM(build25.141-b15,mixedmode)[root@master~]#scp-r/usr/local/jdk1.8.0_141/root@slave:/usr/local/[root@master~]#scp/root/.bash_profileroot@slave:/root[root@master~]#[root@slave-1~]#source/root/.bash_profile任务实施任务5.2
【开源Hadoop集群搭建】
(7)、分别配置三个节点的JDK[root@slave-1~]#java-versionjavaversion"1.8.0_141"Java(TM)SERuntimeEnvironment(build1.8.0_141-b15)JavaHotSpot(TM)64-BitServerVM(build25.141-b15,mixedmode)[root@slave-2~]#source/root/.bash_profile[root@slave-2~]#java-versionjavaversion"1.8.0_141"Java(TM)SERuntimeEnvironment(build1.8.0_141-b15)JavaHotSpot(TM)64-BitServerVM(build25.141-b15,mixedmode)任务实施任务5.2
【开源Hadoop集群搭建】
(8)、在master节点解压Hadoop的源码包及删除doc目录[root@master~]#tarxvfhadoop-2.8.1.tar.gz-C/usr/local/[root@master~]#cd/usr/local/hadoop-2.8.1/share/[root@master~]#rm-rfdoc/(9)、配置Hadoop的环境变量文件hadoop-env.sh[root@master~]#cd/usr/local/hadoop-2.8.1/etc/hadoop[root@master~]#vihadoop-env.sh25exportJAVA_HOME=/usr/local/jdk1.8.0_141(25表示行号)任务实施任务5.2
【开源Hadoop集群搭建】
(10)、配置yarn的环境变量文件yarn-site.sh
[root@master~]#viyarn-env.sh23exportJAVA_HOME=/usr/local/jdk1.8.0_141(23表示行号)(11)、配置Hadoop的核心配置文件core-site.xml[root@master~]#vicore-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>/root/hadoopdata</value></property></configuration>任务实施任务5.2
【开源Hadoop集群搭建】
(12)、配置hdfs配置文件hdfs-site.xml[root@master~]#vihdfs-site.xml<configuration><property><name>dfs.replication</name><value>2</value></property></configuration>任务实施任务5.2
【开源Hadoop集群搭建】
(13)、配置yarn的配置文件yarn-site.xml[root@master~]#viyarn-site.xml<configuration><!--SitespecificYARNconfigurationproperties--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.address</name><value>master:18040</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:18030</value></property>任务实施任务5.2
【开源Hadoop集群搭建】
(13)、配置yarn的配置文件yarn-site.xml<property><name>yarn.resourcemanager.resourcetracker.address</name><value>master:18025</value></property><property><name>yarn.resourcemanager.admin.address</name><value>master:18141</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>master:18088</value></property></configuration>任务实施任务5.2
【开源Hadoop集群搭建】
(14)、配置mapreduce计算框架mapred-site.xml[root@master~]#cpmapred-site.xml.templatemapredsite.xml[root@master~]#vimapred-site.xml<configuration><property><name></name><value>yarn</value></property></configuration>任务实施任务5.2
【开源Hadoop集群搭建】
(15)、配置从节点配置文件slaves[root@master~]#vislavesslave-1slave-2(16)、将hadoop的源码包复制到slave-1节点和slave-2节点[root@master~]#scp-r/usr/local/hadoop2.8.1/root@slave-1:/usr/local/hadoop-2.8.1/[root@master~]#scp-r/usr/local/hadoop-2.8.1/root@slave-2:/usr/local/hadoop-2.8.1/任务实施任务5.2
【开源Hadoop集群搭建】
(17)、分别配置三个的环境变量文件[root@master~]#vi/root/.bash_profileexportPATHexportJAVA_HOME=/usr/local/jdk1.8.0_141/exportHADOOP_HOME=/usr/local/hadoop-2.8.1/exportPATH=$JAVA_HOME/bin:$HADOOP_HOME/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ceo聘任合同标准文本
- 与舞蹈学校合同标准文本
- mpp管采购合同样本
- 公园物业出租合同标准文本
- 会务公司赞助合同样本
- 供水排水设施建设运营合同
- 公司车辆转让协议合同标准文本
- 公司礼盒采购合同样本
- 二手车按揭合同样本
- 公路监理延期合同标准文本
- 在线网课知慧《贵州省情(贵州理工学院)》单元测试考核答案
- MOOC 概率统计-西南石油大学 中国大学慕课答案
- 2022年四川省南充市【中考】语文真题【带答案】
- 2024年低压开关柜市场前景分析:我国低压开关柜市场规模约为28亿元
- 2024浙江省烟草专卖局(公司)管理类岗位招聘笔试参考题库附带答案详解
- 辽宁省沈阳市2023-2024学年高一上学期期末质量监测英语试题(含答案)
- 核磁移机方案
- 第5课《黄河颂》课件-2023-2024学年统编版语文七年级下册
- 酒店升级改造方案
- 教师培训绩效评价报告
- 淡季服装促销活动方案
评论
0/150
提交评论