我们pod的数据挂载文件可以使用 pv-pvc的方式
1. 创建pv池
2. 在pv池中创建pv,并且设置pv的模式
3. 编写pod 写对应的pvc 申请书 就可以了
这就是我们k8s中的pv和pvc
基于pv池创建pv的时候会有容量限制
呢么关于配置呢,我们以前会有这种场景 比如说在docker中我们会把配置文件-v的形式挂载出来,比如说nginx的conf文件,这样我修改了nginx的配置文件,我就nginx就可以拿到最新的数据
在k8s中怎么把配置文件挂载出来,挂载目录我们可以使用pv=pvc的方式,但是我们现在要挂载配置文件 我们可以使用configMap的方式
k8s 中专门有一个东西 configmap ,比如说redis吧
我编写一个redis.conf文件,基于redis.conf 创建配置集 configMap 存储在k8s中的etcd
k8s中所有数据都保存在etcd中
这样就可以看到这个configmap的配置了,创建pod 的时候挂载这个configmap就可以了
我们启动redis的时候会挂载2个 一个configMap挂载他的配置文件 一个 pv-pvc的方式
会挂载他的数据文件
我以后启动redis mysql mq 这些 我启动任何的中间件 我把他的配置文件,我在k8s 的配置集合,我以后在pod中引用配置集合
我们使用k8s 的配置集还有一个优点就是 如果我k8s 在外面把配置文件改了
他在内部依然生效
secret是k8s中用来保存敏感信息的 比如说 密码 令牌 密钥.和configmap差不多,只不过configmap用来保存配置文件 等等这些明文信息
secret的典型场景,我们现在要启动一个pod,pod启动要下载镜像,我们以前下载从docker hub 下的, 如果从私有镜像下载
当我想要部署的时候,我从私有镜像仓库拉取镜像,我就的要有个账号和密码,这些账号和密码如果写在pod中就会不安全
也容易泄露
k8s 可以使用secret的方式 把docker登录的信息保存起来,我以后下载镜像的时候直接用就可以了
当然 我们可以看到这个是密文的
如果是confifMap data:value 此时是明文的的 ,secret类似于configmap的使用方法差不多
如果想要使用secret的话,我们只需要引用一下就可以了
我可以使用这个密钥来下载镜像
我pod 只需要下载镜像的时候引用这个secret就可以了,因为这个密钥信息 之前已经创建好了
然后再create -f pod.yaml 就可以下载到了
这是我们secret的核心实战场景
kusphere kubeshere是k8s的可视化界面
安装docker
安装k8s
kubesphere前置环境
安装kubesphere
kubesphere是个多租户用户的系统,使用命名空间来做区分
如何在kubesphere平台中部署一些应用 比如说我们先部署一个中间件
我们在云上想要部署应用 我的这个应用将会以什么样的方式部署
其实Kubesphere就是k8s的可视化页面 包括创建deploy pod 以及service这些
我们可以先部署mysql ,这是我们以docker的形式部署的mysql
中间件的配置文件可以以配置集configMap的形式做出来
先创建mysql-conf,mysql的配置文件mysql-conf 挂载出去,key为my.conf 例如
我在部署之前先把Mysql的配置文件提取成configmap,准备一个pvc 我mysql的券挂载 数据的挂载
his-mysql(尚依通的mysql)
选中一个mysql镜像 创建几份, 资源限额,账号密码(环境变量)挂载pvc 和configmap
类似于nacos一样可以随时修改,当配置修改了之后 我pod就会进行同步
使用kubesphere部署redis
一样我们启动的时候 可以看看redis在docker中怎么做的部署
数据目录放在/data
配置文件映射在/etc/redis
如果我们用docker启动的话
-v date 外部进行挂在数据目录
-v 挂载配置conf
redis的部署 就已经结束了
es也一样 启动 会有-e的环境变量和-v的数据挂载
我们之前手动部署mysql es redis
对于常见的中间件 kubesphere可以达到一键部署,基于应用商店部署rabbitmq