首页 > 编程知识 正文

k8s安装,k8s安装nginx

时间:2023-05-05 20:34:23 阅读:189146 作者:2157

GitHub地址:https://github.com/Idiomroot/k8s-rabbitmq.git

一、下载温柔的萝莉

#mkdir plugins && cd plugins

#wget https://github.com/rabbitmq/rabbitmq-autocluster/releases/download/0.10.0/autocluster-0.10.0.ez

#wget https://github.com/rabbitmq/rabbitmq-autocluster/releases/download/0.10.0/rabbitmq_aws-0.10.0.ez

二、创建欣慰的天空/p>

#cd ../

#vi DockerfileFROM rabbitmq:3.6.8MAINTAINER IdiomENV RABBITMQ_USE_LONGNAME=true AUTOCLUSTER_LOG_LEVEL=debug AUTOCLUSTER_CLEANUP=true CLEANUP_INTERVAL=60 CLEANUP_WARN_ONLY=false AUTOCLUSTER_TYPE=k8s LANG=en_US.UTF-8ADD plugins/*.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.8/plugins/RUN rabbitmq-plugins enable --offline autoclusterRUN rabbitmq-plugins enable --offline rabbitmq_management

#docker build -t 172.16.0.14:5000/pointsmart/rabbitmq3.7:v4 .

#docker push 172.16.0.14:5000/pointsmart/rabbitmq3.7:v4 (没有私有harbor可以省略此步骤)

三、生成cookie文件

# vi erlang-cookie.sh

#! /bin/bash

echo $(openssl rand -base64 32) > erlang.cookie

kubectl create secret generic erlang.cookie --from-file=erlang.cookie

#sh erlang-cookie.sh

四、配置rbac

# vi rabbitmq-rbac.yamlapiVersion: v1kind: ServiceAccountmetadata: name: rabbitmq---kind: RoleapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: endpoint-readerrules:- apiGroups: [""] resources: ["endpoints"] verbs: ["get"]---kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: endpoint-readersubjects:- kind: ServiceAccount name: rabbitmqroleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: endpoint-reader

五、编写service

#vi serveice-rabbitmq.yamlkind: ServiceapiVersion: v1metadata: name: rabbitmq-servicespec: type: NodePort ports: - name: mangement protocol: TCP port: 15672 nodePort: 32001 - name: smp protocol: TCP port: 5672 nodePort: 32002 selector: app: rabbitmq---apiVersion: v1kind: Servicemetadata: name: rabbitmq labels: app: rabbitmqspec: clusterIP: None ports: - port: 5672 name: amqp selector: app: rabbitmq

六、编写StatefulSet

# vi StatefulSet.yamlapiVersion: apps/v1beta1kind: StatefulSetmetadata: name: rabbitmqspec: serviceName: rabbitmq replicas: 3 template: metadata: labels: app: rabbitmq spec: serviceAccountName: rabbitmq imagePullSecrets: - name: regsecret containers: - name: rabbitmq image: 172.16.0.14:5000/pointsmart/rabbitmq3.7:v4 imagePullPolicy: IfNotPresent resources: requests: memory: "256Mi" cpu: "150m" limits: memory: "512Mi" cpu: "250m" volumeMounts: - name: rabbitmq-data mountPath: /var/lib/rabbitmq/mnesia ports: - containerPort: 5672 name: amqp env: - name: RABBITMQ_DEFAULT_USER value: comma - name: RABBITMQ_DEFAULT_PASS value: commaai2017 - name: RABBITMQ_ERLANG_COOKIE valueFrom: secretKeyRef: name: erlang.cookie key: erlang.cookie - name: MY_POD_NAME valueFrom: fieldRef: 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)" volumes: - name: rabbitmq-data persistentVolumeClaim: claimName: rabbitmq-data-claim#vi pvc-data.yamlkind: PersistentVolumeClaimapiVersion: v1metadata: name: rabbitmq-data-claim annotations: volume.beta.kubernetes.io/storage-class: "pointsmart-nfs-storage"spec: accessModes: - ReadWriteMany resources: requests: storage: 30Gi如果没有存储类,则可以直接创建PV和PVCvi nfs-data.yamlapiVersion: v1kind: PersistentVolumemetadata: name: rabbitmq-data labels: release: rabbitmq-dataspec: capacity: storage: 60Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Delete nfs: path: /rabbit #这个文件夹要提前在nfs下面创建好 server: nfs地址---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: rabbitmq-data-claimspec: accessModes: - ReadWriteMany resources: requests: storage: 60Gi selector: matchLabels: release: rabbitmq-data

#kubectl create -f .

## kubectl get pod -o wide| grep rabbitmq

rabbitmq-0 1/1 Running 0 126m 172.30.28.2 172.16.0.9 <none> <none>

rabbitmq-1 1/1 Running 0 126m 172.30.3.2 172.16.0.8 <none> <none>

rabbitmq-2 1/1 Running 0 86m 172.30.28.7 172.16.0.9 <none> <none>

Name: rabbitmq

Namespace: default

Labels: app=rabbitmq

Annotations: <none>

Selector: app=rabbitmq

Type: dddmn/p>

Port: amqp 5672/TCP

TargetPort: 5672/TCP

Endpoints: 172.30.28.2:5672,172.30.28.7:5672,172.30.3.2:5672

Session Affinity: None

Events: <none>

Name: rabbitmq-service

Namespace: default

Labels: <none>

Annotations: <none>

Selector: app=rabbitmq

Type: 机灵的大树/p>

Port: mangement 15672/TCP

TargetPort: 15672/TCP

NodePort: mangement 32001/TCP

Endpoints: 172.30.28.2:15672,172.30.28.7:15672,172.30.3.2:15672

Port: smp 5672/TCP

TargetPort: 5672/TCP

NodePort: smp 32002/TCP

Endpoints: 172.30.28.2:5672,172.30.28.7:5672,172.30.3.2:5672

Session Affinity: None

External Traffic Policy: Cluster

Events: <none>

注意:如果启动后出现报错: 

=INFO REPORT==== 8-Aug-2019::08:09:41 ===

autocluster: (cleanup) No partitioned nodes found.

解决办法:需要将其他两个节点加入到第一个节点中

#kubectl exec -it rabbitmq-xxxxx /bin/bash 

root@rabbitmq-xxxxx:/#rabbitmqctl stop_app

root@rabbitmq-xxxxx:/#rabbitmqctl join_cluster  rabbit@rabbitmq-0

root@rabbitmq-xxxxx:/#rabbitmqctl start_app

若出现节点无法加入集群的问题

root@rabbitmq-xxxxx:/#rabbitmqctl reset

root@rabbitmq-xxxxx:/#rabbitmqctl join_cluster  rabbit@rabbitmq-0

root@rabbitmq-xxxxx:/#rabbitmqctl start_app

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。