随笔分类 - docker&k8s
摘要:1.概述 helm是k8s的另外一个项目,相当于linux的yum,在yum仓库中,yum不光要解决包之间的依赖关系,还要提供具体的程序包,helm仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如hub.docker.com、私有仓库. helm提供了一个应用所需要的所有清单文件
阅读全文
摘要:1.自定义指标-prometheus node_exporter是agent;PromQL相当于sql语句来查询数据; k8s-prometheus-adapter:prometheus是不能直接解析k8s的指标的,需要借助k8s-prometheus-adapter转换成api; kube-sta
阅读全文
摘要:1.部署metrics-server 从v1.8开始,引入了新的功能,即把资源指标引入api,资源指标:metrics-server,自定义指标:prometheus,k8s-prometheus-adapter(把prometheus采集的数据转化成k8s可理解的数据). 新一代架构: a.核心指
阅读全文
摘要:1.调度器(scheduler) 调度器的功能是调度Pod在哪个Node上运行,这些调度信息存储在master上的etcd里面,能够和etcd打交道的只有apiserver; kubelet运行在node节点上,监控着Node节点上的pod状态,并参与pod的创建等工作; kube-proxy也运行
阅读全文
摘要:1.k8s网络通信 a.容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现; b.pod之间的通信:pod ip < > pod ip,pod和pod之间不经过任何转换即可通信; c.pod和service通信:pod ip < > cluster ip(即service ip)< >p
阅读全文
摘要:1.部署dashboard kubernetes-dashboard运行时需要有sa账号提供权限 Dashboard官方地址:https://github.com/kubernetes/dashboard a.创建一个sa并绑定到cluster-admin上 b.修改Service的type为Nod
阅读全文
摘要:一个在名称空间内的对象的完整url模板: Object_URL: /apis/<GROUP>/<VERSION>/namespaces/<NAMESPACE_NAME>/<KIND>[OJJECT_ID] role based access control,将权限授权给角色role,让用户扮演某个角
阅读全文
摘要:1.概述 用kubectl向apiserver发起的命令,采用的是http方式,K8s支持多版本并存. kubectl的认证信息存储在~/.kube/config,所以用curl无法直接获取apis中的信息,可以采用代理方式 2.创建serviceAccount 3.创建useraccount 参考
阅读全文
摘要:1.概述 无状态应用更关注群体,任何一个成员都可以被取代,有状态应用关注的是个体。用deployment控制器管理的nginx、myapp等都属于无状态应用,像mysql、redis、zookeeper等都属于有状态应用,他们有的还有主从之分、先后顺序之分. statefulset控制器能实现有状态
阅读全文
摘要:1.configmap configmap和secret是两种特殊的存储卷,它们不是给pod提供存储空间用的,而是给管理员或者用户提供了从外部向pod内部注入信息的方式. configmap:把配置文件放在配置中心上,然后多个pod读取配置中心的配置文件,不过,configmap中的配置信息都是明文
阅读全文
摘要:1.存储卷概述 因为pod是有生命周期的,pod一重启,里面的数据就没了,所以我们需要数据持久化存储,在k8s中,存储卷不属于容器,而是属于pod,也就是说同一个pod中的容器可以共享一个存储卷,存储卷可以是宿主机上的目录,也可以是挂载在宿主机上的外部设备. 存储卷类型: emptyDIR存储卷:p
阅读全文
摘要:上一篇中用node ip + 非80端口,访问k8s集群内部的服务.实际生产中更希望用node ip + 80端口的方式,访问k8s集群内的服务. 修改了这几处: 将deployment改为DaemonSet;删掉replicas; 将之前的标签改的简单点--app: ingress-nginx;
阅读全文
摘要:1.ingress概述 图解:第一个service起到的作用是:引入外部流量,也可以不用此方式,以DaemonSet控制器的方式让Pod共享节点网络,第二个service的作用是:对后端pod分组,不被调度时使用,如果后端pod发生变动,则ingress就会将变动信息注入到,ingress cont
阅读全文
摘要:1.Service概述 service是kubernetes中最核心的资源对象之一,service和pod之间是通过Label串起来,相同的Service的pod的Label是一样的.同一个service下的所有pod是通过kube-proxy实现负载均衡.而每个service都会分配一个全局唯一的
阅读全文
摘要:1.生产中,很少会跑一个自主式pod,一般由控制器去创建pod,其配置文件中内嵌了pod的创建方式. pod控制器:ReplicaSet、Deployment、DaemonSet、Job、Cronjob、StatefulSet ReplicaSet:代用户创建指定数量的pod副本数量,确保pod副本
阅读全文
摘要:1.pod资源-spec.containers - name:镜像运行起来之后叫容器,该字段为容器名 image:镜像名字 imagePullPolicy:表示从哪拉取镜像, Always:不管本地有没有镜像,都要从仓库中下载镜像,也就是说,即使本地有镜像了,也不使用本地镜像,而是从仓库下载; Ne
阅读全文
摘要:1.资源分类 2.创建资源的方法 apiserver仅接受json格式的资源定义;yaml可以无损转换为json,所以使用yaml格式提供配置清单,apiserver可自动将其转换为json格式,然后再提交.使用命令kubectl run,最终也是自动转为json格式的资源定义. 大部分资源的配置清
阅读全文
摘要:1.kubectl命令就是apiserver的客户端工具,可以实现对nodes资源的增删改查. 2.发布端口 3.DNS解析 4.动态升级;手动修改svc的参数 此时这个svc会让node节点开一个端口,监听在30515上,访问http://10.0.0.20:30515/或http://10.0.
阅读全文
摘要:1.环境准备 2.安装 初始化k8s集群 3.查看信息 4.node上执行 也可以从这里下载镜像registry.cn-hangzhou.aliyuncs.com/google_containers node节点上需要的三个镜像 两个节点加入master 参考博客:https://www.jians
阅读全文
摘要:1.docker的三种编排工具 Docker的第一类编排工具: a.docker compose(docker原生):只能对一个主机上的容器进行编排,无法编排多个主机上的容器; b.docker swarm(docker原生):可以对多个主机上的容器进行编排; c.docker machine(do
阅读全文