① 阿里云pod方式部署的redis怎么远程访问
登陆阿里云账号,提交个工单,几个小时后看回答就知道可不可以。
② 如何访问k8s集群内部署的mysql服务
虽然 kubernetes 社区一直在努力使得有状态应用成为一等公民,也推出了 statefulset 控制器支持 pod 的顺序部署,稳定的域名访问和存储访问。但鉴于 MySQL 部署运维的多样性和复杂性,在 kubernetes 上部署 MySQL 仍然要面临众多挑战。
1、业务流量入口的配置方式
传统虚拟机环境下,我们通过虚IP的方式,让业务应用都配置事先定义的一个虚IP为链接数据库的地址,然后由高可用服务保证虚IP始终能被路由到master数据库。在kubernetes中,出现了一层网络插件屏蔽了底层网络拓扑,高可用服务管理虚IP的方式需要随之适应调整,比如通过service结合标签完成虚IP的漂移,但service本身是kubernetes提供的一项功能,其可靠性和性能都取决于kubernetes服务的稳定。以性能来说,service是kubeproxy组件通过配置iptables实现的,当iptables规则较多时不可避免的会产生时延,需要我们针对性的解决。
2、容器隔离带来的监控视野问题
在 kubernetes 中,如果将 MySQL 制作为 container 运行在一个 pod 中,container 会将 MySQL 进程和运行环境隔离在一个单独的 namespace 中。监控组件在获取 MySQL 的一些 metirc 时,可能不得不进入与 MySQL 同一个 namespace 中,在部署和设计监控组件时需要考虑到这些限制。
3、存储在 kubernetes 中,支持配置各种不同的存储。
如果使用本地存储 local persistent volume,则需要绑定 MySQL 在一个固定的节点,这就完全浪费了 kubernetes 灵活调度的天然优势;而如果使用远程共享存储,确实是将 MySQL 进程与其存储完全解耦,使得 MySQL 进程可以在任意节点调度,然而考虑到高 I/O 吞吐量的情况,就不是那么美好了。设计时需要考量远程存储是否能够满足 MySQL 的带宽要求。
4、高可用/备份恢复
kubernetes 提供的 statefulset 控制器只能提供最基本的部署,删除功能,无法实现完善的 MySQL 集群高可用/备份恢复操作。对于有状态应用的部署,仍需要定制开发,所以多数公司提供了定制的 operator 来完成应用容器的管理。比如 etcd operator,MySQL operator,后文将为大家详述我测试使用 MySQL operator 的一些记录。
③ 如何入门k8s
Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便我们在服务器集群中管理我们容器化应用。
节点(Master node and Worker node)
节点通常指的就是服务器,在k8s中有两种节点:管理节点(Master Node)和工作节点(Worker Node)
管理节点(Master Node):负责管理整个k8s集群,一般由3个管理节点组成HA的架构。
工作节点(Worker Node):主要负责运行容器。命名空间(Namespace)
k8s命名空间主要用于隔离集群资源、隔离容器等,为集群提供了一种虚拟隔离的策略;默认存在3个名字空间,分别是默认命名空间 default、系统命名空间 kube-system 和 kube-public。Object
k8s 对象(Object)是一种持久化存储并且用于表示集群状态的实体。k8s 对象其实就是k8s自己的配置协议,总之我们可以通过定义一个object让k8s根据object定义执行一些部署任务、监控任务等等。POD
Pod是 Kubernetes 部署应用或服务的最小的基本单位。一个Pod 封装多个应用容器(也可以只有一个容器)、存储资源、一个独立的网络 IP 以及管理控制容器运行方式的策略选项。副本集(Replica Set,RS)
是一种控制器,负责监控和维护集群中pod的副本(replicas)数,确保pod的副本数是我们期望的样子。部署(Deployment)
表示对k8s集群的一次更新操作,是k8s集群中最常用的Object,主要用于部署应用。支持滚动升级。服务(service)
是对应用的抽象,也是k8s中的基本操作单元,一个服务背后由多个pod支持,服务通过负载均衡策略将请求转发到容器中。Ingress
是一种网关服务,可以将k8s服务通过http协议暴露到外部。无状态应用 & 有状态应用
无状态应用指的是应用在容器中运行时候不会在容器中持久化存储数据,应用容器可以随意创建、销毁;如果一个应用有多个容器实例,对于无状态应用,请求转发给任何一个容器实例都可以正确运行。例如:web应用
有状态应用指的是应用在容器中运行时候需要稳定的持久化存储、稳定的网络标识、固定的pod启动和停止次序。例如:mysql数据库
④ k8s怎么把容器里面的内容挂出来
普通Volume
最简单的普通Volume是单节点Volume。它和Docker的存储卷类似,使用的是Pod所在K8S节点的本地目录。
第二种类型是跨节点存储卷,这种存储卷不和某个具体的K8S节点绑定,而是独立于K8S节点存在的,整个存储集群和K8S集群是两个集群,相互独立。
跨节点的存储卷在Knetes上用的比较多,如果已有的存储不能满足要求,还可以开发自己的Volume插件,只需要实现Volume.go里定义的接口。如果你是一个存储厂商,想要自己的存储支持Knetes上运行的容器,就可以去开发一个自己的Volume插件。
2.persistent volume
它和普通Volume的区别是什么呢?
普通Volume和使用它的Pod之间是一种静态绑定关系,在定义Pod的文件里,同时定义了它使用的Volume。Volume是Pod的附属品,我们无法单独创建一个Volume,因为它不是一个独立的K8S资源对象。
而Persistent Volume简称PV是一个K8S资源对象,所以我们可以单独创建一个PV。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定。Pod定义里指定的是PVC,然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。
PV的访问模式有三种:
第一种,ReadWriteOnce:是最基本的方式,可读可写,但只支持被单个Pod挂载。
第二种,ReadOnlyMany:可以以只读的方式被多个Pod挂载。
第三种,ReadWriteMany:这种存储可以以读写的方式被多个Pod共享。不是每一种存储都支持这三种方式,像共享方式,目前支持的还比较少,比较常用的是NFS。在PVC绑定PV时通常根据两个条件来绑定,一个是存储的大小,另一个就是访问模式。
刚才提到说PV与普通Volume的区别是动态绑定,我们来看一下这个过程是怎样的。
这是PV的生命周期,首先是Provision,即创建PV,这里创建PV有两种方式,静态和动态。所谓静态,是管理员手动创建一堆PV,组成一个PV池,供PVC来绑定。动态方式是通过一个叫Storage Class的对象由存储系统根据PVC的要求自动创建。
⑤ 私有网段的k8s集群怎么拉取阿里云的镜像
你好,如果是阿里云vpc网段的的期间,阿里云的容器镜像服务会有对应区域的vpc镜像地址,你可以打开阿里云控制台,容器镜像服务查看,如果是公司内部的私有网段服务器,就需要联系网络组的人员看看是否有对接阿里的专线,相应的开通策略,如何私有网段的机器可以访问外网,直接拉取公网的镜像地址就可以,情况很多,请确定后做分析,谢谢,望采纳
⑥ K8s怎么对象分布式存储
K8s对象分布式存储的方式很多,我们用的元核云分布式块存储,用的就是ceph-csi对接的他们的rbd块存储。
⑦ 类似阿里云、华为云这样的“云”平台越来越多,云平台到底是个什么概念有哪些特点
三大品牌是以下三家:阿里腾讯和华为,也有很多私有部署的服务器,或则其他特点的服务器机房;无论从那个角度,大家都对云服务的要求和适配群都有区分,尤其是阿里和腾讯,一般都是可以按照需求随时增加;华为针对的集团客户和有专业要求比较高的客户,价格如何还待后面去交流,单纯从技术角度,华为现在的针对一些物理的服务器集群部署,有自己的一套软件支撑,说起软件,如果你的设备不支持k8s,你也无法实现这样的部署,像My apps的bpm的平台软件,就具备了这样的
针对平台特点,下面用户回答的很到位,我这边直接复制,呈现价值即可
阿里云案:
适合人群:中小企业
优点:阿里云依托于阿里巴巴集团,通过对其丰富的网络资源进行整合,拥有自己的数据中心,是国内云服务器的大佬,目前,有北京、青岛、杭州、香港机房可选,多线BGP接入;
缺点:价格相对较贵,硬盘I/O速度较差,硬盘不能直接扩容大小,必须新购买硬盘迁移数据。
腾讯云:
适合人群:游戏客户、开发者、APP用户等。
优点:腾讯云跟微信对接有天然优势,目前用户主要以游戏应用为主。腾讯云服务器使用公共平台操作系统,团队完全负责云主机的维护,并提供丰富配置类型虚拟机,用户可以便捷地进行数据缓存、数据库处理与搭建web服务器等工作。腾讯对游戏和移动应用类客户提供了较强的扶持政策,比较适合这类型的客户使用。
缺点:普通中小客户和中网站客户难以通过审批,腾讯提供的配套设备也不适合这部分客户使用。
华为云:
适合人群:政府、大中型企业、银行等大客户。
优点:华为企业云贯彻了华为公司"云、管、端"的战略方针,聚焦I层,使能P层,聚合S层,致力于为广大企业、政府和创新创业群体提供安全、中立、可靠的IT基础设施云服务。华为企业云依托业内的基础设施,在全国设置多个云服务区,部署多个云计算中心资源池,主要以安全性为卖点,采用了分层和纵深防御理念。
缺点:偶尔会出现不稳定的情况。
管理顾问,每天成长一点点,努力成就自己的优秀。
⑧ 如何进行K8S存储系统
在K8S运行的服务,从简单到复杂可以分成三类:无状态服务、普通有状态服务和有状态集群服务。下面分别来看K8S是如何运行这三类服务的。
无状态服务,K8S使用RC(或更新的Replica Set)来保证一个服务的实例数量,如果说某个Pod实例由于某种原因Crash了,RC会立刻用这个Pod的模版新启一个Pod来替代它,由于是无状态的服务,新启的Pod与原来健康状态下的Pod一模一样。在Pod被重建后它的IP地址可能发生变化,为了对外提供一个稳定的访问接口,K8S引入了Service的概念。一个Service后面可以挂多个Pod,实现服务的高可用。
普通有状态服务,和无状态服务相比,它多了状态保存的需求。Kubernetes提供了以Volume和Persistent Volume为基础的存储系统,可以实现服务的状态保存。
有状态集群服务,与普通有状态服务相比,它多了集群管理的需求。K8S为此开发了一套以Pet Set为核心的全新特性,方便了有状态集群服务在K8S上的部署和管理。具体来说是通过Init Container来做集群的初始化工作,用Headless Service来维持集群成员的稳定关系,用动态存储供给来方便集群扩容,最后用Pet Set来综合管理整个集群。
要运行有状态集群服务要解决的问题有两个,一个是状态保存,另一个是集群管理。我们先来看如何解决第一个问题:状态保存。Kubernetes有一套以Volume插件为基础的存储系统,通过这套存储系统可以实现应用和服务的状态保存。
K8S的存储系统从基础到高级又大致分为三个层次:普通Volume,Persistent Volume和动态存储供应。
1.普通Volume
最简单的普通Volume是单节点Volume。它和Docker的存储卷类似,使用的是Pod所在K8S节点的本地目录。
第二种类型是跨节点存储卷,这种存储卷不和某个具体的K8S节点绑定,而是独立于K8S节点存在的,整个存储集群和K8S集群是两个集群,相互独立。
跨节点的存储卷在Kubernetes上用的比较多,如果已有的存储不能满足要求,还可以开发自己的Volume插件,只需要实现Volume.go里定义的接口。如果你是一个存储厂商,想要自己的存储支持Kubernetes上运行的容器,就可以去开发一个自己的Volume插件。
2.persistent volume
它和普通Volume的区别是什么呢?
普通Volume和使用它的Pod之间是一种静态绑定关系,在定义Pod的文件里,同时定义了它使用的Volume。Volume是Pod的附属品,我们无法单独创建一个Volume,因为它不是一个独立的K8S资源对象。
而Persistent Volume简称PV是一个K8S资源对象,所以我们可以单独创建一个PV。它不和Pod直接发生关系,而是通过Persistent Volume Claim,简称PVC来实现动态绑定。Pod定义里指定的是PVC,然后PVC会根据Pod的要求去自动绑定合适的PV给Pod使用。
⑨ kubernetes最大支持多少节点
我先整体看Kubernetes些理念基本架构网络、资源管理、存储、服务发现、负载均衡、高用、rollingupgrade、安全、监控等面向家简单介绍Kubernetes些主要特性包括些需要注意问题主要目帮助家快速理解Kubernetes主要功能今研究使用具候所参考帮助1.Kubernetes些理念:用户需要关需要少台机器需要关软件(服务)运行所需环境服务需要关api何服务拆服务何使用api整合保证系统总按照用户指定状态运行仅仅提给供容器服务同提供种软件系统升级式;保持HA前提升级系统用户想要功能难实现些需要担需要担事情更支持微服务理念划、细服务间边界比lablel、pod等概念引入于Kubernetes架构参考官文档致由些主要组件构包括Master节点kube-apiserver、kube-scheler、kube-controller-manager、控制组件kubectl、状态存储etcd、Slave节点kubelet、kube-proxy及底层网络支持(用Flannel、OpenVSwitch、Weave等)看微服务架构设计目前能支持单服务横向伸缩Kubernetes未版本解决2.Kubernetes主要特性网络、服务发现、负载均衡、资源管理、高用、存储、安全、监控等面向家简单介绍Kubernetes些主要特性->由于间限能简单些另外于服务发现、高用监控些更详细介绍兴趣朋友通篇文章解1)网络Kubernetes网络式主要解决几问题:a.紧耦合容器间通信通Podlocalhost访问解决b.Pod间通信建立通信网比隧道、路由Flannel、OpenvSwitch、Weavec.PodService及外部系统Service通信引入Service解决Kubernetes网络给每Pod配IP址需要Pod间建立链接基本需要处理容器主机间端口映射注意:Pod重建IP重新配所内网通信要依赖PodIP;通Service环境变量或者DNS解决2)服务发现及负载均衡kube-proxyDNSv1前Service含字段portalippublicIPs别指定服务虚拟ip服务口机ippublicIPs任意指定集群任意包含kube-proxy节点portalIp通NAT式跳转container内网址v1版本publicIPS约定废除标记deprecatedPublicIPs仅用作向兼容portalIp改ClusterIp,serviceport定义列表增加nodePort项即应node映射服务端口DNS服务addon式需要安装skydnskube2dnskube2dns通读取KubernetesAPI获取服务clusterIPport信息同watch式检查service变及收集变信息并于ip信息提交给etcd存档skydns通etcd内DNS记录信息启53端口外提供服务概DNS域名记录servicename.namespace.tenx.domain,tenx.domain提前设置主域名注意:kube-proxy集群规模较能访问性能问题考虑用其式替换比HAProxy直接导流Serviceendpints或者PodsKubernetes官修复问题3)资源管理3层资源限制式别Container、Pod、Namespace层Container层主要利用容器本身支持比DockerCPU、内存、磁盘、网络等支持;Pod面限制系统内创建Pod资源范围比或者CPU、memory需求;Namespace层用户级别资源限额包括CPU、内存限定Pod、rc、service数量资源管理模型-》简单、通用、准确并扩展目前资源配计算相简单没资源抢占类强功能通每节点资源总量、及已经使用各种资源加权计算某Pod优先非配哪些节点没加入节点实际用资源评估需要自schelerplugin支持其实kubelet已经拿节点资源要进行收集计算即相信Kubernetes续版本支持4)高用主要指Master节点HA式官推荐利用etcd实现master选举Masterkube-apiserver保证至少master用实现highavailability外loadbalancer式提供入口种式用作ha仍未熟据解未更新升级ha功能张图帮助家理解:etcd集群背景存kube-apiserver并用pod-master保证仅主master用同kube-shellerkube-controller-manager存且伴随着kube-apiserver同间能套运行5)rollingupgradeRC始设计让rollingupgrade变更容易通替换Pod更新service实现服务断间化基本思路创建复本1新rc并逐步减少rc复本、增加新rc复本rc数量0其删除通kubectl提供指定更新镜像、替换pod间间隔rollback前执行upgrade操作同Kuberntes支持版本同部署并通lable进行区service变情况调整支撑服务Pod测试、监控新Pod工作情况6)存储家都知道容器本身般数据进行持久化处理Kubernetes容器异退kubelet简单基于原镜像重启新容器另外我同Pod运行容器经需要些容器间进行共享些数据KuberenetesVolume主要解决面两基础问题DockerVolume概念相简单且目前支持限KubernetesVolume则着清晰定义广泛支持其核理念:Volume目录并同Pod所容器访问目录端用介质面内容则由使用特定Volume类型决定创建带VolumePod:spec.volumes指定Pod需要volume信息spec.containers.volumeMounts指定哪些container需要用VolumeKubernetesVolume支持非广泛贡献者其添加同存储支持反映Kubernetes社区跃程度emptyDir随Pod删除适用于临存储、灾难恢复、共享运行数据支持RAM-backedfilesystemhostPath类似于Docker本Volume用于访问些本资源(比本Docker)gcePersistentDiskGCEdisk-GoogleCloudEngine平台用awsElasticBlockStore类似于GCEdisk节点必须AWSEC2实例nfs-支持网络文件系统rbd-RadosBlockDevice-Cephsecret用通KubernetesAPI向Pod传递敏信息使用tmpfs(aRAM-backedfilesystem)persistentVolumeClaim-抽象PV申请资源需关存储提供glusterfsiscsigitRepo根据自需求选择合适存储类型反支持够总用款适合:)7)安全些主要原则:基础设施模块应该通APIserver交换数据、修改系统状态且APIserver访问端存储(etcd)用户同角色:Developers/ProjectAdmins/Administrators允许Developers定义secrets象并pod启关联相关容器secret例kubelet要pull私镜像Kubernetes支持式:通dockerlogin.dockercfg文件进行全局授权通每namespace创建用户secret象创建Pod指定imagePullSecrets属性(统设置serviceAcouunt)进行授权认证(Authentication)APIserver支持证书、token、基本信息三种认证式授权(Authorization)通apiserver安全端口authorization应用所http请求AlwaysDeny、AlwaysAllow、ABAC三种模式其需求自实现Authorizer接口8)监控比较版本Kubernetes需要外接cadvisor主要功能node主机containermetrics抓取较新版本cadvior功能集kubelet组件kubelet与docker交互同外提供监控服务Kubernetes集群范围内监控主要由kubelet、heapsterstoragebackend(influxdb)构建Heapster集群范围获取metrics事件数据pod式运行k8s平台单独运行standalone式注意:heapster目前未1.0版本于规模集群监控比较便于较规模集群heapster目前cache式吃掉量内存要定获取整集群容器信息信息内存临存储问题再加heaspter要支持api获取临metricsheapsterpod式运行容易现OOM所目前建议关掉cache并standalone式独立k8s平台