一、创建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。

2.如果想修改默认密码可以设置env变量来修改账号和密码,这里设置账号为user,密码为password
重新修改rabbitmq.yaml文件,主要添加以下内容
- name: RABBITMQ_DEFAULT_USER
value: user
- name: RABBITMQ_DEFAULT_PASS
value: password

修改完成后,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进行登录测试,观察到使用新的用户名和密码可以进行访问
