云原生-k8s
文章平均质量分 81
k8s 学习,以及相关问题
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【Kubernetes】RuoYi-Cloud部署实战
下载完毕后如下系统模块。原创 2024-09-10 00:30:00 · 272 阅读 · 0 评论 -
【Kubernetes】KubeSphere给Kubernetes上部署ElasticSearch
我以前使用docker安装ElasticSearch的时候,指定端口、名称、日志目录、数据目录、配置文件、密码信息等信息首先是环境变量配置,因为这个key是有点的,比较特殊,因此需要双引号引起来,设置Elasticsearch的发现类型为单节点。这意味着Elasticsearch将作为单节点运行。第二个是java环境变量这个是数据配置,将一个名为es-config的卷挂载到容器中的/usr/share/elasticsearch/config目录。这是用来存储Elasticsearch的配置文件的。原创 2024-09-10 00:15:00 · 398 阅读 · 0 评论 -
【Kubernetes】KubeSphere给Kubernetes上部署Redis&设置网络
我以前使用docker安装Redis的试试,指定端口、名称、日志目录、数据目录、配置文件、密码信息登。原创 2024-09-08 00:30:00 · 36 阅读 · 0 评论 -
【Kubernetes】KubeSphere给Kubernetes上部署中间件-部署MySQL有状态副本集
我们如果想做配置,可以在下面的地方创建配置,然后内容是以key 和value的形式展示,这个key是文件名称,value是整个文件内容。首先是Pod,然后Pod里面是我们的MySQL 官方镜像,然后在容器内指定一个环境变量是MYSQL的密码。相比于docker部署MySQL,如果我们使用KubeSphere部署MySQL,那么应该是这样的?MySQL的数据我们以PVC的方式挂在出来,然后配置文件可以以ConfigMap的方式提供。首先我们要想清楚,如果我们在云上部署应用,那么我们的应用应该以什么模式部署?原创 2024-09-08 00:15:00 · 119 阅读 · 0 评论 -
【Kubernetes】Linux多节点部署KubeSphere
这里我们可以参考官网来进行安装,准备三台服务器设置三台机器的hostname。原创 2024-09-06 00:30:00 · 132 阅读 · 0 评论 -
【Kubernetes】Linux单节点部署KubeSphere
centos7.9;防火墙放行 30000~32767;指定hostname。这里我们可以参考官网。这里我们可以使用这种。原创 2024-09-06 00:15:00 · 30 阅读 · 0 评论 -
【Kubernetes】Kubernetes上安装KubeSphere
首先我们要初始化我们的机器,使其扩容。具体要求如下我们先把主节点升级到4核8G然后同理将其他节点调整成 8核16G,替换完成后如图。原创 2024-09-05 00:15:00 · 38 阅读 · 0 评论 -
【kubernetes】kubernetes secret 安全相关
Kubernetes 中的 Secret 对象类型用于存储和管理敏感信息,如密码、API 密钥和其他敏感数据。Secret 对象提供了一种安全地存储和传递这些敏感信息的方式,以供 Pod 使用。总的来说,Kubernetes 中的 Secret 对象为处理敏感信息提供了一种安全可靠的机制,帮助用户管理和使用与应用程序相关的私密数据。原创 2024-09-04 00:30:00 · 42 阅读 · 0 评论 -
【kubernetes】kubernetes 抽象存储之 ConfigMap
ConfigMap可以实现抽取应用配置,并且自动更新在Kubernetes中,ConfigMap是一种用于存储非机密性配置数据的API对象。它可以用来存储配置信息,例如环境变量、命令行参数、配置文件等。ConfigMap提供了一种将配置数据与应用程序代码分离的方式,使得应用程序更加灵活和可配置。适合什么场景ConfigMap适用于需要将配置信息与应用程序代码解耦的场景,特别是在容器化的环境中。原创 2024-09-04 00:15:00 · 338 阅读 · 0 评论 -
【kubernetes】kubernetes 抽象存储之PV和PVC
PV:持久卷Persistent Vvolume),将应用需要特久化的数据保存到指定位置【相当于真正存储位置】PVC:持久卷申明 Persistent Volume Claim ),中明需要使用的持久卷规格【相当于存储的申请说明书,比如1M空间】在 Kubernetes 中,PV(Persistent Volume)和 PVC(Persistent Volume Claim)是用于持久化存储的两个重要概念。它们允许你在容器化应用中使用持久化存储,使数据在 Pod 重启或迁移时仍然可用。原创 2024-09-03 00:30:00 · 285 阅读 · 0 评论 -
【kubernetes】kubernetes 安装 NFS 网络文件系统
我们想做抽象存储案例,但是却需要先装一个NFS网络文件系统,因此本章我们来装NFS网络文件系统。原创 2024-09-03 00:15:00 · 127 阅读 · 0 评论 -
【kubernetes】kubernetes 抽象存储
但是这个会面临一个严重的问题,如果某个pod挂了,那么k8s会自动重新再其他机器创建这个pod,然后我们的数据就对不上了,比如我在nodeA创建了一个本地文件aa.txt,然后pod挂掉之后,k8s在nodeB创建了新的Pod,此时新的Pod本地是没有aa.txt文件了。我们把所有的凌乱的东西都统一起来,这就是存储层,存储层的主要功能就是将所有的Pod与存储关联起来,就算Pod重建后,指向的仍然是一个存储地址。所以我们一般情况下,会把pod的存储挂到外面,比如下面的图示。新的Pod本地是没有数据的。原创 2024-09-02 00:30:00 · 28 阅读 · 0 评论 -
【kubernetes】kubernetes Ingress 安装
Ingress是Service的统一入口。原创 2024-09-02 00:15:00 · 124 阅读 · 0 评论 -
【kubernetes】kubernetes service 暴露端口到公网案例
这个是每个机器都开了一个端口30948,这意味这我们访问每一台都是可以的。service给我们开通的ip是10.96.109.130,端口是30948。在上一篇文章中我们学会了在容器之间如何暴露端口,但是外网是不能访问的,pod之间是可以访问的。然后我们使用这些ip发现可以远程访问,而且还会自动的负载均衡,也说明走了service。我们先查看我们的云服务器ip信息如下。下面我们准备暴露这个端口,这里注意我们指定了。因为我们使用的是云机器,所以我们要开通安全组。我们先看看我们之前的设置如下。原创 2024-09-02 00:30:00 · 32 阅读 · 0 评论 -
【kubernetes】kubernetes service 案例、暴露端口案例
我们可以访问看看,但是这三个Nginx的首页都是一样的,不好区分,为了方便后面的测试,修改下三台nginx的index.html页面(三台修改的IP地址不一致)可以看到这里有个ip信息,然后我们访问这个,可以看到每次的的主页信息都不一致,这是因为默认做了轮训处理。现在我们暴露这个service端口和ip,这里暴露访问外面的8000,就是访问我们的80端口。下面我们给三个nginx的主页都换成一下。这里可以看到我们刚刚暴露的service。可以看到我们的标签是nginx。查看我们的nginx。原创 2024-09-01 00:15:00 · 82 阅读 · 0 评论 -
【kubernetes】kubernetes Deployment StatefulSet DaemonSet Job/CronJon 区别
总的来说,Deployment用于无状态应用程序的部署,StatefulSet用于有状态应用程序的部署,DaemonSet用于在每个节点上运行Pod,Job用于一次性或短暂性任务,而CronJob用于定期执行任务。在Kubernetes中,Deployment、StatefulSet、DaemonSet、Job和CronJob都是不同类型的控制器(Controller),它们用于管理Pod的生命周期,但它们有不同的用途和行为。用途: 用于确保集群中的每个节点运行一个Pod的场景,如日志收集或网络代理。原创 2024-08-31 00:30:00 · 5730 阅读 · 0 评论 -
【kubernetes】kubernetes 滚动更新案例
假设你有一个 Deployment,它运行了一个叫做 myapp 的容器,使用的是 myapp-image:old 的镜像。现在你想要将它更新到新版本的 myapp-image:new。在 Kubernetes 中,滚动更新是通过逐步替换旧版本的 Pod 为新版本来实现的。这是一个简单的滚动更新案例。在实际生产环境中,你可能还需要考虑一些其他因素,例如滚动更新的策略、健康检查、回滚策略等,以确保更新的顺利进行。这将显示滚动更新的状态,包括当前的 ReplicaSet 和更新进度。原创 2024-08-31 00:15:00 · 5785 阅读 · 0 评论 -
【kubernetes】kubernetes 扩容缩容案例
Kubernetes 中的扩容和缩容通常是通过调整 Deployment 中的副本数量来实现的。下面是一个简单的案例,演示如何在 Kubernetes 中进行扩容和缩容。创建一个deploy-nginx.yaml 文件使用这个命令使其生效可以看到我们现在有2个节点运行我们的pod。因为我们初始副本数量为 2。原创 2024-08-30 00:30:00 · 34 阅读 · 0 评论 -
【Kubernetes】 configmaps is forbidden User system:anonymous cannot list resource configmaps
1.背景mac安装Kubernetes后登录报错 【Docker】Mac下Docker启动Kubernetes给匿名用户授权即可解决,测试环境可用此快速解决(base) lcc@lcc kubernetes$ kubectl create clusterrolebinding test:anonymous --clusterrole=cluster-admin --user=system:anonymousclusterrolebinding.rbac.authorization.k8s.io/.原创 2020-07-01 22:16:44 · 3512 阅读 · 0 评论 -
【kubernetes】kubernetes 创建pod的时候指定namespace
在 Kubernetes 中,创建 Pod 时可以通过 YAML 配置文件或者命令行参数指定所属的 Namespace。如果你是通过命令行使用 kubectl 来创建 Pod,可以使用 -n 或 --namespace 参数来指定 Namespace。在 Pod 的 YAML 配置文件中,你可以通过 metadata.namespace 字段指定所属的 Namespace。在上述的 YAML 文件中,Pod 将会被创建在 mynamespace 这个 Namespace 中。原创 2024-08-30 00:15:00 · 156 阅读 · 0 评论 -
【kubernetes】kubernetes集群化安装
在上一篇文章中我们进行了集群的购买初始化等工作。本章节我们进行kubernetes集群化安装。原创 2024-08-29 00:30:00 · 846 阅读 · 0 评论 -
【kubernetes】kubernetes 准备云服务器搭建
本章准备3台云服务器,准备搭建k8s集群环境。这里注意我们的安全组,我们使用的是默认安全组,这里有个组内互信要打开。这里我们新建一个vpc网络,这里注意ip选择图示的,不要选择前几个。可以看到防火墙是67.67,然后在第一个子网络中有3台服务器。这个意思是组内的机器不受防火墙限制,可以互相通讯。青云这里会默认创建一个,我们可以再次创建一个。然后在创建服务器的地方我们选择我们的网络。然后选择3台机器,然后立即购买。看下我们当前的网络拓扑图如下。下面是ip、网络的相关设置。下面创建一个私有网络。原创 2024-08-29 00:15:00 · 233 阅读 · 0 评论 -
【kubernetes】kubernetes 核心组件、角色介绍
整体架构图如下Node worker节点Node 就相当于工厂,我们可以开启很多的工厂,在kubernetes中就相当于worker节点。worker 节点是集群中的计算资源提供者,它运行应用程序的工作负载(容器)并由主控制节点进行管理。Control Plane 硅谷总部Control Plane 相当于硅谷总部,如果在kubernetes中就相当于master节点。Control Manager 决策部Control Manager 相当于决策者,比如他签订了一个造飞机的项目。原创 2024-08-26 00:15:00 · 334 阅读 · 0 评论 -
【Kubernetes】 kubectl port-forward 临时映射pod端口到外网
因此,这个命令的作用是在本地主机上创建一个端口映射,允许你通过本地主机的9092端口访问在Kubernetes集群中运行的"kafka-0" Pod的Kafka服务。这表示将本地主机的9092端口映射到Pod中运行的"kafka-0"容器的9092端口。在这个例子中,Pod的名称是"kafka-0",表示在"kafka"命名空间中的名为"kafka-0"的Pod。这是一个使用kubectl命令行工具进行端口转发的命令,用于将本地端口映射到Kubernetes集群中运行的Kafka容器的指定端口。原创 2023-11-17 18:38:48 · 458 阅读 · 0 评论 -
【Kubernetes】如何查看带有namespace的pod
将 替换为你要进入的 Pod 的名称, 替换为 Pod 所在的命名空间。确保你已经使用合适的 Kubernetes 配置文件登录到了相应的集群,并拥有足够的权限来执行这些操作。将 替换为你要查看日志的 Pod 的名称, 替换为 Pod 所在的命名空间。同样,将 替换为你感兴趣的命名空间的名称。将 替换为你感兴趣的命名空间的名称。这将列出指定命名空间中的所有 Pod。原创 2023-11-16 23:30:00 · 1840 阅读 · 0 评论 -
【kubernetes】使用flink-kubernetes-operator、使用java代码提交任务到远程k8s服务器
然后我们在文章中学会了怎么提交任务到自己本地的k8s环境中。现在我们要把任务提交到远程服务器,对方的是k8s环境,但是对方的环境使用的是contains,不是docker容器。我们本次是从本地的docker环境放到k8s环境上。先根据文章打包到本地镜像。然后我们在文章中导入本地镜像到远程。原创 2024-04-30 03:30:00 · 545 阅读 · 5 评论 -
【Kubernetes】k8s如何删除一个运行中的pod、pod总是自动创建
在这个文章中,我们知道了如何使用demo提交flink任务。但是如果我们的机器没有kubectl命令,我们改怎么提交任务到flink呢?因此我就想删除这个pod,然后重新来搞。原创 2024-08-25 00:15:00 · 183 阅读 · 0 评论 -
【Kubernetes】怎么根据pod找到关联的deployment呢
在文章中我们删除pod需要删除deployment,那么怎么根据pod找到关联的deployment呢。原创 2024-08-25 00:30:00 · 76 阅读 · 0 评论 -
【kubernetes】The LocalStreamEnvironment cannot be used when submitting
但是如果我们的机器没有kubectl命令,我们改怎么提交任务到flink呢?在这个文章中,我们知道了如何使用demo提交flink任务。这是因为我开始想的是本地运行设置如下。这个是不行的,后来改成如下就可以了。原创 2024-08-24 00:30:00 · 260 阅读 · 0 评论 -
【Kubernetes】Kubernetes 安装后.kube/config文件作用以及位置
在这个例子中,kubeconfig文件定义了一个名为 “my-cluster” 的集群,一个名为 “my-user” 的用户,以及一个名为 “my-context” 的上下文,将集群和用户关联起来。kubeconfig文件包含了连接到Kubernetes集群所需的信息,如集群的地址、用户凭证信息(比如证书和密钥)、默认上下文等。这通常需要具有一定Kubernetes配置经验。总体而言,kubeconfig文件是一个关键的Kubernetes配置文件,用于管理访问和操作Kubernetes集群的权限。原创 2024-08-24 00:15:00 · 133 阅读 · 0 评论 -
【kubernetes】使用flink-kubernetes-operator、使用java代码提交任务到flink
在这里面,我们知道了如何使用demo提交flink任务。但是如果我们的机器没有kubectl命令,我们改怎么提交任务到flink呢?这里我们可以使用代码提交。原创 2024-04-29 04:00:00 · 594 阅读 · 5 评论 -
【Flink】Mac下使用flink-kubernetes-operator本地运行flink程序
flink-kubernetes-operator是由Java实现的,它允许用户通过kubectl等原生k8s工具管理Flink应用程序及其生命周期,描述如下:。。flink-kubernetes-operator 可以将 Flink 作业定义为 Kubernetes 资源,这样可以更容易地将 Flink 作业作为 Kubernetes 基础架构的一部分管理。原创 2024-04-28 23:30:00 · 72 阅读 · 1 评论 -
【kubernetes】kubernetes DashBoard 界面操作
之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。用户可以使用Dashboard部署容器化的应用,还可以监控应用的状态,执行故障排查以及管理kubernetes中各种资源。原创 2024-08-23 00:30:00 · 140 阅读 · 0 评论 -
【kubernetes】kubernetes 安全认证
Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种进行操作。一般是独立于kubernetes之外的其他服务管理的用户账号。kubernetes管理的账号,用于为Pod中的服务进程在访问Kubernetes时提供身份标识。ApiServer是访问及管理资源对象的唯一入口。任何一个请求访问ApiServer,都要经过下面三个流程:Authentication(认证):身份鉴别,只有正确的账号才能够通过认证。原创 2024-08-23 00:15:00 · 103 阅读 · 0 评论 -
【kubernetes】kubernetes 数据存储
在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。原创 2024-08-22 01:00:00 · 107 阅读 · 0 评论 -
【kubernetes】kubernetes Ingress介绍
在前面课程中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持基于这种现状,kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。原创 2024-08-22 00:15:00 · 432 阅读 · 0 评论 -
【kubernetes】kubernetes service
NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持基于这种现状,kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴露多个Service的需求。原创 2024-08-21 00:45:00 · 145 阅读 · 0 评论 -
【kubernetes】kubernetes pod 控制器
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建什么是Pod控制器Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。原创 2024-08-21 00:30:00 · 33 阅读 · 0 评论 -
【kubernetes】kubernetes pod 调度
在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做呢?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式:自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出定向调度:NodeName、NodeSelector。原创 2024-08-21 00:15:00 · 31 阅读 · 0 评论 -
【kubernetes】kubernetes pod 生命周期
我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期.它主要包含下面的过程:pod创建讨程运行初始化容器 (init container)过程运行主容器 (main container) 过程容器启动后钩子(post start)、容器终止前钩子 (pre stop)容器的存活性探测 (liveness probe)、就緒性探测 (readiness probe)pod终止过程前面一段是容器初始化过程,可有可无,可多可少。后面一段是ron过期启动、运行、停止等过程。原创 2024-08-20 03:30:00 · 320 阅读 · 0 评论