K8s存储资源对象StorageClass

今天学习下持久化存储的资源对象StorageClass,这个出现主要是通过StorageClass的定义,管理员可以将存储资源定义为某种类型的资源,比如快速存储、慢速存储等,kubernetes根据StorageClass的描述就可以非常直观的知道各种存储资源的具体特性了,这样就可以根据应用的特性去申请合适的存储资源了。我们此处存储还是用NFS,创建StorageClass大概有以下几步1)创建Service Account用来管控NFS provisioner在k8s集群中运行的权限2)创建StorageClass,负责...

阅读全文

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....

阅读全文

Centos7部署NFS网络文件系统

现在都基本使用Centos7,所以这次重新写一个Centos7的,记录下方便以后使用1.系统约定NFS Server 192.168.137.10NFS Client 192.168.137.11共享目录/data/nas2.基础环境配置确保防火墙和selinux关闭systemctl stop firewalldsystemctl disable firewalldsed -i 's/enforcing/disabled/'&...

阅读全文

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...

阅读全文

MySQL CPU占用过高的排查方法

MySQLCPU过高的常见原因有以下几点业务连接过多,并发太高系统环境配置不合理SQL语句效率低、不合理硬件问题鉴于以上几点常见问题,我们可以通过合适的手段来进行排查,来确认故障原因1.先从系统层面进行排查可以使用top命令来查看mysq的进程来确认mysql是都CPU占用过高通过top命令可以查看到CPU使用率高的mysql进程的PID,然后可以通过PID来查看具体的线程情况,命令是top -H -p <PID>通过此命令可以查看到CPU使用异常的线程也可以通过pidstat命令来查看pidstat ...

阅读全文

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端...

阅读全文

Hyper-v配置内网固定IP的虚拟机

本地用的Hyper-v创建的虚拟机,我需要虚拟机IP固定,但是能用主机网卡共享上外网的需求,下面记录下配置方法首先我们需要新增交换机,具体配置如下图接着我们去网络管理里面看看这个虚拟网卡上图VNET就是我创建的网卡,同时我们还需要在我原有上网的网卡中做下配置,我用的WLAN这个网卡,需要勾选允许其他网络通过此计算机的internet来连接,同时家庭网络连接选择我们刚才创建的VNET接着我们去VNET网卡中可以看到默认配置了一个地址192.168.137.1,这个地址我们最好不要修改,我没尝试过,这个是作为一个网关地址接着我们去虚拟机里面设置一下固定地址就...

阅读全文

k8s新增node节点一直notready状态的解决方法

今天在原有的k8s集群上新增一个节点,在使用kubeadmjoin命令增加node节点成功以后,等了5分钟,在master上查看新加节点状态一直是notready状态,然后进行排查在node节点上执行命令查看kubelet日志journalctl -f -u kubelet日志如下:Mar 09 13:52:46 k8s-cpu-node2 kubelet[12975]: E0309 13:52:46.191060   12975&n...

阅读全文