
kubernetes
文章平均质量分 77
kubernetes学习
爱上口袋的天空
一步一流年,止不住的脚步,挽不回的青春!
展开
-
云原生KubeSphere部署Mysql
一、简介使用KubeShere部署应用架构图:注意三点:应用的部署方式 应用的数据挂载(数据、配置文件) 应用的可访问行性二、部署MyS原创 2022-04-23 09:16:56 · 2492 阅读 · 4 评论 -
Kubernetes之ConfigMap配置
1、简介ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。核心用途就是容器和配置的分离解耦。如启用一个redis容器,redis容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件redis.conf,存储数据可以用持久存储实现和容器的分离解耦,配置文件也能够实现和容器的分离解耦,也就是说redis容器能够直接读取并使用预先配置好的配置文件(而不是使用容器中默认自带的配置文件).这就是configMap的功能。Config...原创 2022-04-17 13:38:58 · 1332 阅读 · 0 评论 -
k8s之PV以及PVC
一、简介在我们整个k8s集群中,外部可能有有一些存储的资源,比如说nfs,mfs,iscsi块存储,这些存储都是由我们的存储工程师去创建的,k8s工程师想要直接去使用他们的话,肯定是很不方便的,因为不同的存储方式不一样。在k8s中,给我们提供了一个新的对象资源,叫做PV,不同的PV会对应到不用的存储资源,这样我们在部署pod的时候直接调用集群内部的pv,即可完成对存储资源的使用,但是呢,直接调用PV的话,有个问题就是,这个pv是否满足我们的需求,因为我们可能需要的是存储能力比较大存储资...原创 2022-04-17 11:44:04 · 11465 阅读 · 1 评论 -
k8s之存储抽象nfs挂载
1、简介存储抽象,即将存储单独用一个服务去联系起来。以前我们习惯把各个pod的卷挂载到其主机上的某个位置,但k8s的集群特点之一是master节点的随机分配,若有一个pod宕机,k8s会自动创建一个新的pod,当此时若新的pod没有分配到原先的节点上,则原理与本机挂载的文件将作废,导致数据丢失。为了解决这个问题,我们需要有一个统一的存储服务,来管理整个集群常见的存储框架有Glusterfs、NFS、CephFS等2、环境准备2.1、首先我们在k8s的3台服务器上都安装nfs...原创 2022-04-17 09:41:34 · 4620 阅读 · 0 评论 -
k8s之Service简介、ClusterIP(内网ip) 以及NodePort(外网ip)
一、简介我们只知道能够利用Deployment来创建一组Pod来提供具有高可用性的服务。虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:Pod IP 会随着Pod的重建产生变化 Pod IP 仅仅是集群内可见的虚拟IP,外部无法访问(主从结点外的机器无法访问)这样对于访问这个服务带来了难度。因此,kubernetes设计了Service来解决这个问题。Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。转载 2022-04-16 19:55:27 · 8356 阅读 · 1 评论 -
k8s之Deployment简介
一、简介 在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。在kubernetes中Pod控制器的种类有很多,本章节只介绍一种:Deployment。二、Pod和Controller关系Pod和Controller关系:Pod是通过Controller实现应用的运维比如伸...转载 2022-04-16 17:33:17 · 1090 阅读 · 0 评论 -
Kubernetes之Pod生命周期简介
一、Pod生命周期简介一般将pod对象从创建至终止的这段时间范围称为pod的生命周期,它主要包含下面的过程:pod创建过程 运行初始化容器(init container)过程 运行注容器(main container)过程 容器启动后钩子(post start),容器终止前钩子(pre stop) 容器的存活性探测(liveness probe),就绪性探测(readness probe) pod终止过程在整个声明周期中,Pod会出现5种状态(相位),如下:挂起(Pendi转载 2022-04-15 22:57:22 · 2702 阅读 · 0 评论 -
Kubernetes之Pod环境变量配置
一、配置容器的环境变量1.1 编写yaml文件如下,编写pod_env.yaml文件,内容如下,通过env关键字来定义环境变量,环境变量通过name,value对来设置,如下:apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: v1kind: Podmetadata: name: pod-env namespace: dev labels: user: redrose2100sp转载 2022-04-15 21:22:39 · 1547 阅读 · 0 评论 -
Kubernetes之Pod镜像拉取策略配置
一、默认的镜像拉取策略1.1 当镜像指定的标签是latest时,默认策略是每次都下载更新编辑pod-imagepullpolicy.yaml文件,内容如下:apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: v1kind: Podmetadata: name: pod-image-pull-policy namespace: dev labels: user: redrose21.转载 2022-04-15 21:17:31 · 4392 阅读 · 0 评论 -
Kubernetes之Pod组件重启策略
一、重启策略pod的重启策略有3种,如下:Always:容器失效时,自动重启该容器,这是默认值 OnFailure:容器停止运行且退出码不为0时重启 Never:不论状态为何,都不重启该容器重启策略适用于pod对象中的所有容器,首次需要重启的容器,将在其需要时立即进行重启,随后再次需要重启的操作将由kubelet延迟一段时间后进行,且反复的重启操作的延迟时长为10s,20s,40s,80s,160s,300s,300s是最大延迟时长如下,修改pod_restartPolicy.yaml文转载 2022-04-15 20:53:10 · 2973 阅读 · 0 评论 -
Kubernetes之Pod常用操作
一、命令行查看pod1、不指定命名查看pod通过如下命令,不指定命名空间,查看的是default命名空间的pod,如下,default命名空间中没有pod[root@master demo]# kubectl get nsNAME STATUS AGEdefault Active 5d23hkube-node-lease Active 5d23hkube-public ...转载 2022-04-15 20:42:50 · 462 阅读 · 0 评论 -
Kubernetes之Pod组件简介、启动命令
一、Pod简介1、Pod结构每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少 Pause容器,这个是每个Pod都会有的根容器,它的作用有两个: 可以以它为依据,评估整个Pod的健康状态 可以在根容器上设置ip地址,其他容器都可以通过此ip(Pod IP),以实现Pod内部的网络通信,这里是Pod内部的通信,Pod之间的通信采用虚拟二层网络技术实现,比如Flanel技术 2、Pod定义如下查看pod的yaml文件的一级属性,即一级转载 2022-04-15 19:28:37 · 611 阅读 · 0 评论 -
Kubernetes之Namespace名字空间
一、名字空间简介在 Kubernetes 中,“名字空间(Namespace)”提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求。 名字空间作用域仅针对带有名字空间的对象,例如 Deployment、Service 等,对于类似持久化存储的对象如StorageClass、Node、PersistentVolume 等则不适用名字空间。名字空间适用于存在很多跨多个团队或项目的用户的场景。对于只有几到几十个...转载 2022-04-15 09:07:50 · 909 阅读 · 0 评论 -
k8s部署dashboard
1、部署kubernetes官方提供的可视化界面https://github.com/kubernetes/dashboard执行下面的命令:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml2、设置访问端口执行下面的命令:kubectl edit svc kubernetes-dashboard -n原创 2022-04-14 23:36:25 · 582 阅读 · 0 评论 -
什么叫做私有网络VPC?
一、简介什么是专有网络?创建云服务器或者云数据库需要选择或创建专有网络,阿里云专有网络VPC有什么用?专有网络是上云用户在云上的私有网络,云上用户可以自己完全掌控的私有网络,可以自定义设置IP地址、配置路由表及网关等操作二、什么是专有网络?专有网络是阿里云用户在云上创建的私有网络,用户自己掌控,可以自定义IP地址段、创建交换机、配置路由表和网关等操作。用户可以在自己的专有网络上创建云服务器ECS、云数据库及负载均衡等资源。专有网络VPC可以理解为用户在阿里云...原创 2022-04-13 19:13:19 · 3727 阅读 · 0 评论 -
云平台简介
1、为什么用云平台环境统一 按需付费 即开即用 稳定性强国内常见云平台:阿里云、百度云、腾讯云、华为云、青云......国外常见云平台:亚马逊 AWS、微软 Azure ...2、公有云购买云服务商提供的公共服务器公有云是最常见的云计算部署类型。公有云资源(例如服务器和存储空间)由第三方云服务提供商拥有和运营,这些资源通过 Internet 提供。在公有云中,所有硬件、软件和其他支持性基础结构均为云提供商所拥有和管理。Microsoft Azure 是公有云的一个示例转载 2022-04-12 22:43:42 · 1593 阅读 · 0 评论 -
k8s应用flannel失败解决Init:ImagePullBackOff
按照搭建Kubernetes时官网给的命令 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml部署完成时查看[root@k8s-master01 flannel]# kubectl get pod -n kube-systemNAME READY STATUS原创 2021-05-09 16:44:47 · 3281 阅读 · 2 评论 -
k8s常用的相关命令
查看节点信息 命令:kubectl get nodes 查看详细的组件信息 命令:kubectl get pod -n kube-system -o wide 查看某个pod的状态 命令:kubectl describe pod pod名称 -n kube-system 更新pod 命令:kubectl apply -f kube-flannel.yml 查看集群信息 命令:kubectl cluster-info 查看k8s版本 命令:kubectl version 查看所有名..原创 2021-05-09 17:10:50 · 833 阅读 · 0 评论 -
k8s的yaml相关指令以及操作案例
1.required属性指令,必须存在的属性【创建资源清单的时候没有这些属性的存在它是不允许被执行的】2.optional,主要属性【这些属性比较重要,如果不指定的话系统会自动补充默认值】3.other,额外的的一些属性。4.查看资源有那些资源清单属性,使用以下命令# 查询所有的资源清单资源kubectl explain pod# 查看属性说明kubectl explain pod.apiVersion5.下面我们定义一个deployment基于上传到原创 2021-05-15 10:35:03 · 595 阅读 · 1 评论 -
解决flannel下k8s pod及容器无法跨主机互通问题
初学k8s,之前的步骤都一切顺利,但在搭建k8s集群并整合flannel时,即使关闭了防火墙跨主机间容器、pod始终无法ping通。这是由于linux还有底层的iptables,所以在node上分别执行:iptables -P INPUT ACCEPTiptables -P FORWARD ACCEPTiptables -Fiptables -L -n问题完美解决...转载 2021-05-09 22:37:59 · 1300 阅读 · 0 评论 -
k8s之安装私有仓库Harbor以及从harbor推送/拉取镜像实战
1.简介Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。2.和前面的k8s联合使用我们需要配置/etc/hosts,4台机器都配置3.安装依赖环境命令:yum instal原创 2021-05-15 09:10:31 · 1770 阅读 · 0 评论 -
k8s存储之挂载阿里云oss对象存储
1.准备工作1)k8s集群,我是通过kubeadm搭建的2节点集群2)准备好阿里云的OSS账号,并创建bucket2.在每台机器上安装阿里云ossfs软件。这个软件必须要安装,因为pv/pvc如果想要用阿里云的oss的话,这是必须的软件。安装步骤参见阿里云OSS官方文档,我的机器是二节点centos7,下边我就写一下centos7该怎么安装ossfs。1)下载安装包 wget http://gosspublic.alicdn.com/ossfs/ossfs_1.8...原创 2021-06-12 15:53:27 · 5077 阅读 · 3 评论 -
k8s部署fastdfs
1.环境准备1.1、准备好3台服务器,这里我以两台服务器搭建的k8s集群,还有一台用来搭建好harbor远程仓库 1.2、准备好构建fdfs所需的安装包 1.3、准备好fastdfs中相关配置文件模板 2、编写创建fastdfs镜像的Dockerfile脚本内容如下:FROM centos:7MAINTAINER kgf <kgf@123.com>ENV FASTDFS_PAT...原创 2021-06-14 18:09:54 · 3629 阅读 · 0 评论 -
k8s集群环境搭建
1.环境准备1.1)机器环境 节点CPU核数必须是 :>= 2核 ,否则k8s无法启动 DNS网络: 最好设置为 本地网络连通的DNS,否则网络不通,无法下载一些镜像 linux内核: linux内核必须是 4 版本以上, 因此必须把linux核心进行升级 准备3台虚拟机环境,或者是3台阿里云服务器都可。 centos002: 此机器用来安装k8s-master的操作环境 ...原创 2021-05-09 16:59:10 · 585 阅读 · 1 评论 -
k8s部署微服务
1、环境准备提前搭建好的k8s集群准备: 192.168.56.30(master节点) 192.168.56.31(node节点)harbor远程仓库准备: 192.168.56.142、微服务的应该程序准备kgf-eureka : 注册中心kgf-gateway: 网关kgf-openfeign-client: 使用feign调用远程程序的客户端springboot-test-demo: 被客户端调用的springboot服务,这...原创 2021-06-27 13:38:48 · 7987 阅读 · 1 评论 -
云架构及其基本组件
1.云原生技术何为云原生? 云原生技术: 以k8s和为核心的一套云原生架构体系叫做云原生技术; 软件的架构设计遵循kubernetes软件架构设计思想,云原生架构; 云原生: 1)架构思想:软件架构开发思想 2)应用: 让开发的软件或者服务(MySQL,es,mq,nacos………)都必须运行在容器中,容器编排技术使用kubernetes;这样的架构就叫做云原生架构 云原生特点: 1)容器化 : 所有的应用都必须部署在容器中 2)微服务 : 按照func...原创 2021-05-05 10:51:22 · 4049 阅读 · 1 评论 -
k8s之存储
1.k8s-volumes1)为什么要用volumes? k8s中容器中的磁盘的生命周期是短暂的, 这就带来了一些列的问题:当一个容器损坏之后, kubelet会重启这个容器, 但是容器中的文件将丢失----容器以干净的状态 重新启动 当很多容器运行在同一个pod中时, 很多时候需要数据文件的共享 在 k8s 中,由于 pod 分布在各个不同的节点之上,并不能实现不同节点之间持久性数据的共 享,并且,在节点故障时,可能会导致数据的永久性丢失。volumes就是用来解决以上问题...原创 2021-05-16 22:27:31 · 1495 阅读 · 0 评论 -
k8s部署springboot项目
1.首先我们将项目打成jar包2.制作Dockerfile文件,生成jdk镜像,我们这里总共两台服务器,k8s-master和k8s-node,全部要操作将jdk上传到Linux服务器上 编写Dockerfile文件 内容如下: FROM centos:latestMAINTAINER kgfADD jdk-8u191-linux-x64.tar.gz /usr/local/javaENV JAVA_HOME /usr/local/java/jdk1.8.0_191ENV原创 2021-05-30 12:57:37 · 952 阅读 · 0 评论 -
k8s入门之虚拟化技术基本概念
1.为什么要学习kubernetes?以k8s为核心的云原生技术正在吃掉整个世界;无论是传统企业,互联网企业就是数字化转型;就是把服务迁移到云原生平台上面;kubernetes一定是未来企业架构唯一标准; 使用了kubernetes开发项目架构后,企业会实现降本增效; 轻装上阵 一旦使用kubernetes以后,不需要关心底层哪些和项目业务没有关系的代码,或者是模块;只需要关心项目业务即可,因此开发团队只需要一个小而精悍的团队即可; 全面拥抱微服务架构 微服务架构比较难(拆原创 2021-05-04 21:01:44 · 2898 阅读 · 6 评论 -
k8s相关指令实战以及nginx部署案例
1.相关指令# 查看k8s帮助文档 ----- 查询所有的指令 * kubectl --help# 查询节点信息(状态) * kubectl get node -- 查询集群节点的信息 * kubectl get node -o wide -- 查询节点的详细信息 * kubectl get node == kubectl get nodes 注意:查询节点信息,Status:Ready 表示集群节点运行ok。# 查询pod(k8s最小的操作单元)对象指令...原创 2021-05-10 22:56:35 · 480 阅读 · 0 评论 -
k8s的探针,资源清单运作原理
1.资源控制器什么是控制器? Kubernetes中内建了很多controller (控制器) ,这些相当于一个状态机,用来控制Pod的具体状态和行为。 Pod 的分类如下: 1)自主式 Pod:Pod 退出了,此类型的 Pod 不会被创建 2)控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目 常用控制器 1)ReplicationController(副本控制器旧版本,目前基本不用了) 2)ReplicaSet(新的副本控制器,我们现在都用这个...原创 2021-05-16 10:29:37 · 588 阅读 · 0 评论 -
k8s创建deployment出现cannot assign requested address
1.错误使用命令kubectl apply -f deploy.yaml构建deployment出现问题如下:2.解决办法编辑/etc/sysctl.conf文件,增加如下两项内容,如下图。net.ipv4.tcp_timestamps=1 #开启对于TCP时间戳的支持。net.ipv4.tcp_tw_reuse=1 #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。执行“/sbin/sysctl -p“”让参数生效。/sbin/sysc原创 2021-05-30 13:03:11 · 1483 阅读 · 0 评论 -
K8s之Ingress-nginx原理及配置
1.ingress介绍在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes中目前提供了以下几种方案:NodePort LoadBalancer Ingress1)NodePort方式 NodePort服务是让外部请求直接访问服务的最原始方式,NodePort是在所有的节点(虚拟机)上开放指定的端口,所有发送到这个端口的请求都会直接转发到服务中的pod里; ...原创 2021-05-30 21:39:25 · 1703 阅读 · 2 评论 -
k8s架构原理以及核心组件
1.pod原理解析Pod是最小部署单元,一个Pod有一个或多个容器组成,Pod中容器共享存储和网络,在同一台Docker 主机上运行1)pod基本结构我们看下在node节点上都会起很多pause容器,和pod是一一对应的。 每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享 Pause容器的网络栈和Volume挂载卷,因此他们之间通信和数据交换更为高效,在设计时我们可以充 分利用这一特性将一组密切相关的服务进程放入同一个Pod中。同一个原创 2021-05-05 20:36:47 · 621 阅读 · 1 评论 -
k8s服务service发现与负载均衡
1.pod如何实现访问?2.什么是ServiceService是一个抽象的概念。它通过一个虚拟的IP的形式(VIPs),映射出来指定的端口,通过代理客户端 发来的请求转发到后端一组Pods中的一台(也就是endpoint)。Service定义了Pod逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了统一的服务访问 入口以及服务代理和发现机制,关联多个相同Label的Pod,用户不需要了解后台Pod是如何运行。 外 部系统访问Service的问题: -> 首先需要弄原创 2021-05-07 23:23:01 · 3023 阅读 · 2 评论