k8s mysql数据目录挂载,k8s集群中安装redis、mysql(使用helm)

k8s集群中安装redis、mysql(使用helm),两个简单的案例。

1、k8s中安装redis服务 (4.0.8-r2)

mkdir  rediswork

cd rediswork

helm search redis

helm fetch  stable/redis --version 1.1.15   #下载redis-1.1.15.tgz包到当前目录

tar -zxvf  redis-1.1.15.tgz #解压后得到一个redis目录

cd redis #进入redis目录

vi template/deployment.yaml,

(1)将第一行的apiVersion的值修改为"apps/v1",而不是"extensions/v1beta1"

(2)在控制器的sepc字段下添加

selector:

matchLabels:

app:  {{ template "redis.fullname" . }}

cp values.yaml myvalues.yaml #复制一份值文件

vi myvalues.yaml,修改配置参数,例如:

redisPassword: 123456asd #指定redis连接密码

persistence.size: 2Gi #最大持久化数据的大小,默认是8Gi,可以适当调整(调大或调小)

resources.requests.memory:100Mi #申请内存大小

#实例化一个Release ,注意最后有个点,表示当前目录,--namespace 指定运行服务所在名称空间,默认为default

# --name 指定Release的名称

helm install --name myredis --namespace default -f myvalues.yaml  .

查看运行结果:

helm list

kubectl get deployment

kubectl get pod

kubectl get svc

2、k8s中安装mysql(5.7.26)

mkdir mysqlwork

cd mysqlwork

helm search mysql

helm fetch  stable/mysql #下载chart包为 mysql-0.3.5.tgz

tar -zxvf mysql-0.3.5.tgz #解压为mysql目录

cd mysql #进入mysql chart目录

cp values.yaml myvalues.yaml

vi myvalues.yaml 修改其中某些配置项目,例如:

mageTag: "5.7.26" #指定mysql安装版本

mysqlRootPassword: 123456asd #指定mysql的root用户的密码

configurationFiles: #配置my.cnf文件参数

mysql.cnf: |-

[mysqld]

character_set_server=utf8

service.type: NodePort

service.port: 3306

service.nodePort: 32000

vi templates/deployment.yaml ,

(1)修改deployment控制器的apiVersion为apps/v1

(2)在控制器的sepc字段下添加

selector:

matchLabels:

app:  {{ template "mysql.fullname" . }}

#实例化一个Release

helm install --name tcmysql  -f  myvalues.yaml .  #Release的名称中不要带"-"短横线

查看运行结果:

helm list

kubectl get deployment

kubectl get pod

kubectl get svc

都安装完成后,最后上张图看看 :

5d4aa215a8124984e341a0850e03f817.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes (k8s) 是一个容器编排平台,可以轻松地部署、管理和扩展容器化应用程序。Redis 是一个流行的开源内存数据存储系统,可用于缓存、消息传递、队列等多种场景。在 k8s 上部署 Redis 集群需要以下步骤: 1. 创建 Redis 镜像 你可以使用 Dockerfile 创建 Redis 镜像,或者从 Docker Hub 下载 Redis 镜像。例如,可以使用以下命令下载 Redis 镜像: ``` docker pull redis ``` 2. 创建 Redis 配置文件 Redis 集群需要一个配置文件来定义节点和复制策略。可以创建一个 config 文件夹,并在其创建 redis.conf 文件,配置内容可以参考 Redis 官方文档。 3. 创建 Redis 集群的 YAML 文件 可以使用 k8s 的 YAML 文件定义 Redis 集群。以下是一个示例 YAML 文件: ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: redis-cluster spec: serviceName: redis-cluster replicas: 6 selector: matchLabels: app: redis-cluster template: metadata: labels: app: redis-cluster spec: containers: - name: redis image: redis command: - sh args: - -c - | redis-server /config/redis.conf --port $(echo $POD_NAME | cut -d'-' -f2 | cut -d'-' -f1 | sed 's/^0*//'):6379 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - containerPort: 6379 name: client - containerPort: 16379 name: gossip volumeMounts: - name: config mountPath: /config - name: data mountPath: /data volumes: - name: config configMap: name: redis-cluster - name: data emptyDir: {} volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: name: redis-cluster spec: ports: - port: 6379 name: client - port: 16379 name: gossip clusterIP: None selector: app: redis-cluster ``` 这个 YAML 文件定义了一个名为 redis-cluster 的 StatefulSet 和一个名为 redis-cluster 的 Service。StatefulSet 定义了 6 个 Redis 节点,每个节点有一个容器,使用 Redis 镜像,并在容器启动时运行 Redis 命令。每个容器都会挂载 config 文件夹和 data 文件夹,其 config 文件夹存放 Redis 配置文件,data 文件夹存放 Redis 数据。Service 将端口映射到每个容器的端口,同时将 clusterIP 设置为 None,以便其他 Pod 无法通过 Service 访问 Redis 集群。 4. 部署 Redis 集群 使用以下命令部署 Redis 集群: ``` kubectl apply -f redis-cluster.yaml ``` 这将创建一个 redis-cluster 的 StatefulSet 和一个 redis-cluster 的 Service。 5. 验证 Redis 集群 可以使用以下命令验证 Redis 集群是否正常运行: ``` kubectl exec -it redis-cluster-0 -- redis-cli cluster info ``` 这将在第一个 Redis 节点上运行 redis-cli 命令,并输出 Redis 集群的信息。 以上就是在 k8s 上部署 Redis 集群的步骤。需要注意的是,Redis 集群需要至少 3 个节点才能正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值