首页 > 其他分享 >第十五章 k8s高级篇-中间件容器化机Helm

第十五章 k8s高级篇-中间件容器化机Helm

时间:2022-11-23 22:56:49浏览次数:64  
标签:name service 中间件 rabbitmq 5672 Helm 化机 k8s

第十五章 k8s高级篇-中间件容器化机Helm

目录

1,容器中间件说明

一切皆容器

# 常用的中间件
rabbitmq
redis
mysql
kafka
MongoDB

2,部署应用至k8s通用步骤

中间件单实例部署

1、找到官方镜像:https://hub.docker.com/
2、确认需要的配置:环境变量或配置文件
3、选择部署方式:Deployment或其他的
4、配置访问:TCP或HTTP

3,部署单实例中间件至k8s

部署单实例rabbitmq

# 创建一个命名空间
[root@k8s-master01 rabbitmq]# kubectl create ns public-service

# rabbitmq的deployment 此处部署的是单实例 所以用了deployment 
[root@k8s-master01 rabbitmq]# cat rabbitmq-deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: rabbitmq
  name: rabbitmq
  namespace: public-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rabbitmq
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: rabbitmq
    spec:
      affinity: {}
      containers:
      - env:
        - name: TZ
          value: Asia/Shanghai
        - name: LANG
          value: C.UTF-8
        - name: RABBITMQ_DEFAULT_USER  # 指定rabbitmq的账户
          value: admin  # 指定rabbitmq的密码
        - name: RABBITMQ_DEFAULT_PASS
          value: admin
        image: registry.cn-beijing.aliyuncs.com/k8s-study-test/rabbitmq:3.8.17-management
        imagePullPolicy: Always
        lifecycle: {}
        livenessProbe:
          failureThreshold: 2
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 5672
          timeoutSeconds: 2
        name: rabbitmq
        ports:
        - containerPort: 5672
          name: web
          protocol: TCP
        readinessProbe:
          failureThreshold: 2
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 5672
          timeoutSeconds: 2
        resources:
          limits:
            cpu: 935m
            memory: 1Gi
          requests:
            cpu: 97m
            memory: 512Mi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
status: {}

# rabbitmq的service
[root@k8s-master01 rabbitmq]# cat rabbitmq-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  labels:
    app: rabbitmq
  name: rabbitmq
  namespace: public-service
spec:
  ports:
  - name: web
    port: 5672
    protocol: TCP
    targetPort: 5672
  - name: http
    port: 15672
    protocol: TCP
    targetPort: 15672
  selector:
    app: rabbitmq
  sessionAffinity: None
  type: NodePort



# 查询

[root@k8s-master01 rabbitmq]# kubectl get pod -n public-service
NAME                      READY   STATUS    RESTARTS   AGE
rabbitmq-d89c56c8-44nn2   1/1     Running   0          46m
[root@k8s-master01 rabbitmq]# kubectl get svc -n public-service
NAME       TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)                          AGE
rabbitmq   NodePort   10.108.113.69   <none>        5672:32545/TCP,15672:32005/TCP   61m

注:

rabbitmq的 默认用户密码是guest和guest,我们在deploy中的env中可以指定

    - name: RABBITMQ_DEFAULT_USER  # 指定rabbitmq的账户
      value: admin  
    - name: RABBITMQ_DEFAULT_PASS  # 指定rabbitmq的密码
      value: admin
  • 在生产或测试环境,rabbitmq重启后数据会丢失的,我们需要配置数据挂载目录将数据存储起来

4,k8s中间件的访问模式

1. 通过http访问rabbitmq提供的web界面

我们此处是通过service的NodePort来访问的
http://192.168.0.118:32005
不出意外会出现如下界面

我们输入刚才设置的账号密码登录(admin/admin)

2. 开发用

集群内访问rabbitmq:5672  # <service_name>:<port>
集群外访问192.168.0.117:32545  # <宿主机的IP地址>:<NodePort端口号>

标签:name,service,中间件,rabbitmq,5672,Helm,化机,k8s
From: https://www.cnblogs.com/wangerrui/p/16920347.html

相关文章

  • helm部署mysql
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于helm部署mysql如果您的kubernetes已有helm,那么部署mysql的......
  • 消息队列中间件nsq安装与使用
    安装与运行nsq的镜像开启容器时并不是默认开启三个服务的,而是需要手动开启。dockerpullnsqio/nsqdockerrun-itd--restart=on-failure:20-p4150:4150-p4151:4151-p......
  • 精华推荐 | 【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketM
    RocketMQ的发展历史RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。2016年11月28日,阿里巴巴向广西党性培训Apache软......
  • 如何一秒钟从头构建一个 ASP.NET Core 中间件
    前言其实地上本没有路,走的人多了,也便成了路。--鲁迅就像上面鲁迅说的那样,其实在我们开发中间件的过程中,微软并没有制定一些策略或者文档来约束你如何编写一个中间件......
  • ASP.NET Core 中间件之压缩、缓存
    前言今天给大家介绍一下在ASP.NETCore日常开发中用的比较多的两个中间件,它们都是出自于微软的ASP.NET团队,他们分别是Microsoft.AspNetCore.ResponseCompression和......
  • django---中间件
    中间件当用户发送请求时,其实时候是将请求发送给wsgi(一种协议),django使用的是wsgiref,然后再将请求发送给django的各个中间件(settings里的MIDDLEWARE表示使用的中间件),再由......
  • 亿级万物互联新时代的物联网消息中间件EMQX调研
    简介​最近去某餐厅吃饭,进门时智能门自动打开房门同时来一句"欢迎光临",然后伸手到门口的洗手台,水管无接触自动出水,端起菜盘走向台子选择自己喜欢的菜品,最后将菜盘放在智能结......
  • django中间件
    五个方法:中间件可以定义五个方法,分别是:(主要的是process_request和process_response)process_request(self,request)process_response(self,request,response)p......
  • ASP.NET Core教程-Middleware(中间件)
    更新记录转载请注明出处:2022年11月17日发布。2022年11月16日从笔记迁移到博客。Middleware(中间件)中间件介绍中间件可以处理请求(Request)和响应(Response)。中间......
  • Redux与它的中间件:redux-thunk,redux-actions,redux-promise,redux-saga
    Redux与它的中间件:redux-thunk,redux-actions,redux-promise,redux-saga2018-08-2015:4410896670序言这里要讲的就是一个Redux在React中的应用问题,讲一讲Redux,react-redu......