ETCD状态检查以及碎片压缩

在安装了etcd3.10版本之后,使用etcdctl和etcd交互时需要将api版本设置为3,默认,为了向后兼容etcdctl使用v2API来和etcd服务器通讯。为了让etcdctl使用v3API来和etcd通讯,API版本必须通过环境变量ETCDCTL_API设置为版本3export ETCDCTL_API=3查看ETCD版本方法etcd --version#返回etcd Version: 3.4.13Git SHA: ae9734ed2Go...

阅读全文

k8s污点和容忍度

节点亲和性是Pod的一种属性,它使Pod被吸引到一类特定的节点。这可能出于一种偏好,也可能是硬性要求。Taint(污点)则相反,它使节点能够排斥一类特定的Pod。容忍度(Tolerations)是应用于Pod上的,允许(但并不要求)Pod调度到带有与之匹配的污点的节点上。污点和容忍度(Toleration)相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以应用一个或多个污点,表示对于那些不能容忍这些污点的Pod,是不会被该节点接受的。污点和容忍度可以认为是过滤的实现,当Pod不能容忍节点上的污点时,节点将被过...

阅读全文

k8s调度策略nodename和nodeselector

在k8s中有几大核心组件,Scheduler调度器是其中的一个。调度器通过kubernetes的watch机制来发现集群中新创建且尚未被调度到Node上的Pod。调度器会将发现的每一个未调度的Pod调度到一个合适的Node上来运行。对每一个新创建的Pod或者是未被调度的Pod,kube-scheduler会选择一个最优的Node去运行这个Pod。然而,Pod内的每一个容器对资源都有不同的需求,而且Pod本身也有不同的资源需求。因此,Pod在被调度到Node上之前,根据这些特定的资源调度需求,需要对集群中的...

阅读全文

K8s配置管理configmap和secret

k8s中的secret和configmap是为了让POD和配置解耦,使得从集群外部可以想容器内部注入配置信息、环境变量等功能ConfigMap扮演了K8S集群中配置中心的角色,ConfigMap定义了Pod的配置信息,可以以存储卷的形式挂载至Pod中的应用程序配置文件目录,从ConfigMap中读取配置信息ConfigMap是明文保存的,如果用来保存数据库账号密码这类信息可以使用通过secret来保存,secret的功能和ConfigMap一样,不过secret是通过Base64的编码机制保存配置信息可以通过命令行的方式来创建configmap,如下ku...

阅读全文

k8s亲和性和反亲和性

k8s中的亲和性主要是用来做pod的调度策略,可以使pod调度到满足指定条件的节点通常我们还需要给node设置标签,pod通过设置的label标签相关的策略可以使pod关联到对应的label节点上我们先来看下测试环境的node标签kubectl get node --show-labelsNAME         STATUS   ROLES     &...

阅读全文

K8s存储emptyDir/hostPath/pv与pvc

K8s存储emptyDir、hostPath、pv和pvcpod容器组在宕机或者删除以后,数据会随着pod的销毁而消失,所以需要使用一些存储方案来做数据的持久化,目前有很多存储方案,主要有emptyDir、hostPath、NFS、云存储我们下面就通过例子来看看上述几种存储方式的区别1.emptyDiremptyDir类型的volume在pod分配到node上时被创建,kubernetes会在node上自动分配一个目录,因此无需指定宿主机node上对应的目录文件。这个目录的初始内容为空,当Pod从node上移除时,emptyDir中的数据会被永久删除。e...

阅读全文

K8s配置master可运行调度pod

默认配置下Kubernetes不会将Pod调度到Master节点,看官网意思是说有安全的考量但是我们本地资源有限,也顺便学习下k8s的污点相关知识,所以先看下如何让master也可以参与进行pod的调度可以使用一下命令进行查看kubectl describe node k8s-master |grep TaintsTaints:             node-role....

阅读全文

ubuntu18.04部署k8s集群

之前有用centos7的环境部署过,这次把ubuntu18.04的版本也记录一下,之前的笔记可以查看https://sulao.cn/post/802.html部署过程差不了太多,这次ubuntu版本部署网络组建选择的是calico,我们直接查看下部署过程吧系统约定192.168.137.11     k8s-master192.168.137.12      k8s-node1192.168.137.13  &nbs...

阅读全文

k8s配置使用ipvs替代iptables做代理转发

从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是采用的hash表,因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。1.k8s开启ipvs的方法首先我们需要在内核中开启相关模块cat >> /etc/sysctl.conf << EOFnet.ipv4.ip_forward = 1net.bridge.bridge-nf-ca...

阅读全文

k8s集群中service中的port/nodePort/targetPort/hostPort的区别

Service定义了pods的逻辑集合和访问这个集合的策略。Pods集合是通过定义Service时提供的Label选择器完成的Service的引入旨在保证pod的动态变化对访问端透明,访问端只需要知道service的地址,由service来提供代理Service的抽象使得前端客户和后端Pods进行了解耦,支持ClusterIP,NodePort以及LoadBalancer三种类型1.portk8s集群内部服务之间访问service的入口。即clusterIP:port是service暴露在clusterIP上的端口,例如mysql容器暴露了3306端...

阅读全文