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

阅读全文

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

阅读全文

K8s相关组件功能原理介绍

一个K8s集群由master和node节点组成,master和node上分别包含一些组件,那么我们今天就来看下这两部分分别包含什么组件,并进行简单学习一、Naster节点主要包含APIServer、Scheduler、Controllermanager、etcd几大组件。1.APIServer提供其他模块之间的数据交互和通信的枢纽(其他模块通过APIServer查询或修改数据,只有APIServer才直接和etcd进行交互)Kubernetes集群中,APIServer扮演着通信枢纽的位置。APIServer不仅负责和etcd交互(其...

阅读全文

Pod常见状态以及相关问题排查的方式

我们在K8S环境中常见的一些POD状态这里进行罗列,然后根据每种状态来看看对应的解决方案有哪些POD常见有以下几种状态1、PendingPod创建已经提交给k8s,但是因为某种原因不能顺利创建,例如下载镜像慢,调度不成功等故障分析:Pending说明Pod还没有调度到某个Node上面。可以通过kubectldescribepod<pod-name>命令查看到当前Pod的事件,进而判断为什么没有调度。可能的原因包括资源不足,集群内所有的Node都不满足该Pod请求的CPU、内存、GPU等资源2、RunningPod已经绑...

阅读全文

K8S工作负载和POD详解

1.POD容器组在Kubernetes中,pods是能够创建、调度、和管理的最小部署单元,是一组容器的集合,而不是单独的应用容器同一个Pod里的容器共享同一个网络命名空间,IP地址及端口空间。从生命周期来说,Pod是短暂的而不是长久的应用。Pods被调度到节点,保持在这个节点上直到被销毁。1)容器分类InfrastructureContainer:基础容器   用户不可见,无需感知   维护整个Pod网络空间InitContainers:初始化容器,一般用于服务等待处理以及注册P...

阅读全文

k8s部署Mysql

在Kubernetes上部署数据库时,需要使用持久性存储卷为Pod提供存储。首先创建pv和pvc,然后再将两者绑定,PersistentVolume和PersistentVolumeClaim,主要是管理服务持久化的存储资源Volume创建持久卷mysql_pv.yamlapiVersion: v1kind: PersistentVolumemetadata:  name: mysql-pv  labels:    ...

阅读全文

k8s集群获取token添加node/worker节点的方法

在k8s安装过程中,kubeadm初始生成的token有效期只有24小时,但是集群在后期扩容会逐渐扩大,新增节点的时候需要重新生成token,具体操作如下kubeadm token create --print-join-command#返回W1119 10:40:21.639789   10340 configset.go:202] WARNING: kubeadm cannot validate component...

阅读全文

centos7使用docker部署k8s集群环境

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。系统约定k8s-master 192.168.90.220 Centos7k8s-node1 192.168.90.221 Centos7k8s-node2 192.168.90.222 Centos7我们使用kubeadm搭建k8s集群,为了支持master与node之...

阅读全文