当前位置: 首页 > news >正文

富阳网站定制开发哪家公司好北京seo顾问推推蛙

富阳网站定制开发哪家公司好,北京seo顾问推推蛙,课程网站开发运行环境,莱芜户型优化培训一,StatefulSet部署MongoDB集群 Kubernetes StatefulSet 是 Kubernetes 中的一种资源类型,它能够保证有状态服务(Stateful Service)的唯一性和顺序部署,适用于需要持久化存储、网络标识、状态管理等场景。MongoDB 是一…

一,StatefulSet部署MongoDB集群

Kubernetes StatefulSet 是 Kubernetes 中的一种资源类型,它能够保证有状态服务(Stateful Service)的唯一性和顺序部署,适用于需要持久化存储、网络标识、状态管理等场景。MongoDB 是一个非常流行的 NoSQL 数据库,下面我们介绍如何使用 Kubernetes StatefulSet 部署 MongoDB 集群。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 MongoDB 的配置文件,包括副本集配置文件、启动脚本等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: mongodb-configmap
data:mongod.conf: |systemLog:destination: filepath: "/var/log/mongodb/mongod.log"logAppend: truestorage:dbPath: "/data/db"journal:enabled: trueprocessManagement:fork: falsenet:port: 27017replication:replSetName: rs0
  1. 创建一个 Headless Service

Headless Service 指没有 cluster IP 的 service,在 Kubernetes 中可以通过 DNS 解析来访问服务实例。由于每个 MongoDB 实例都需要有自己的 hostname 和 network identity,所以我们需要创建一个 Headless Service 来为每个实例分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: mongodb-service-headless 
spec:ports:- name : mongo port: 27017targetPort: 27017clusterIP: Noneselector:app: mongodb 
  1. 创建一个 StatefulSet

下面是一个简单的 MongoDB StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: mongodb-statefulset
spec:serviceName: mongodb-service-headless  replicas: 3 selector:matchLabels:app: mongodb template:metadata:labels:app: mongodb spec:containers:- name : mongo image : mongo command :- "mongod" - "--config" - "/etc/mongod.conf" ports :- containerPort : 27017name : mongovolumeMounts :- name : data-volumemountPath : /data/db/- name : config-volumemountPath : /etc/mongod.conf          volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-mongo-data   - name : config-volume     configMap :name : mongodb-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-mongo-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 MongoDB 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 mongo-0mongo-1mongo-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

mongo-0.mongodb-service-headless.default.svc.cluster.local
mongo-1.mongodb-service-headless.default.svc.cluster.local
mongo-2.mongodb-service-headless.default.svc.cluster.local

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 MongoDB 副本集。

二,StatefulSet部署Redis集群

Kubernetes StatefulSet 可以用来部署有状态的服务(Stateful Service),Redis 是一种非常流行的内存数据库,支持数据持久化和复制等功能。在 Kubernetes 中使用 StatefulSet 部署 Redis 集群需要注意以下几个方面。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 Redis 的配置文件,包括启动脚本、Redis.conf 等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: redis-configmap
data:redis.conf: |bind 0.0.0.0port 6379cluster-enabled yescluster-config-file /data/nodes.confcluster-node-timeout 15000
  1. 创建一个 Headless Service

为了让每个 Redis 实例都有唯一的 hostname 和 network identity,我们需要创建一个 Headless Service 来分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: redis-service-headless 
spec:ports:- name : redis port: 6379targetPort: 6379clusterIP: Noneselector:app: redis
  1. 创建一个 StatefulSet

下面是一个简单的 Redis StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: redis-statefulset
spec:serviceName: redis-service-headless  replicas: 3 selector:matchLabels:app: redis template:metadata:labels:app: redis spec:containers:- name : redis image : redis command :- "redis-server" - "/etc/redis/redis.conf" ports :- containerPort : 6379name : redisvolumeMounts :- name : data-volumemountPath : /data   - name : config-volumemountPath : /etc/redis/args: ["/etc/redis/redis.conf"]volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-redis-data   - name : config-volume     configMap :name : redis-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-redis-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 Redis 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 redis-0redis-1redis-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

redis-0.redis-service-headless.default.svc.cluster.local
redis-1.redis-service-headless.default.svc.cluster.local
redis-2.redis-service-headless.default.svc.cluster.local

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 Redis 集群。

三,StatefulSet部署ES集群

Kubernetes StatefulSet 可以用来部署有状态的服务(Stateful Service),Elasticsearch 是一种非常流行的分布式搜索和数据分析引擎,支持集群部署和数据持久化等功能。在 Kubernetes 中使用 StatefulSet 部署 Elasticsearch 集群需要注意以下几个方面。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 Elasticsearch 的配置文件,例如 elasticsearch.yml 和 jvm.options 等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: elasticsearch-configmap
data:elasticsearch.yml: |cluster.name: es-clusternode.name: ${HOSTNAME}network.host: "0.0.0.0"discovery.zen.ping.unicast.hosts: "es-discovery-0,es-discovery-1,es-discovery-2"discovery.zen.minimum_master_nodes: 2jvm.options: |-Xms512m-Xmx512m
  1. 创建一个 Headless Service

为了让每个 Elasticsearch 实例都有唯一的 hostname 和 network identity,我们需要创建一个 Headless Service 来分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: es-service-headless 
spec:ports:- name : http port : 9200  targetPort : http   clusterIP : None selector :app : elasticsearch
  1. 创建一个 StatefulSet

下面是一个简单的 Elasticsearch StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: es-statefulset
spec:serviceName: es-service-headless  replicas: 3 selector:matchLabels:app: elasticsearch template:metadata:labels:app: elasticsearch spec:containers:- name : elasticsearch image : docker.elastic.co/elasticsearch/elasticsearch:7.10.2ports :- containerPort : 9200name : http  - containerPort : 9300     name : transport   env :- name : cluster.name   value : "es-cluster"    - name : discovery.seed_hosts    value : "es-discovery-0,es-discovery-1,es-discovery-2"- name : cluster.initial_master_nodes  value : "es-0,es-1,es-2"               volumeMounts :- name : data-volumemountPath : /usr/share/elasticsearch/data   - name : config-volumemountPath : /usr/share/elasticsearch/config/args :["-Enode.name=${HOSTNAME}"]volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-es-data   - name : config-volume     configMap :name : elasticsearch-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-es-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 Elasticsearch 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 es-0es-1es-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

http://es-0.es-service-headless.default.svc.cluster.local:9200
http://es-1.es-service-headless.default.svc.cluster.local:9200
http://es-2.es-service-headless.default.svc.cluster.local:9200

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 Elasticsearch 集群。

Golang云原生学习路线图、教学视频、文档资料、面试题资料(资料包括C/C++、K8s、golang项目实战、gRPC、Docker、DevOps等)免费分享 有需要的可以加qun:793221798领取

四,StatefulSet部署ETCD集群

在 Kubernetes 中使用 StatefulSet 部署 etcd 集群需要注意以下几个方面。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 etcd 的配置文件,例如 etcd.conf 等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: etcd-configmap
data:etcd.conf: |name: "etcd-cluster"data-dir: "/var/lib/etcd"listen-peer-urls: "https://0.0.0.0:2380"listen-client-urls: "https://0.0.0.0:2379"initial-advertise-peer-urls: "https://$(hostname -f):2380"advertise-client-urls: "https://$(hostname -f):2379"
  1. 创建一个 Headless Service

为了让每个 etcd 实例都有唯一的 hostname 和 network identity,我们需要创建一个 Headless Service 来分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: etcd-service-headless 
spec:ports:- name : client port : 2379  targetPort : client   clusterIP : None selector :app : etcd
  1. 创建一个 StatefulSet

下面是一个简单的 etcd StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: etcd-statefulset
spec:serviceName: etcd-service-headless  replicas: 3 selector:matchLabels:app: etcd template:metadata:labels:app: etcd spec:containers:- name : etcd image : quay.io/coreos/etcd:v3.5.0command :- /usr/local/bin/etcd   - --config-file=/etc/etcd/etcd.conf   ports :- containerPort : 2379name : client  - containerPort : 2380     name : peer   env :- name : ETCD_NAME   valueFrom :fieldRef :fieldPath : metadata.name    - name : ETCD_INITIAL_CLUSTER_STATE    value : new               volumeMounts :- name : data-volumemountPath : /var/lib/etcd/data   - name : config-volumemountPath : /etc/etcd/volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-etcd-data   - name : config-volume     configMap :name : etcd-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-etcd-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 etcd 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 etcd-0etcd-1etcd-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

https://etcd-0.etcd-service-headless.default.svc.cluster.local:2379
https://etcd-1.etcd-service-headless.default.svc.cluster.local:2379
https://etcd-2.etcd-service-headless.default.svc.cluster.local:2379

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 etcd 集群。

五,StatefulSet部署Kafka集群

在 Kubernetes 中使用 StatefulSet 部署 Kafka 集群需要注意以下几个方面。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 Kafka 的配置文件,例如 server.properties 等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: kafka-configmap
data:server.properties: |broker.id=0listeners=PLAINTEXT://$(hostname -f):9092advertised.listeners=PLAINTEXT://$(hostname -f):9092log.dirs=/var/lib/kafka/datazookeeper.connect=zookeeper-service-headless:2181/kafka
  1. 创建一个 Headless Service

为了让每个 Kafka 实例都有唯一的 hostname 和 network identity,我们需要创建一个 Headless Service 来分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: kafka-service-headless 
spec:ports:- name : client port : 9092  targetPort : client   clusterIP : None selector :app : kafka
  1. 创建一个 StatefulSet

下面是一个简单的 Kafka StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: kafka-statefulset
spec:serviceName: kafka-service-headless  replicas: 3 selector:matchLabels:app: kafka template:metadata:labels:app: kafka spec:containers:- name : kafka image : wurstmeister/kafka:2.13-2.8.0command :- /bin/bash   - -c  - |/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties --override broker.id=$(hostname|awk -F'-' '{print $NF}') --override listeners=PLAINTEXT://$(hostname -f):9092 --override advertised.listeners=PLAINTEXT://$(hostname -f):9092ports :- containerPort : 9092name : client  env :- name : KAFKA_ADVERTISED_HOST_NAME   valueFrom :fieldRef :fieldPath : metadata.name    - name : KAFKA_ZOOKEEPER_CONNECT   value : zookeeper-service-headless:2181/kafka               volumeMounts :- name : data-volumemountPath : /var/lib/kafka/data   - name : config-volumemountPath : /etc/kafka/volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-kafka-data   - name : config-volume     configMap :name : kafka-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-kafka-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 Kafka 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 kafka-0kafka-1kafka-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

PLAINTEXT://kafka-0.kafka-service-headless.default.svc.cluster.local:9092
PLAINTEXT://kafka-1.kafka-service-headless.default.svc.cluster.local:9092
PLAINTEXT://kafka-2.kafka-service-headless.default.svc.cluster.local:9092

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 Kafka 集群。

六,StatefulSet部署Mysql集群

在 Kubernetes 中使用 StatefulSet 部署 MySQL 集群需要注意以下几个方面。

  1. 创建一个 ConfigMap

ConfigMap 可以用来存放 MySQL 的配置文件,例如 my.cnf 等。在创建 ConfigMap 时可以指定这些配置文件的内容,例如:

apiVersion: v1
kind: ConfigMap
metadata:name: mysql-configmap
data:my.cnf: |[mysqld]server_id=1log-bin=mysql-bin  binlog_format=row datadir=/var/lib/mysql
  1. 创建一个 Headless Service

为了让每个 MySQL 实例都有唯一的 hostname 和 network identity,我们需要创建一个 Headless Service 来分配独立的 hostname。

apiVersion: v1
kind: Service
metadata:name: mysql-service-headless 
spec:ports:- name : client port : 3306  targetPort : client   clusterIP : None selector :app : mysql
  1. 创建一个 StatefulSet

下面是一个简单的 MySQL StatefulSet 配置示例,其中 replicas 指定了副本数,serviceName 指定了使用的 Headless Service 名称,volumeClaimTemplates 定义了每个 Pod 使用的 PVC。

apiVersion: apps/v1
kind: StatefulSet
metadata:name: mysql-statefulset
spec:serviceName: mysql-service-headless  replicas: 3 selector:matchLabels:app: mysql template:metadata:labels:app: mysql spec:containers:- name : mysql image : mysql:5.7env :- name : MYSQL_ROOT_PASSWORD  value : root         - name : MYSQL_ALLOW_EMPTY_PASSWORDvalue: "yes"ports :- containerPort : 3306name : client  volumeMounts :- name : data-volumemountPath : /var/lib/mysql   - name : config-volumemountPath : /etc/mysql/volumes :- name : data-volume       persistentVolumeClaim :claimName : pvc-mysql-data   - name : config-volume     configMap :name : mysql-configmap        terminationGracePeriodSeconds: 10  dnsPolicy: ClusterFirstWithHostNet    
---
apiVersion: v1
kind: PersistentVolumeClaim      
metadata:name:pvc-mysql-data    
spec:accessModes:- ReadWriteOnce    resources :requests :storage : 20Gi

这个配置将创建三个 MySQL 实例,每个实例都有自己的 PVC 存储卷和配置文件。StatefulSet 会按照 mysql-0mysql-1mysql-2 的顺序为 Pod 分配唯一的 hostname 和 network identity。我们可以使用 DNS 来访问这些实例:

mysql://root@mysql-0:mysql-service-headless.default.svc.cluster.local/
mysql://root@mysql-1:mysql-service-headless.default.svc.cluster.local/
mysql://root@mysql-2:mysql-service-headless.default.svc.cluster.local/

这样,我们就成功地使用 Kubernetes StatefulSet 部署了一个 MySQL 集群。

http://www.hengruixuexiao.com/news/49944.html

相关文章:

  • 手机个人简历模板下载网站模板深圳建站公司
  • 房山区做网站百度账号一键登录
  • 如何制作网站首页网络营销师主要做什么
  • 叶梓 wordpress 主题宁波seo外包服务平台
  • nas上建设网站专业做网络推广的公司
  • 深圳做h5网站网络营销步骤
  • 给房地产公司做网站的公司seowhy培训
  • 做环卫车怎么做网站河北seo技术
  • 天津艺匠做网站怎么样杭州seo排名收费
  • wordpress问答插件免费网站推广优化
  • 免费论坛网站建设企业文化标语
  • 辽宁建设工程信息监管网快速优化关键词排名
  • 兰州哪里做网站百度电脑网页版入口
  • 怎么仿一个复杂的网站seo搜索引擎优化实训总结
  • 做网站找那家公司好纯手工seo公司
  • 什么是wordpress网站百度sem运营
  • 网站打不开是为什么附近有学电脑培训班吗
  • 政府类型网站企业微信会话存档
  • 网站建设上机课商城网站建设
  • 网站模板可以自己做微信公众号平台官网
  • 佛山新网站制作搞一个公司网站得多少钱
  • 北京正规网站建设公司南昌seo优化公司
  • 企业网站开发需求分析模板西安关键词网站排名
  • 找做网站的百度搜索关键词统计
  • 网站建设外包价格百度官方网站网址是多少
  • 做pc网站会连带手机版seo难不难
  • 服装网站建设论文贴吧引流推广
  • 免费造网站营销渠道管理
  • 潜江做网站的公司免费网站优化排名
  • 杭州网站建设服务公司今日最新消息