代码拉取完成,页面将自动刷新
#https://zhuanlan.zhihu.com/p/344590293
#https://www.cnblogs.com/aerospace191/p/14009221.html
#https://blog.csdn.net/miss1181248983/article/details/106440068/
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: first-storage
parameters:
archiveOnDelete: "false"
provisioner: nfs-first-storage
reclaimPolicy: Retain
volumeBindingMode: Immediate
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rabbitmq
namespace: zaibei
spec:
accessModes:
- ReadWriteMany #可被多节点读写
resources:
requests:
storage: 5Gi
storageClassName: first-storage #声明pv
volumeMode: Filesystem
---
apiVersion: v1
kind: ServiceAccount #集群访问apiserver的凭证
metadata:
name: rabbitmq
namespace: zaibei
---
kind: Role #创建sa角色
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: rabbitmq
namespace: zaibei
rules:
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
---
kind: RoleBinding #将角色绑定
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: rabbitmq
namespace: zaibei
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: rabbitmq
subjects:
- kind: ServiceAccount
name: rabbitmq
namespace: zaibei
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-management
namespace: zaibei
labels:
app: rabbitmq
spec:
ports:
- port: 15672
name: http
nodePort: 32001 #集群外访问rabbitmq管理web界面,http://nodeip:32001
- port: 5672
name: amqp
nodePort: 32002
selector:
app: rabbitmq
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
namespace: zaibei
labels:
app: rabbitmq
spec:
clusterIP: None
ports:
- port: 5672
name: amqp
selector:
app: rabbitmq
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: rabbitmq
k8s.eip.work/layer: cloud
k8s.eip.work/name: rabbitmq
name: rabbitmq
namespace: zaibei
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: rabbitmq
k8s.eip.work/layer: cloud
k8s.eip.work/name: rabbitmq
serviceName: rabbitmq
template:
metadata:
labels:
app: rabbitmq
k8s.eip.work/layer: cloud
k8s.eip.work/name: rabbitmq
spec:
containers:
- env:
- name: RABBITMQ_DEFAULT_USER
valueFrom:
secretKeyRef:
key: rabbitDefaulUser
name: devsecret #登陆用户名和密码都存储在一个secret对象中
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
key: rabbitDefaultPass
name: devsecret
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
key: erlang.cookie
name: devsecret
- name: MY_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: K8S_SERVICE_NAME
value: "rabbitmq"
- name: RABBITMQ_USE_LONGNAME
value: 'true'
- name: RABBITMQ_NODENAME
value: "rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME)"
- name: RABBITMQ_NODE_TYPE
value: "disc"
- name: AUTOCLUSTER_TYPE
value: "k8s"
- name: AUTOCLUSTER_DELAY
value: '10'
- name: AUTOCLUSTER_CLEANUP
value: 'true'
- name: CLEANUP_WARN_ONLY
value: 'false'
- name: K8S_ADDRESS_TYPE
value: "hostname"
- name: K8S_HOSTNAME_SUFFIX
value: ".$(K8S_SERVICE_NAME)"
image: "fn-docker-images-registry.cn-shenzhen.cr.aliyuncs.com/zaibei/rabbitmq:1.0.0"
imagePullPolicy: IfNotPresent
name: rabbitmq
ports:
- containerPort: 5672
name: amqp
protocol: TCP
resources:
limits:
cpu: 250m
memory: 512Mi
requests:
cpu: 150m
memory: 256Mi
volumeMounts:
- mountPath: /var/lib/rabbitmq
name: rabbitmq-volume
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: aliyunsecret
restartPolicy: Always
schedulerName: default-scheduler
serviceAccount: rabbitmq
serviceAccountName: rabbitmq
volumes:
- name: rabbitmq-volume
persistentVolumeClaim:
claimName: rabbitmq #绑定pvc
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
#首先需要生成一个erlang.cookie的文件:
#echo $(openssl rand -base64 32) > erlang.cookie
#然后将该文件的内容复制下来,编写一个secret对象yaml:
apiVersion: v1
kind: Secret
metadata:
name: devsecret
namespace: zaibei
type: Opaque
data:
rabbitDefaulUser: "cmFiYml0dXNlcg=="
rabbitDefaultPass: "cmFiYml0cGFzcw=="
erlang.cookie: "SjNBT1oyMTgwVjdKNVBNMjgycUhIaW5pZ2ZWUjV5eW5wUGFuMHkwcTRWMD0="
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。