老男孩的linux博客http://oldboy.blog.51cto.com抚琴煮酒http://andrewyu.blog.51cto.com技术成就梦想http://ixdba.blog.51cto.com天匆云汇http://tiancong.blog.51cto.com今夜灿烂http://saturn.blog.51cto.com丁丁历险http://3310438.blog.51ct
新博客地址:传送门
环境如下//前三个为K8s集群中的节点主机名IP运行服务docker-k8s01192.168.171.151docker+registrydocker-k8s02192.168.171.150dockerdocker-k8s03192.168.171.152dockerJenkins192.168.171.153Jenkins+gitlab+dockerJenkins采用war包的方式部署,需要
1、运行web容器作为私有仓库(我在node01上运行这个容器)#运行web容器[root@docker-k8s02~]#dockerrun-d-p81:80-v/var/www:/usr/local/apache2/htdocshttpd#创建目录,用于存放charts包[root@docker-k8s02~]#mkdir-p/var/www/charts2、通过helmpackage将tese
一、helm支持的四种安装方法安装仓库中的chart包,命令举例:helminstallstable/xxx;通过tar包安装,命令举例:helminstallxxx-1.tgz(不推荐使用);通过chart本地目录安装,命令举例:helminstallxxx/xxx(一般是使用helmfetchstable/xxxxx下载相应的模板,然后使用tarzxf解压,修改解压后的目录中的valumes.
一、helm在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在KubeappsHub中提供了包括Redis、MySQL和Jenkins等常见的应用,通过helm可以使用一条命令就能
注:以下只是在yaml文件中进行资源限制的一个片段,并不是完整的yaml文件1、针对Pod的资源限制//cgroup-pod.yamlspec:containers:-name:xxximage:xxxports:-protocol:TCPcontainerPort:80resources:limits://硬限制cpu:"4"memory:2Girequests://运行pod时请求的资源数量c
一、HPAHPA的全称为HorizontalPodAutoscaling,它可以根据当前pod资源的使用率(如CPU、磁盘、内存等),进行副本数的动态的扩容与缩容,以便减轻各个pod的压力。当pod负载达到一定的阈值后,会根据扩缩容的策略生成更多新的pod来分担压力,当pod的使用比较空闲时,在稳定空闲一段时间后,还会自动减少pod的副本数量。若要实现自动扩缩容的功能,还需要部署heapster服
一、部署dashboard的Web-UI界面1、下载yaml文件//github搜索dashboard找到该项目//下载yaml文件[root@docker-k8s01~]#wgethttps://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml//编辑yaml文件[root@dock
在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes中目前提供了以下几种方案:NodePortLoadBalancerIngressNodePort,简单来说,就是通过service这种资源对象,为后端pod提供一个统一的访问接口,然后将service的统一访问接口映射到群集节点上,最终实
1、什么是有状态服务和无状态服务?对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依旧是指两个来自相同发起者的请求在服务器端是否具备上下文关系。如果是状态化请求,那么服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息。而对于无状态请求,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所保存的、并且可以被所有请求所使用的公共信息。无状态的服
实现k8s的数据持久化的流程为:搭建nfs底层存储---->创建PV---->创建PVC---->创建pod。最终pod中的container实现数据的持久化。上述流程中,看似没什么问题,但细想一下,PVC在向PV申请存储空间的时候,是根据指定的pv名称、访问模式、容量大小来决定具体向哪个PV来申请空间的,如果PV的容量为20G,定义的访问模式是WRO(只允许以读写的方式挂载到单
1、搭建nfs存储[root@docker-k8s01~]#yum-yinstallnfs-utils[root@docker-k8s01~]#mkdir/nfsdata/mysql-p[root@docker-k8s01~]#cat/etc/exports/nfsdata*(rw,sync,no_root_squash)[root@docker-k8s01~]#systemctlrestartn
数据的持久化一直都是需要我们非常关心的问题,docker如此,K8s也不例外。在k8s中,有一个数据卷的概念。k8s数据卷主要解决了以下两方面问题:数据持久性:通常情况下,容器运行起来后,写入到其文件系统的文件时暂时性的。当容器崩溃后,kebelet将这个容器kill掉,然后生成一个新的容器,此时,新运行的容器将没有原来容器内的文件,因为容器是重新从镜像创建的。数据共享:同一个pod中运行的容器之
服务类的Pod容器:RC、RS、DS、Deployment.(Pod内运行的服务,要持续运行)工作类的Pod容器:Job--->执行一次,或者批量执行处理程序,完成之退出容器。//举个栗子kind:JobapiVersion:batch/v1metadata:name:test-jobspec:template:metadata:name:test-jobspec:containers:-n
ReplicationController(老一代的Pod控制器)简称:RC用于确保由其掌控的Pod对象副本数量,能够满足用户期望,多则删除,少则通过模板创建。特点:确保Pod资源的对象的数量精准确保Pod健康运行弹性伸缩同样,他也可以通过yaml或json格式的资源清单来创建。其中spec字段一般嵌套以下字段:replicas:期望的Pod对象副本数量selector:当前控制器匹配Pod对象副
Deployment、Service、Pod是k8s最核心的3个资源对象。Deployment:最常见的无状态应用的控制器,支持应用的扩缩容、滚动更新等操作。Servcie:为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。Pod:是运行容器以及调度的最小单位。同一个Pod可以同时运行多个容器,这些容器共享NET、UTS、IPC。除此之外还有USER、PID、M
1、安装teamd[root@web01~]#yum-yinstallteamd2、停止NetworkManager什么是NetworkManager呢?NetworkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理,CentOS7以前是通过network服务管理网络,以后的版本所有网络管理和设置统一由Network
双网卡绑定单个IP地址为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。bond在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性。实现双网卡绑定的方法有两种:bond和team这
1、创建私有仓库[root@docker-k8s01~]#dockerrun-itd--nameregistry-p5000:5000--restartalwaysregistry:latest#在所有需要使用私有仓库的docker主机上添加如下配置[root@docker-k8s01~]#vim/usr/lib/systemd/system/docker.serviceExecStart=/us
注:yaml文件严格要求缩进,默认不同层次等级是两个空格的缩进1、使用httpd镜像创建一个Deployment资源对象[root@docker-k8s01~]#mkdiryaml[root@docker-k8s01~]#cdyaml/[root@docker-k8s01yaml]#vimtest01.yamlkind:Deployment#指定要创建的资源对象类型apiVersion:exten
一、资源创建的方式之一命令的方式创建资源,理解命令运行之后的动作,通过查看资源的方式,总结Pod名称的由来当我们执行创建资源的命令后,deployment这个控制器会通过replicaset控制器去管理pod,下面通过一个实例来分析,当我们执行创建资源的命令后,k8s都做了些什么(通过其NAME即可发现规律)?运行一个deployment#运行一个nginx容器,指定副本数量为2个[root@do
上图各组件功能如下kubectl:k8s是命令行端,用来发送客户的操作指令。APIserver:是k8s集群的前端接口,各种客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源。它提供了HTTP/HTTPSRESTfulAPI,即K8SAPI.Scheduler:负责决定将Pod放在哪个Node上运行。在调度时,会充分考虑集群的拓扑结构,当前各个节点的负载情况,以及应对高可用、性能、数
k8s为什么叫k8s呢?因为k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack。那么管理容器所对应的开源平台是什么呢?k8s就是其中之
注:这篇博文的环境基于上一篇博文中搭建的环境,具体可以参考博文:DockerSwarm群集配置实战在进行接下来的操作之前,必须要保证访问dockerSwarm的webUI时,可以看到以下界面:一、DockerSwarm网络管理Swarm群集会产生两种不同类型的流量:控制和管理层面:包括Swarm消息管理等,例如请求加入或离开Swarm,这种类型的流量总是被加密的。(涉及到集群内部的hostname
DockerSwarm和DockerCompose一样,都是Docker官方容器编排项目,但不同的是,DockerCompose是一个在单个服务器或主机上创建多个容器的工具,而DockerSwarm则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然DockerSwarm会更加适合。从Docker1.12.0版本开始,DockerSwarm已经包含在Docker引擎中(dockers
Weave-Scope服务是一个用来监控docker容器、k8s等(包括宿主机)的资源使用状况的,从根本上来说,有些类似于Zabbix等监控服务,该服务式基于容器部署的,部署简单,但功能强大,美中不足的可能就是其安全方面存在一些隐患吧!一、部署Weave-Scope主机名IP服务docker01192.168.171.151dockerdocker02192.168.171.150docker注:
Consul是用于服务发现和配置的工具。Consul是分布式的,高度可用的,并且具有极高的可伸缩性。Consul服务提供以下关键特性:服务发现:Consul的客户端可用提供一个服务,比如api或者mysql,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务;健康检查:Consul客户端可用提供任意数量的健康检查,指定一个服务
Prometheus是一个系统和服务监视系统。它以给定的时间间隔从已配置的目标收集指标,评估规则表达式,显示结果,并在发现某些情况为真时触发警报。与其他监视系统相比,Prometheus的主要区别特征是:一个多维数据模型(时间序列由指标名称定义和设置键/值尺寸)一个灵活的查询语言来利用这一维度不依赖于分布式存储;单服务器节点是自治的时间序列收集通过HTTP上的拉模型进行通过中间网关支持推送时间序列
一、Compose简介Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。Docker-Compose是一个容器编排工具。通过一个.yml或.yaml文件,将所有的容器的部署方法、文件映射、容器端口映射等情况写在一个配置文件里,执行docker-composeup命令就像
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号