自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

转载 Kubernetes运维之微服务生产环境采坑分享

生产环境经验1、限制了容器资源,还经常被杀死?2、滚动更新之健康检查重要性3、滚动更新之流量的丢失先说一下第一个问题,限制容器资源,还经常去杀死的原因?就是说部署的java应用,不一会就重启了,其实重启就是在重建了,这就意味着你的pod是不健康的,然后k8s重新再帮你去拉取了,这样的话就要去找问题去排查了,说白了其实就是被杀死了,可以通过describe去查看一下事件,一般都会能看到,由于...

2019-09-17 11:36:32 521

转载 Kubernetes运维之使用ELK Stack收集K8S平台日志

kubernetes运维之使用elk Stack收集k8s平台日志目录:收集哪些日志 elk Stack日志方案 容器中的日志怎么收集 k8S平台中应用日志收集一、收集哪些日志 • k8s系统的组件日志 比如kubectl get cs下面的组件 master节点上的controller-manager,scheduler,apiservernode节点上的kubelet,kube-...

2019-09-16 12:22:38 1142

转载 Kubernetes运维之使用Prometheus全方位监控K8S

目录:Prometheus架构 K8S监控指标及实现思路 在K8S平台部署Prometheus 基于K8S服务发现的配置解析 在K8S平台部署Grafana 监控K8S集群中Pod、Node、资源对象 使用Grafana可视化展示Prometheus监控数据 告警规则与告警通知说在前面的话,现在监控首选的话,肯定是Prometheus+Grafana,也就是很多大型公司也都在...

2019-09-15 13:51:13 2826

转载 Kubernetes运维之部署主流JAVA应用

基于kubernetes部署JAVA项目将项目迁移到k8s平台是怎样实现的?1制作镜像 2 控制器管理Pod 3 Pod数据持久化 4 暴露应用 5 对外发布应用 6 日志/监控1制作镜像分为三步:第一基础镜像,是基于哪个操作系统,比如Centos7或者其他的第二步中间件镜像,比如服务镜像,跑的像nginx服务,tomcat服务第三步项目镜像,它是服务镜像之上的,将你的项目打包进去,那么这个...

2019-09-10 17:21:15 822

转载 Kubernetes进阶之基于RBAC授权安全框架

K8S 安全机制 Kubernetes的安全框架 传输安全,认证,授权,准入控制 使用RBAC授权,我们作为一个用户如何去授权不同的同事去访问集群的权限,比如开发同事,可以访问哪个资源,哪个命名空间,测试同事可以访问哪些,通过这方面我们怎么去限制。一、K8S的安全框架• 访问K8S集群的资源需要过三关:认证、鉴权、准入控制 • 普通用户若要安全访问集群API Server,往往需要证...

2019-09-07 21:59:16 234

转载 Kubernetes进阶之StatefulSet有状态部署

K8s有状态应用部署目录:分为两类1.Headless Service2.StatefulSet• 部署有状态应用 • 解决Pod独立生命周期,保持Pod启动顺序和唯一性 稳定,唯一的网络标识符,持久存储 有序,优雅的部署和扩展、删除和终止 有序,滚动更新 应用场景:数据库说在前面的话,像我们的Mysql或者Redis了,Zookerper等等这些适不适合部署在K8s中,其实呢不是太...

2019-09-07 17:18:24 717

转载 Kubernetes进阶之PersistentVolumeClaim 动态供给实现NFS网络存储

K8s进阶之PersistentVolumeClaim 动态供给先来简单看一下这张图实现的过程,然后我们再来研究一下说在前面的话,静态供给的话,会需要我们手动去创建pv,如果没有足够的资源,找不到合适的pv,那么pod就会处于pending等待的状态,就是说找不到合适的伴侣了,所以解决这两种问题,就给出了这种动态供给,主要是能够自动帮你创建pv,就是你需要多大的容量,就自动给你创建多大的容...

2019-09-07 10:59:09 950

转载 Kubernetes进阶之PersistentVolume 静态供给实现NFS网络存储

Kubernetes进阶之PersistentVolume 静态供给实现NFS网络存储网络存储NFS是一种很早的技术,单机的存储在服务器方面还是非常主流的,但nfs唯一的就是缺点比较大就是没有集群版,做集群化还是比较费劲的,文件系统做不了,这是一个很大的弊端,大规模的还是需要选择一些分布式的存储,nfs就是一个网络文件存储服务器,装完nfs之后,共享一个目录,其他的服务器就可以通过这个目录挂载到...

2019-09-06 16:49:09 491

转载 Kubernetes进阶之hostpath及emptyDir数据卷

K8s进阶之数据卷与数据持久卷目录:一 从外部访问应用最佳方式 二 配置管理 三 数据卷与数据持久卷 四 再谈有状态应用部署 五 K8S 安全机制三、数据卷与数据持久卷数据卷产生的背景为什么有数据卷,这里的数据卷和docker的数据卷还不太一样,实现的机制不是一套,数据卷说白了就是能帮助你持久化你pod重要的数据,如果你不持久化的话,pod删除里面临时产生的数据也会被删除,这不管是k8...

2019-09-06 16:35:19 1759

转载 Kubernetes进阶之secret及configmap配置管理

Kubernetes进阶之secret及configmap配置管理目录:一 从外部访问应用最佳方式 二 配置管理 三 数据卷与数据持久卷 四 再谈有状态应用部署 五 K8S 安全机制二、配置管理Pod使用secret两种方式: • 变量注入 (就是我们在写yaml的时候直接让它以变量的方式注入进去,注入pod中,去引用这个变量,去做相关的处理)• 挂载(直接从volume的形式挂载到...

2019-09-06 16:30:00 178

转载 Kubernetes进阶之ingress-nginx

Kubernetes进阶之ingress-nginx目录:一 从外部访问应用最佳方式 二 配置管理 三 数据卷与数据持久卷 四 再谈有状态应用部署 五 K8S 安全机制说在前面的话,选择nodeport的方式去暴露端口,那你需要得去判断暴露的端口有没有被占用,再创建新的应用会判断端口有没有被分配出去nodeport本身是基于默认的iptables的代理模式做的网络转发,也就是SANT,DAN...

2019-09-04 17:47:39 338

转载 基于Docker构建企业级jenkins CI/CD平台

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要。目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署、交付(CD)。在此,我们来以一个案例初步了解 CI 流程。那么什么是 CI 呢?简单来讲,CI 就是将传统的代码合并、构建、部署、测试都集成在一起,不断地执行这个过程,并对结果进行反馈。CI 流程...

2019-08-22 14:22:48 450

转载 kubernetes微服务扩容与新功能版本的发布

微服务不需要像普通服务那样成为一种独立的功能或者独立的资源。定义中称,微服务是需要与业务能力相匹配,这种说法完全正确。不幸的是,仍然意味着,如果能力模型粒度的设计是错误的,那么,我们就必须付出很多代价。如果你阅读了Fowler的整篇文章,你会发现,其中的指导建议是非常实用的。在决定将所有组件组合到一起时,开发人员需要非常确信这些组件都会有所改变,并且规模也会发生变化。服务粒度越粗,就越难以符合规定...

2019-08-17 16:25:45 160

转载 kubernetes部署spring cloud微服务项目

微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。微服务可以在"自己的程序"中运行,并通过"轻量级设备与HTTP型API进行沟通"。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其...

2019-08-17 15:59:08 2782

转载 不管你是运维还是开发都要懂微服务

转载:好文分享作者:后端技术杂谈原文:http://t.cn/AiNPOqFg这几年在Java工程师招聘时,会看到很多人的简历都写着使用了Spring Cloud做微服务实现,使用Docker做自动化部署,并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很少提这些东西。对于我自己来说,从15年就开始关注这一块,看过马丁.福勒最开始的关于微服...

2019-08-14 15:00:41 886

转载 Ansible基于playbook批量修改主机名

Ansible基于playbook批量修改主机名安装Ansible,相信这里也不用多说,大家都知道说一下环境:这里的主机名是修改之后的,我先把其他两台的主机名改为别的192.168.30.21 主机名jenkins 安装Ansible192.168.30.22 主机名docker192.168.30.23 主机名repository1.这里需要安装Ans...

2019-08-11 17:10:30 969

转载 用其他主机docker login登录Harbor仓库报错

做微服务的时候,我准备把编译好的jar包,部署到我的Harbor仓库上,却登录不上去,出现以下报错:[root@k8s-master ~]# docker login 192.168.30.24Username: admin Password:Error response from daemon: Get https://192.168.30.24/v2/: dial tcp 192....

2019-08-11 17:06:07 786

转载 私有镜像仓库Harbor基础介绍与部署

企业级私有镜像仓库Harbor一:介绍Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。Registry是Docker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标...

2019-08-11 17:04:34 276

转载 基于kubernetes中的yaml管理应用的正确姿势

一条yaml中有很多字段,如果去背这些字段,其实也能背过,但是去写一条yaml,也往往浪费很多的时间,也会出错,其实我们可以用一条命令就能快速来写一段自定义的yaml,工作中去修改相应的yaml也得心应手,效率也会很高,接下来我们来看一下[root@k8s-master ~]# kubectl create deployment nginx --image=nginx -o yaml --dry...

2019-08-11 16:57:17 521

转载 Kubernetes CoreDNS 状态是 CrashLoopBackOff 报错

查看状态的时候,遇见coredns出现crashlookbackoff,首先我们来进行排错,不管是什么原因,查看coredns的详细信息,以及logs[root@k8s-master coredns]# kubectl get pod,svc,deployment,rc -n kube-systemNAME READY STATUS ...

2019-08-11 16:53:57 2271

转载 强制删除 Terminating 状态的pod

[root@k8s-master coredns]# kubectl get podNAME READY STATUS RESTARTS AGEnginx-7bb7cd8db5-5c7z9 1/1 Terminating 0 70mnginx-7bb7cd8db5-t24hf 1/1 Run...

2019-08-11 16:52:41 1002

转载 使用yaml来实现ingress-nginx

Ingress是基于域名实现的一个负载均衡,其主要用来解决使用NodePort暴露Service的端口时Node IP会漂移的问题。同时,若大量使用NodePort暴露主机端口,管理会非常混乱。好的解决方案就是让外界通过域名去访问Service,而无需关心其Node IP及Port。那为什么不直接使用Nginx?这是因为在K8S集群中,如果每加入一个服务,我们都在Nginx中添加一个配置,其实是一...

2019-08-11 16:51:08 1656

转载 基于kubernetes实现coredns的及验证

CoreDNS: k8s内部的DNS ,用于对pod对service做记录的,好让其他的pod做访问这里不用做过多的阐述官方kube-dns现在已经没有在维护了,从Kubernetes 1.11开始,可使用CoreDNS作为Kubernetes的DNS插件进入GA状态,Kubernetes推荐使用CoreDNS作为集群内的DNS服务。 CoreDNS从2017年初就成为了CNCF的的孵化项目...

2019-08-11 16:45:24 139

转载 查看pod日志无法查看的解决方式

在查看pod出现问题的时候,我们需要查看日志describe,或者logs来查看查看pod日志[root@k8s-master1 ~]# kubectl logs nginx-7cdbd8cdc9-2qrcwError from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, s...

2019-08-11 16:42:41 1864

转载 service暴露端口发布服务

关于 ServiceKubernetes Service 定义了这样一种抽象:逻辑上的一组 Pod,一种可以访问它们的策略 —— 通常称为微服务。 这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector(查看下面了解,为什么可能需要没有 selector 的 Service)实现的。举个例子,考虑一个图片处理 backend,它运行了3个副本。这些副本是可互换...

2019-08-11 16:39:26 484

转载 service代理模式、负载均衡与服务发现

service:服务,是一个虚拟概念,逻辑上代理后端pod。众所周知,pod生命周期短,状态不稳定,pod异常后新生成的pod ip会发生变化,之前pod的访问方式均不可达。通过service对pod做代理,service有固定的ip和port,ip:port组合自动关联后端pod,即使pod发生改变,kubernetes内部更新这组关联关系,使得service能够匹配到新的pod。这样,通过se...

2019-08-11 16:35:52 217

转载 pod健康状态检查

pod将康状态检查提供 Probe 机制,有以下两种类型:livenessProbe如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。readinessProbe如果检查失败,Kubernetes会把Pod从service endpoints中剔除。Probe 支持以下三种检查方法:httpGet发送HTTP请求,返回200-400范围状态码为成功。exec执行Shell命令...

2019-08-11 16:33:10 1088

转载 pod调度约束与重启策略

Kubernetes调度器根据特定的算法与策略将pod调度到工作节点上。在默认情况下,Kubernetes调度器可以满足绝大多数需求,例如调度pod到资源充足的节点上运行,或调度pod分散到不同节点使集群节点资源均衡等[root@k8s-master ~]# vim pod.yamlapiVersion: v1kind: Podmetadata: name: nginx-pod l...

2019-08-11 16:30:22 360

转载 pod的管理

Pod简介Pod 是 kubernetes 系统的基础单元,是由用户创建或部署的最小组件,也是 kubernetes 系统上运行容器化应用的资源对象。Kubernetes 集群中其他资源对象都是为 pod 这个资源对象做支撑来实现 kubernetes 管理应用服务的目的。Kubernetes 集群组件主要包括主节点组件API Server、Controller Manager、Scheduler...

2019-08-11 16:26:40 145

转载 用YAML配置文件管理资源

Deployment负责控制Pod的生命周期、保证服务有一定数量的Pod在运行。Deployment定义了Pod内容,包括Pod数量、更新方式、使用的镜像,资源限制等等。[root@k8s-master ~]# vim nginx-deployment.yamlapiVersion: apps/v1beta2kind: Deploymentmetadata: name: nginx-...

2019-08-11 16:24:22 306

转载 用kubectl管理应用升级,服务发布与回滚,扩缩容

Kubernetes概述编辑Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复...

2019-08-11 16:19:54 858

转载 K8s遇到问题解决思路

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 [1] 传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操...

2019-08-11 16:15:39 430

转载 kubectl工具管理应用

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。创建一个pod`[root@k8s-master ~]# kubectl run nginx --replicas=3 --labels="app=nginx-example" --image=nginx:1.10 --port=80`查看所有资源信息[r...

2019-08-11 16:11:41 103

转载 kubectl工具管理应用

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。创建一个pod`[root@k8s-master ~]# kubectl run nginx --replicas=3 --labels="app=nginx-example" --image=nginx:1.10 --port=80`查看所有资源信息[r...

2019-08-11 16:11:39 87

转载 kubectl命令管理

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。使用Kubernetes命令行工具kubectl在Kubernetes上部署和管理应用程序。使用kubectl,可以检查集群资源; 创建,删除和更新组件。查看更多帮助命令[root@k8s-master ~]# kubectl --help创建一个命名空间...

2019-08-11 16:06:33 105

转载 k8s集群中遇到etcd集群故障的排查思路

一次在k8s集群中创建实例发现etcd集群状态出现连接失败状况,导致创建实例失败。于是排查了一下原因。问题来源下面是etcd集群健康状态:[root@docker01 ~]# cd /opt/kubernetes/ssl/[root@docker01 ssl]# /opt/kubernetes/bin/etcdctl \--ca-file=ca.pem --cert-file=server...

2019-08-11 16:00:46 4515

转载 docker数据卷的使用

1、什么是数据卷,能做什么卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此可以绕过UnionFileSystem提供一些用于持续存储或共享数据的特性。能做什么:容器持久化、数据共享数据卷的使用数据卷的使用,数据库可以保证如果容器出现问题但是数据不丢失的作用查看数据卷[root@docker ~]# docker volume lsDRIVER ...

2019-08-11 15:56:29 77

转载 Docker-ce社区版安装指南

Docker社区版(CE):为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。docker-ce提供了简单的安装和快速的安装,以便可以立即开始开发。docker-ce集成和优化,基础设施。(免费) Docker企业版(EE):专为企业的发展和IT团队建立谁。docker-ee为企业提供最安全的容器平台,以应用为中心的平台。(付费)Docker 是一个开源的应用容器引擎,...

2019-08-11 15:50:28 162

转载 Docker Hub公共镜像仓库的使用

Docker Hub目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15,000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。Docker Hub的功能Docker Hub被用于源代码管理集成,也用于构建和测试工具来加速部署周期,部署周期从天减少到以分钟计算,Docker宣称已经允许用户加速应用的传输。架构和技术堆栈升级对...

2019-08-11 15:43:27 793

转载 kubeadm部署15.0版本实现dashboard页面管理

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 集群中所有机器之间网络互通 可以访问外网,...

2019-08-11 15:25:01 545

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除