文章 86
评论 0
浏览 124459
Service

Service

一、kubernetes的服务调用 服务的访问分为俩种形式分别是服务之间的调用(南北流量),用户流量的访问(东西流量),k8s中提供的南北流量的解决方法是使用service,东西流量的解决方案是ingress。当然这里只介绍service。 传统架构的南北流量架构图 k8s中使用service的南北流量 Service架构 二、Service资源介绍 Service主要用于Pod之间的通信,由于Pod是一种临时资源可能随时会被调度重建,重建后Pod的IP地址也会进行变化,由于Pod的IP地址不确定性,我们无法使用Pod的IP地址来进行服务的访问,所以k8s中加入了一个service资源用来解决Pod的访问。Service一般会通过选择器选择一个或一组Pod,之后通过iptables或者ipvs的方式进行代理,service的请求会被转发到自己所代理的Pod。service资源创建后只要不进行修改他的IP地址就不会变化相对来说他的IP地址是固定的,k8s中还引用了dns组件用来解析service资源的名称得到他的IP地址,所以集群中访问service,可以直接通过service的名....

HPA

HPA

Horizontal Pod Autoscaler(HAP),是一个Pod 水平自动扩缩(Horizontal Pod Autoscaler) 可以基于 CPU 利用率自动扩缩 ReplicationController、Deployment、ReplicaSet 和 StatefulSet 中的 Pod 数量。 除了 CPU 利用率,也可以基于其他应程序提供的自定义度量指标来执行自动扩缩。 Pod 自动扩缩不适用于无法扩缩的对象,比如 DaemonSet。 Pod 水平自动扩缩特性由 Kubernetes API 资源和控制器实现。资源决定了控制器的行为。 控制器会周期性地调整副本控制器或 Deployment 中的副本数量,以使得类似 Pod 平均 CPU 利用率、平均内存利用率这类观测到的度量值与用户所设定的目标值匹配。 一、HAP自动扩缩容 HAP的api版本有三个分别是: HPA v1为稳定版自动水平伸缩,只支持CPU指标,需要安装metrics-server V2为beta版本,分为v2beta1(支持CPU、内存和自定义指标) v2beta2(支持CPU、内存、自定义....

Label与Selector

Label与Selector

Label:对k8s中各种资源进行分类、分组,添加一个具有特别属性的一个标签。 Selector:通过一个过滤的语法进行查找到对应标签的资源 一、Label & Selector 官方文档:https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/labels/ 当Kubernetes对系统的任何API对象如Pod和节点进行“分组”时,会对其添加Label(key=value形式的“键-值对”)用以精准地选择对应的API对象。而Selector(标签选择器)则是针对匹配对象的查询方法。注:键-值对就是key-value pair。 例如,常用的标签tier可用于区分容器的属性,如frontend、backend;或者一个release_track用于区分容器的环境,如canary、production等。 1.1 Label的介绍 label可以给k8s中大多数资源进行标签的定义,主要作用为用于指定对用户有意义且相关的对象的标识属性,但并不对资源工作参数任何影响。 标签是键值对。有效的标签键有两个段....

kubectl客户端工具备忘录

kubectl客户端工具备忘录

一、kubectl备忘录 1.1 kubectl的bash自动补全 在 bash中设置当前 shell的自动补全,需先安装 bash-completion包否则会报错 #方法1:临时生效退出重新登录会失效 source <(kubectl completion bash) #方法2:永久生效写入到/etc/profile文件中,这样会导致所有用户都会生效,如果只给一个用户生效请写到~/.bashrc文件中 echo 'source <(kubectl completion bash)' >>/etc/profile 您还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用 cat ~/.bashrc source <(kubectl completion bash) alias k=kubectl #别名 complete -F __start_kubectl k #设置completion #执行命令如下 k get pod 1.2 kubectl上下文和配置 kubectl客户端工具与k8s集群通信,需要一个上下....

kubernetes之kubeadm安装1.24.+版本

kubernetes之kubeadm安装1.24.+版本

一、基础环境准备 集群规划信息: 主机名称IP地址说明 master01192.168.10.51master节点 master02192.168.10.52master节点 master03192.168.10.53master节点 node01192.168.10.54node节点 node02192.168.10.55node节点 master-lb127.0.0.1:16443nginx组件监听地址 说明: master节点为3台实现高可用,并且通过envoy进行代理master流量实现高可用,master也安装node组件。 node节点为2台 nginx在所有节点安装,监听127.0.0.1:16443端口 系统使用centos7.X 1.1 基础环境配置 1.所有节点配置hosts cat >>/etc/hosts<<EOF 192.168.10.11 master01 192.168.10.12 master02 192.168.10.13 master03 192.168.10.14 node01 192.168.10.15 n....

kubernetes之控制器资源

kubernetes之控制器资源

一、 RC&RS Replication Controller(复制控制器,RC)和ReplicaSet(复制集,RS)是两种简单部署Pod的方式。因为在生产环境中,主要使用更高级的Deployment等方式进行Pod的管理和部署,这俩个控制器一般很少使用。 1.1 Replication Controller 官方文档:https://kubernetes.io/zh/docs/concepts/workloads/controllers/replicationcontroller/ Replication Controller(简称RC)可确保Pod副本数达到期望值,也就是RC定义的数量。换句话说,Replication Controller可确保一个Pod或一组同类Pod总是可用。 如果存在的Pod大于设定的值,则Replication Controller将终止额外的Pod。如果太小,Replication Controller将启动更多的Pod用于保证达到期望值。与手动创建Pod不同的是,用Replication Controller维护的Pod在失败、删除或终止时会....

kubernetes之Pod资源

kubernetes之Pod资源

一、Pod介绍 官方文档:https://kubernetes.io/zh/docs/concepts/workloads/pods/ Pod是Kubernetes中最小的单元,它由一组、一个或多个容器组成,每个Pod还包含了一个Pause容器,Pause容器是Pod的父容器,主要负责僵尸进程的回收管理,通过Pause容器可以使同一个Pod里面的多个容器共享存储、网络、PID、IPC等。 Pod在生产环境中基本不单独使用,一般都是配合控制器来使用 Pod结构图 二、Pod示例文件 yaml演示文件 apiVersion: v1 # 必选,API的版本号 kind: Pod # 必选,类型Pod metadata: # 必选,元数据 name: pod # 必选,符合RFC 1035规范的Pod名称 namespace: default # 可选,Pod所在的命名空间,不指定默认为default,可以使用-n 指定namespace labels: # 可选,标签选择器,一般用于过滤和区分Pod app: pod #可以写多个 annotations: #可选,注释列表,可以写多个 a....

kubernetes基础概念

kubernetes基础概念

一、kubernetes基础 Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目,Kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。 有了docker为什么还需要使用kubernetes 在真正的业务场景中一般会部署大量的业务容器,而直接使用裸容器的方式来管理业务容器环境是比较吃力的,但是也有一些其他工具提供了docker单机编排的功能如docker-compose,并且在某些程序需要使用多个副本来实现高可用或增加负载节点时docker也无法直接提供支持而kubernetes可以使用控制器来实现容器的多个副本以及一些更高级的功能。并且在某些业务容器运行过程当中会出现一些假死的状态,需要请求健康检查接口来判断容器是否存活的场景时dockers也无法提供支持而kubernetes中可以直接使用探针进行监控检测。kubernetes会极大的减少运维人员的工作量。 集群架构如下 集群架构说明 kubernetes分为master节点与node节点是一个主从架构,master节点是整个集群的管理控制中是不建议运....

生而为人