自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kubernetes(k8s):浅谈

基本工作过程Kubernetes 的核心工作过程:资源对象:Node、Pod、Service、Replication Controller 等都可以看作一种资源对象操作:通过使用 kubectl 工具,执行增删改查存储:对象的目标状态(预设状态),保存在 etcd 中持久化储存;自动控制:跟踪、对比 etcd 中存储的目标状态与资源的当前状态,对差异资源纠偏,自动控制集群状态。Kubernetes实际是:高度自动化的资源控制系统,将其管理的一切抽象为资源对象,大到服务器 Node 节点,小到服务

2020-06-11 19:46:45 646 1

原创 kubernetes(k8s):部署高可用集群

文章目录背景:两种高可用集群架构1.实验环境1.1 Loadbalancer部署:三台主机分别配置haproxy,keepalived1.2 分别部署k8s,docker1.3 将三台主机均设置为master1.4 安装flannel网络组件1.5 再开启一台server5做worker1.6 测试背景:两种高可用集群架构2.采用分布式存储etcd,分别用三台主机节点作为etcd1.实验环境重新准备server2、server3、server4,三台虚拟机,分别安装haproxy和keep

2020-06-11 19:26:46 742

原创 kubernetes(k8s):部署kubeapps应用,为Helm提供web UI界面管理

文章目录1. 部署kubeapps2. kubeapps的登陆3. kubeapps的使用4. 使用chart部署ingress-nginx应用5. 更新和回滚1. 部署kubeapps部署kubeapps应用,为Helm提供web UI界面管理(1)首先需要添加一个第三方库[kubeadm@server1 kubeapps]$ helm repo add bitnami https://charts.bitnami.com/bitnami"bitnami" has been added to y

2020-06-11 18:44:19 922

原创 kubernetes(k8s):使用helm部署ingress-nginx

部署前将之前部署的ingress-nginx删除:[kubeadm@server1 ~]$ kubectl delete namespaces ingress-nginx //清除之前的部署namespace "ingress-nginx" deleted[kubeadm@server1 ~]$ kubectl get ingressNo resources found in default namespace.[kubeadm@server1 ~]$文章目录1. 部署2. 测试3. 部

2020-06-07 20:19:20 1112

原创 kubernetes(k8s):使用helm部署nfsclass

1.部署nfsclassHelm部署nfs-client-provisioner: 预先配置好外部的NFS服务器。[kubeadm@server1 nfsclass]$ lsclass.yaml deployment.yaml pod.yaml pvc.yaml rbac.yaml[kubeadm@server1 nfsclass]$ kubectl delete -f . // 删除之前的部署storageclass.storage.k8s.io "managed-nfs-stora

2020-06-07 19:51:50 432

原创 kubernetes(k8s):构建Helm Chart并部署mychart应用到k8s集群

文章目录1. 构建一个 Helm Chart2. 构建本地chart仓库3. 安装push插件4 .部署mychart应用到k8s集群5. 更新版本(升级)6. 版本回滚7. 卸载应用1. 构建一个 Helm Chart[kubeadm@server1 helm]$ helm create mychartCreating mychart[kubeadm@server1 helm]$ lsmychart redis-ha[kubeadm@server1 helm]$ cd mychart/[k

2020-06-07 19:44:40 2484

原创 kubernetes(k8s):包管理工具Helm

文章目录1.Helm简介2. Helm的部署3. Helm 部署应用(拉取仓库的redis-ha并部署)案例:部署redis-ha,实现高可用1.Helm简介Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些Metadata,以便于应用程序的分发。对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖

2020-06-07 16:39:25 393

原创 kubernetes(k8s):基于metrics server的HPA(pod水平自动弹性伸缩)

1. Horizontal Pod Autoscaler(HPA) pod水平自动伸缩官网:https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

2020-06-07 15:55:31 449

原创 kubernetes(k8s):部署可视化插件Dashboard(web UI)

文章目录1. Dashboard部署添加epel的源:[root@server1 yum.repos.d]# cat epel-7.repo [epel]name=epelbaseurl=http://mirrors.aliyun.com/epel/7/x86_64/enabled=1gpgcheck=0[root@server1 yum.repos.d]# yum install jq // 安装jq,jq在epel源中[kubeadm@server1 ~]$ kubectl ge

2020-05-27 00:00:32 454

原创 kubernetes(k8s):Metrics-Server资源监控

文章目录1. metrics server是什么2. metrics-server部署1. metrics server是什么Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。Metrics API 只可以查询当前的度量数据,并不保存历史数据。Metrics A

2020-05-26 23:31:16 1106 1

原创 kubernetes(k8s):容器资源限制(内存限制、cpu限制、namespace限制)

文章目录1. k8s容器资源限制2. 内存资源限制实例3. cpu资源限制4. namespace设置资源限制5. namespace中pod的配额6. namespace的创建、使用和删除7. 清除资源限制和配额1. k8s容器资源限制k8s采用request和limit两种限制类型来对资源进行分配request(资源需求):即运行pod的节点必须满足运行pod的最基本需求才能运行pod。limit(资源限制):即运行pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。资

2020-05-26 22:19:32 20036 1

原创 kubernetes(k8s):访问控制(认证+授权+准入控制)

文章目录1. kubernetes API 访问控制2. 认证 Authentication1 访问k8s的API Server的客户端2 UserAccount 与 serviceaccount2.1 创建serviceaccount:2.2 添加secrets到serviceaccount中2.3 把serviceaccount和pod绑定起来2.4 创建useraccount3. 授权 Authorization3.1RBAC基于角色访问控制授权3.2 RoleBinding角色绑定3.3Cluste

2020-05-24 19:27:33 3713 1

原创 kubernetes(k8s):kubernetes调度机制、亲和、反亲和、污点、容忍

1. Kuberbetes调度调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。kube-scheduler 是 Kubernetes 集群的默认调度器,并且是集群控制面的一部分。如果你真的希望或者有这方面的需求,kube-scheduler 在设计上是允许你自己写一个调度组件并替换原有的 kube-scheduler。在做调度决定时需要考虑的因素包括:单独和整体

2020-05-24 17:42:59 1004 1

原创 kubernetes(k8s):使用statefulset部署mysql主从集群

官网地址文章目录1. statefullset部署mysql主从集群的原理(1)从以下的 YAML 配置文件创建 ConfigMap(2)从以下 YAML 配置文件创建服务(3)最后,从以下 YAML 配置文件创建 StatefulSet pod1. statefullset部署mysql主从集群的原理运行一个有状态的应用程序mysql-0是mastermysql-1和mysql-2是两个备份当mysql写的时候,找headless service中的mysql-0.mysql;当mysql读的

2020-05-22 19:24:56 4653 4

原创 kubernetes(k8s):管理有状态应用的工作负载 API 对象StatefulSet控制器和kubectl的弹性伸缩

文章目录1.StatefulSets简介2. statefulset通过headless service维持pod的拓扑状态2.1 通过headless service(无头服务)确保网络标识是一致2.2 StatefulSet控制器2.3 StatefulSet的两种应用状态2.4 挂接存储3. kubectl的弹性伸缩3.1 方式一:改变StatefulSet副本数量3.2 方式二:更改yaml文件3.3 方式三:命令 kubectl edit 编辑该字段:3.4 方式四:使用 kubectl patc

2020-05-22 18:40:51 637

原创 kubernetes(k8s):持久化卷(PV和PVC)

文章目录1. Persistent Volumes简介2. PV和PVC的生命周期3. NFS PV 示例4. NFS持久化存储实战(静态PV)5. StorageClass简介6. NFS动态分配PV示例1. Persistent Volumes简介PersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和使用它的Pod相互独立的。PV这个API对象

2020-05-22 17:39:49 637

原创 kubernetes(k8s):volumes 配置管理(emptyDir、hostPath、nfs方式挂载卷)

1. 卷的作用,K8S中的volume挂载方式容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。Kubernetes 卷具有明确的生命周期,与包裹它的 Pod 相同。 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时

2020-05-21 22:38:35 2942

原创 kubernetes(k8s):secret配置管理

文章目录1. secret配置管理的作用和类型2. 查看卷的挂载3. 每个namespace下有一个名为default的默认的serviceaccount对象4. opaque secret其value为base64编码后的值4.1 从文件中创建secret4.2 编写一个secret对象4.3 将secret挂载到volume中4.4 向指定路径映射secret密钥4.5 将secret设置为环境变量4.6 kubernetes.io/dockerconfigjson用于存储docker registry

2020-05-20 21:30:15 1050

原创 kubernetes(k8s):configmap配置管理

文章目录1. configmap的作用2.创建configmap的四种方式:2.1 使用字面值创建2.2 使用文件创建2.3 使用目录创建2.4 编写configmap的yaml文件3. 如何使用configmap3.1 使用configmap设置环境变量3.2 使用configmap设置命令行参数3.3 作为volume的方式挂载到pod内3.4 configmap热更新1. configmap的作用configmap和secret是两种特殊的存储卷,它们不是给pod提供存储空间用的,而是给管理员或者

2020-05-18 18:18:35 1397

原创 kubernetes(k8s):Ingress 配置(TLS certificates+Basic Authentication )和Rewrite地址重写

文章目录前言1. Ingress TLS 配置2. Ingress 认证配置3. ingress地址重写annotations参数前言TLS: TLS(Transport Layer Security)即安全传输层协议,在两个通信应用程序之间提供保密性和数据完整性。最典型的应用就是HTTPS。HTTPS,即HTTP over TLS,就是安全的HTTP,运行在HTTP层之下,TCP层之上,为HTTP层提供数据加解密服务。TLS 是进行 HTTPS 连接的重要环节,通过了 TLS 层进行协商,后续的 H

2020-05-17 23:05:45 1611

原创 kubernetes(k8s) :DaemonSet结合nodeselector部署ingress-controller到特定的node

文章目录1. 概述2. 部署1. 概述用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用HostNetwork直接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访问服务。优点是整个请求链路最简单,性能相对NodePort模式更好。缺点是由于直接利用宿主机节点的网络和端口,一个node只能部署一个ingress-controller pod。比较适合大并发的生产环境使用。2. 部署修改ingress

2020-05-17 22:25:10 1154

原创 kebernetes(k8s):更改service的工作模式为lvs(ipvs)之后,出现解析失败,curl出错的原因分析及解决方法

文章目录问题描述排查过程问题解决检验成果问题描述1.近期在k8s中,将service的iptables工作模式改为 lvs之后,出现不能解析的情况.将service的工作模式改为ipvs后,出现无法解析服务的情况,而且当访问service的VIP时,不能访问后端的endpoints。排查过程1.当在master创建一个service后,就会在后端的节点创建一个VIP,这个VIP和service的VIP是一样的。2.在后端查看ipvs的策略时,发现指向后端pod的ip都不对。分析:之所以解析不

2020-05-17 16:27:28 1508

原创 kubernetes(k8s): service 和 ingress

文章目录一 总述1 service 作用2 service资源及实现模型1 service 概述2 虚拟IP和服务代理1 虚拟IP2 代理模型二 service 资源基本应用1 创建service 资源1 使用命令行创建service资源2 使用配置文件创建service2 service 会话粘滞性1 概述2 设置字段解析3 部署实例并验证3 服务发现1 概述2 服务发现实现机制3 服务发现类型4 服务发现4 服务暴露1 service类型三. ingress资源应用1 概述2 ingress 和 ing

2020-05-17 09:38:47 2894

原创 kubernetes(k8s) :ingress 简介 +基础实验

文章目录1. ingress概述2. ingress-nginx 部署3. 创建ingress服务4. 通过域名的形式来访问后端5. 通过不同的域名定义到不同的后端6. 访问同一域名,不同的path时,调度到不同的后端apiVersion: extensions/v1beta11. ingress概述我们知道service的表现形式为IP:PORT,即工作在第四层传输层(TCP/IP层),那么对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器,这些应用层的转发机制仅通过kubernetes的se

2020-05-17 08:46:53 774

原创 kubernetes(k8s) :service实现服务发现和负载均衡

文章目录1.service是什么?2.service的类型2.1VIP和Service代理2.2没有selector的Service3. service的三种工作模式第一种: 是Userspace方式第二种: iptables模型第三种: ipvs模型4. service的四种类型5.Service如何实现?集群内部访问pod5.1创建service:(ClusterIP方式)5.2.Headless Service “无头服务”5.3将service的工作模式改为lvs(ipvs)6.Flannel vx

2020-05-16 10:12:21 6463

原创 kubernetes(k8s) :控制器(ReplicaSet、Deployment、DaemonSet、job、Cronjob)

文章目录1.控制器pod分类和控制器类型1.replication、controller和reolicaset控制器2.Deployment控制器3.DaemonSet控制器4.StatefulSet控制器5.job、cronjob和hpa控制器2. 控制器的部署和实例2.1 ReplicaSet应用2.2 Deployment应用2.3 DaemonSet应用2.4 job控制器2.5 Cronjob应用1.控制器Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现

2020-05-15 11:02:07 636

原创 kubernetes(k8s) :pod的生命周期&探针

文章目录1. pod的生命周期一、初始化容器二、init容器实验三、容器探测四、探针4.1 liveness测试,检测存活4.2 readiness探针测试,检测就绪4.3 就绪检测+存活检测并存1. pod的生命周期Pod 是 kubernetes 系统的基础单元,是由用户创建或部署的最小组件,也是 kubernetes 系统上运行容器化应用的资源对象。Kubernetes 集群中其他资源对象都是为 pod 这个资源对象做支撑来实现 kubernetes 管理应用服务的目的。Pod 可以包含多个容

2020-05-15 09:39:17 1062

原创 kubernetes(k8s) :Pod管理

1. 什么是PodPod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。2. 用自主命令的方式运行pod部署过程中所有需要的镜像均由server4 push到harbor仓库中各个节点必须配置有certs.d/reg.westos.org/ca.crt 认证可以从harbor仓库中拉取

2020-05-15 08:58:41 297

原创 kubernetes(k8s) :资源清单配置

1.基本概念理解什么叫资源?k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象。什么是资源清单?在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单创建资源的方法:apiserver 仅接受JSON格式的资源定义;yaml格式提供配置清单,apiserver 可自动将其转为JSON格式,而后再提交;2.资源清单的格式...

2020-05-14 15:47:23 472

原创 kubernetes(k8s):部署问题解决(节点状态为 NotReady)

问题使用kubectl get nodes查看已加入的节点时,出现了Status为NotReady的情况。root@master1:~# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster1 NotReady master 152m v1.18.1worker1 NotReady ...

2020-05-07 17:10:33 2046

原创 Docker学习(八)docker-machine 实现 自动化部署docker

1.docker-machine是什么1.简单来说它就是用来快速创建一个docker容器环境的,它是一个安装和管理 Docker 的工具。它有自己的命令行工具:docker-machine2.Docker 是一个 Client-Server 架构的应用,Docker是大家对Docker Engine简称,Docker包括以下三个部分Docker daemon一套与 Docker daemo...

2020-04-27 15:48:25 400 1

原创 kubernetes(k8s) : 基本概念+集群的部署

文章目录1.什么是kuberneteskubernetes的优点:2. kubernetes设计架构3. Kubernetes部署基础环境部署集群部署1.什么是kubernetes官方中文文档:https://www.kubernetes.org.cn/docs它是一个全新的容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Bor...

2020-04-26 23:52:07 827

原创 kubernetes:k8s与docker有啥关系

1. 简要介绍官方定义1:Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。官方定义2:k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。2. 与传统技术对比接下来我们看两张经典的图:一、从虚拟化角度:图1:图1是Docker容器与传统虚拟化方式的不同之处,传...

2020-04-26 16:56:42 230

原创 Docker学习(七)docker安全性支持(使用Cgroups机制实现对容器的资源控制)

文章目录对Docker安全的理解1.docker安全评估2.容器的资源控制(1)对容器资源控制:内存限制(2) 容器资源控制:CPU限额(3) 容器资源控制:Block IO限制(限制写入速度)对Docker安全的理解Docker作为最重视安全的容器技术之一,在很多方面都提供了强安全性的默认配置其中包括:容器root用户的Capability能力限制、Seccomp系统调用过滤、Appar...

2020-04-26 16:19:23 295

原创 Docker学习(六)docker容器数据卷管理+卷插件管理(convoy卷插件)

文章目录1.什么是Docker数据卷2.为什么要用数据卷bind mountdocker managed volumebind mount 和docker managed volume对比3.数据卷的特点4.如何添加数据卷5.bind mount数据卷6. docker managed volume数据卷7. Docker卷插件(plugins)convoy卷插件1.什么是Docker数据卷...

2020-04-25 18:01:14 574

原创 Docker学习(五)docker的跨主机网络访问(不同宿主机上的容器之间的通信)

1. 跨主机容器网络解决方案##2. macvlan容器网络方案的实现

2020-04-25 16:18:53 1324

原创 Docker学习(四)docker容器间的通信

前言1)Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair)。(2)Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效率极高。这是因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包将被直接复制到接收接口的接收缓存中,而无需通过外部物理网络设备进行交换。对于本地系统和容器...

2020-04-23 17:04:07 700

原创 Docker学习(三)docker的3种自定义网络(bridge、overlay、macvlan)

Docker 提供三种 user-defined 网络驱动:bridge, overlay 和 macvlanoverlay 和 macvlan 用于创建跨主机的网络文章目录1. 自定义网络(1)bridge模式1. 自定义网络自定义网络需要使用create命令,先来看看create命令可以跟哪些参数刚才原生网络不存在域名解析,但是自定义网络存在域名解析(1)bridge模式创建自...

2020-04-22 18:24:25 2169 1

原创 Docker学习(二)之三种原生网络(bridge,host,none)

docker自带的网络模式有bridge,none,host,docker network ls #查看docker网络文章目录1. docker的三种原生网络(1)bridge模式(2)host模式(3)none模式一、bridge模式docker的默认模式,docker进程第一次启动会创建一个docker0虚拟网桥,此宿主机上启动的容器会默认连接到这个网桥上,容器通过这块网桥NAT访...

2020-04-22 16:50:43 452

原创 Docker学习(一)docker网络

1.什么是Docker网络当你开始大规模使用Docker时,你会发现需要了解很多关于网络的知识Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求本文首先介绍了Docker自身的4种网络工作方式,然后介绍...

2020-04-22 16:34:28 310

空空如也

空空如也

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

TA关注的人

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