一、创建deployment

1.创建ns

[root@k8s-master01 ~]# kubectl create ns public-service

2.编写Rabbitmq配置文件

$ vim rabbitmq.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
        image: registry.cn-hangzhou.aliyuncs.com/abroad_images/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: 1009m
            memory: 1004Mi
          requests:
            cpu: 255m
            memory: 510Mi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
status: {}

3.创建Pod并进行验证

[root@k8s-master01 ~]# kubectl create -f rabbitmq.yaml
[root@k8s-master01 ~]# kubectl get po -n public-service
NAME                       READY   STATUS    RESTARTS   AGE
rabbitmq-5956d7d44-rlvx2   1/1     Running   0          2m20s

二、创建Service

1.编写Service配置文件

[root@k8s-master01 ~]# vim rabbitmq-svc.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  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
status:
  loadBalancer: {}

2.在k8s-master01上创建上诉服务,并查看刚刚创建的service,查看对外暴露的端口号为30763

[root@k8s-master01 ~]# kubectl create -f rabbitmq-svc.yaml
[root@k8s-master01 ~]# kubectl get svc -n public-service
NAME       TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)                          AGE
rabbitmq   NodePort   10.0.59.142   <none>        5672:31621/TCP,15672:30763/TCP   26s

三、访问测试

1.打开浏览器输入192.168.1.31:30763打开rabbitmq登录界面,其中用户名和默认为guest。

访问测试-1

2.如果想修改默认密码可以设置env变量来修改账号和密码,这里设置账号为user,密码为password

重新修改rabbitmq.yaml文件,主要添加以下内容

        - name: RABBITMQ_DEFAULT_USER
          value: user
        - name: RABBITMQ_DEFAULT_PASS
          value: password

访问测试-2

修改完成后,yaml文件内容如下:

$ vim rabbitmq.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
          value: user
        - name: RABBITMQ_DEFAULT_PASS
          value: user
        image: 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: 1009m
            memory: 1004Mi
          requests:
            cpu: 255m
            memory: 510Mi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
status: {}

更新yaml

[root@k8s-master01 ~]# kubectl apply -f rabbitmq-svc.yaml

说明:这块没有配置持久化,Pod重启后之前的数据会丢失

重新使用用户名user,密码password进行登录测试,观察到使用新的用户名和密码可以进行访问

访问测试-3