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

新昌县建设局网站wordpress使用国外主题

新昌县建设局网站,wordpress使用国外主题,wordpress 删除菜单,佛山网站建设推荐最近在项目中有涉及到Kubernetes的分布式存储部分的内容#xff0c;也抽空多了解了一些。项目主要基于Rook-Ceph运行#xff0c;考虑到Rook-Ceph部署也不那么简单#xff0c;官方文档的步骤起点也不算低#xff0c;因此#xff0c;在整合官方文档的某些步骤的基础上#… 最近在项目中有涉及到Kubernetes的分布式存储部分的内容也抽空多了解了一些。项目主要基于Rook-Ceph运行考虑到Rook-Ceph部署也不那么简单官方文档的步骤起点也不算低因此在整合官方文档的某些步骤的基础上写篇文章简单总结一下。Rook-Ceph是Kubernetes中分布式存储的一种解决方案Rook作为一种开源的、云原生的存储编排器为各种存储服务在云原生的环境中实现无缝整合提供了所必须的平台、框架和服务而Ceph则是Rook所支持的众多存储方案的一种在Kubernetes环境里Ceph基于Rook能够为应用程序提供块存储Block Storage对象存储Object Storage以及共享文件系统SFS服务。此处就不对Rook Ceph进行太多的介绍直接步入正题一步一步地演练Rook-Ceph从安装部署到使用的整个过程。注意本文所有的yaml文件都是为了配合整个演练过程而设计的理论上不能直接用在生产环境。如有需要在用在生产环境之前请确保所需的参数都已正确配置。安装Kubernetes安装Kubernetes。安装方法有很多不怕麻烦可以徒手安装也可以直接使用云供应商的托管服务比如Azure AKS也可以使用Rancher RKE在此就不赘述了。安装Rook Ceph Operator这里我们基于Ceph来讨论。事实上Rook支持Ceph、Cassandra、CockroachDB、EdgeFS、NFS以及YugabyteDB等多种存储供应商Storage Provider针对不同的存储供应商Rook提供不同的Operator来进行资源的部署和管理。使用下面的命令来安装Rook Ceph Operator:helm repo add rook-release https://charts.rook.io/release kubectl create namespace rook-ceph helm install --namespace rook-ceph rook-ceph rook-release/rook-ceph 安装Ceph集群Ceph Cluster可以使用下面的yaml文件# ceph-cluster-deploy.yaml apiVersion: ceph.rook.io/v1 kind: CephCluster metadata:name: rook-cephnamespace: rook-ceph spec:cephVersion:image: ceph/ceph:v15.2.7allowUnsupported: falsedataDirHostPath: /var/lib/rookskipUpgradeChecks: falsecontinueUpgradeAfterChecksEvenIfNotHealthy: falsemon:count: 3allowMultiplePerNode: falsemgr:modules:- name: pg_autoscalerenabled: truedashboard:enabled: truessl: truemonitoring:enabled: falserulesNamespace: rook-cephnetwork:crashCollector:disable: falsecleanupPolicy:confirmation: sanitizeDisks:method: quickdataSource: zeroiteration: 1allowUninstallWithVolumes: falseannotations:labels:resources:removeOSDsIfOutAndSafeToRemove: falseuseAllNodes: trueuseAllDevices: falsedeviceFilter: nvme1n1config:osdsPerDevice: 1disruptionManagement:managePodBudgets: falseosdMaintenanceTimeout: 30pgHealthCheckTimeout: 0manageMachineDisruptionBudgets: falsemachineDisruptionBudgetNamespace: openshift-machine-apihealthCheck:daemonHealth:mon:disabled: falseinterval: 45sosd:disabled: falseinterval: 60sstatus:disabled: falseinterval: 60slivenessProbe:mon:disabled: falsemgr:disabled: falseosd:disabled: false 然后使用以下命令创建Ceph集群kubectl create -f ceph-cluster-deploy.yaml 命令执行成功之后需要等待几分钟以便OSD能够成功启动。执行下面的命令可以查看所有容器的状态kubectl -n rook-ceph get pod 正常情况下应该可以看到类似以下的结果NAME READY STATUS RESTARTS AGE csi-cephfsplugin-provisioner-d77bb49c6-n5tgs 5/5 Running 0 140s csi-cephfsplugin-provisioner-d77bb49c6-v9rvn 5/5 Running 0 140s csi-cephfsplugin-rthrp 3/3 Running 0 140s csi-rbdplugin-hbsm7 3/3 Running 0 140s csi-rbdplugin-provisioner-5b5cd64fd-nvk6c 6/6 Running 0 140s csi-rbdplugin-provisioner-5b5cd64fd-q7bxl 6/6 Running 0 140s rook-ceph-crashcollector-minikube-5b57b7c5d4-hfldl 1/1 Running 0 105s rook-ceph-mgr-a-64cd7cdf54-j8b5p 1/1 Running 0 77s rook-ceph-mon-a-694bb7987d-fp9w7 1/1 Running 0 105s rook-ceph-mon-b-856fdd5cb9-5h2qk 1/1 Running 0 94s rook-ceph-mon-c-57545897fc-j576h 1/1 Running 0 85s rook-ceph-operator-85f5b946bd-s8grz 1/1 Running 0 92m rook-ceph-osd-0-6bb747b6c5-lnvb6 1/1 Running 0 23s rook-ceph-osd-1-7f67f9646d-44p7v 1/1 Running 0 24s rook-ceph-osd-2-6cd4b776ff-v4d68 1/1 Running 0 25s rook-ceph-osd-prepare-node1-vx2rz 0/2 Completed 0 60s rook-ceph-osd-prepare-node2-ab3fd 0/2 Completed 0 60s rook-ceph-osd-prepare-node3-w4xyz 0/2 Completed 0 60s 需要注意几点ceph-cluster-deploy.yaml并没有包括所有的Ceph集群创建的参数可以参考https://rook.io/docs/rook/v1.5/ceph-cluster-crd.html 来了解所有的配置信息这里的deviceFilter: nvme1n1是用来指定在每个Kubernetes节点上应该使用的卷Volume的名称。这个Volume不能格式化成任何文件系统否则Ceph将不会使用它作为存储卷。我在AWS上创建了独立的EBS卷然后直接Attach到Kubernetes节点的机器上通过lsblk命令即可获得卷的名称将这个名称填入deviceFilter设置即可安装Rook ToolboxRook Toolbox是一个运行在rook-ceph命名空间下的容器通过它可以执行一些Ceph的管理任务建议安装还是挺实用的。创建一个yaml文件# rook-toolbox.yaml apiVersion: apps/v1 kind: Deployment metadata:name: rook-ceph-toolsnamespace: rook-cephlabels:app: rook-ceph-tools spec:replicas: 1selector:matchLabels:app: rook-ceph-toolstemplate:metadata:labels:app: rook-ceph-toolsspec:dnsPolicy: ClusterFirstWithHostNetcontainers:- name: rook-ceph-toolsimage: rook/ceph:v1.5.3command: [/tini]args: [-g, --, /usr/local/bin/toolbox.sh]imagePullPolicy: IfNotPresentenv:- name: ROOK_CEPH_USERNAMEvalueFrom:secretKeyRef:name: rook-ceph-monkey: ceph-username- name: ROOK_CEPH_SECRETvalueFrom:secretKeyRef:name: rook-ceph-monkey: ceph-secretvolumeMounts:- mountPath: /etc/cephname: ceph-config- name: mon-endpoint-volumemountPath: /etc/rookvolumes:- name: mon-endpoint-volumeconfigMap:name: rook-ceph-mon-endpointsitems:- key: datapath: mon-endpoints- name: ceph-configemptyDir: {}tolerations:- key: node.kubernetes.io/unreachableoperator: Existseffect: NoExecutetolerationSeconds: 5 然后kubectl create -f rook-toolbox.yaml 接着可以执行下面的命令进入Rook Toolbox容器kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash 然后使用ceph status命令来查看集群的状态。正常的话应该可以看到类似下面的结果$ ceph statuscluster:id: a0452c76-30d9-4c1a-a948-5d8405f19a7chealth: HEALTH_OKservices:mon: 3 daemons, quorum a,b,c (age 3m)mgr: a(active, since 2m)osd: 3 osds: 3 up (since 1m), 3 in (since 1m) 一定要确保health的状态为HEALTH_OK如果不是HEALTH_OK则需要排查原因并解决。问题排查指南https://rook.io/docs/rook/v1.5/ceph-common-issues.html。部署块存储Provisioning Block Storage使用下面的yaml# ceph-block-deploy.yaml apiVersion: ceph.rook.io/v1 kind: CephBlockPool metadata:name: replicapoolnamespace: rook-ceph spec:failureDomain: hostreplicated:size: 3--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: rook-ceph-blockannotations:storageclass.kubernetes.io/is-default-class: true provisioner: rook-ceph.rbd.csi.ceph.com parameters:clusterID: rook-cephpool: replicapoolimageFormat: 2imageFeatures: layeringcsi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisionercsi.storage.k8s.io/provisioner-secret-namespace: rook-cephcsi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisionercsi.storage.k8s.io/controller-expand-secret-namespace: rook-cephcsi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-nodecsi.storage.k8s.io/node-stage-secret-namespace: rook-cephcsi.storage.k8s.io/fstype: ext4 reclaimPolicy: Retain 然后Kubectl create -f ceph-block-deploy.yaml 在这个yaml中同时定义了名为rook-ceph-block的StorageClass用以在pods启动的时候能够动态创建基于Ceph的块存储通过pool: replicapool的设置指定。此外在这个StorageClass中设定了storageclass.kubernetes.io/is-default-class: true。因此在PersistentVolumeClaim中即使没有指定storageClassNameKubernetes也会默认使用Ceph块存储来保存app的数据。部署块存储的详细内容可以参考https://rook.io/docs/rook/v1.5/ceph-block.html。部署对象存储Provisioning Object Storage使用下面的yaml# ceph-s3-deploy.yaml apiVersion: ceph.rook.io/v1 kind: CephObjectStore metadata:name: my-storenamespace: rook-ceph spec:metadataPool:failureDomain: hostreplicated:size: 3dataPool:failureDomain: hosterasureCoded:dataChunks: 2codingChunks: 1preservePoolsOnDelete: truegateway:type: s3sslCertificateRef:port: 80# securePort: 443instances: 3healthCheck:bucket:disabled: falseinterval: 60s 然后kubectl create -f ceph-s3-deploy.yaml 等待几分钟后执行下面的命令kubectl -n rook-ceph get pod -l approok-ceph-rgw 此时应该可以在pod的列表中看到名字包含有rgw的pod处于Running状态。接下来就是要在对象存储上创建Bucket。官方提供了基于StorageClass的创建方式。这里介绍另一种方式就是借用MINIO的管理工具来创建。使用下面的shell脚本# setup-s3-storage.sh #! /bin/bash echo Creating Ceph User CREATE_USER_OUTPUTkubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l approok-ceph-tools -o jsonpath{.items[0].metadata.name}) -- radosgw-admin user create --uidsystem-user --display-namesystem-user --system ACCESS_KEY$(echo $CREATE_USER_OUTPUT | jq -r .keys[0].access_key) SECRET_KEY$(echo $CREATE_USER_OUTPUT | jq -r .keys[0].secret_key) echo User was created successfully echo S3 ACCESS KEY $ACCESS_KEY echo S3 SECRET KEY $SECRET_KEYecho Creating Ceph S3 Bucket kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l approok-ceph-tools -o jsonpath{.items[0].metadata.name}) -- curl https://dl.min.io/client/mc/release/linux-amd64/mc --output mc kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l approok-ceph-tools -o jsonpath{.items[0].metadata.name}) -- chmod x mc kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l approok-ceph-tools -o jsonpath{.items[0].metadata.name}) -- ./mc config host add mys3 http://rook-ceph-rgw-signals-store/ $ACCESS_KEY $SECRET_KEY kubectl -n rook-ceph exec -it $(kubectl -n rook-ceph get pod -l approok-ceph-tools -o jsonpath{.items[0].metadata.name}) -- ./mc mb mys3/data echo Ceph S3 Bucket created successfully echo S3 ACCESS KEY $ACCESS_KEY echo S3 SECRET KEY $SECRET_KEY 在确保了当前机器上安装了jq后执行chmod x setup-s3-storage.sh ./setup-s3-storage.sh 此时会输出S3的Access Key和Secret Key。创建的Bucket名为data。验证Object Storage是否部署成功首先执行下面的命令进入Rook Toolboxkubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash 然后执行export AWS_HOSThost export AWS_ENDPOINTendpoint export AWS_ACCESS_KEY_IDaccessKey export AWS_SECRET_ACCESS_KEYsecretKey 为rgw Service的DNS主机名。如果你的Object Storage名为my-store那么主机名就是rook-ceph-rgw-my-store.rook-ceph为rgw Service的端点。执行kubectl -n rook-ceph get svc rook-ceph-rgw-my-store然后将ClusterIP和端口号拼接起来作为endpoint的值accessKey上一步获得的Access KeysecretKey上一步获得的Secret Key以下是一个例子export AWS_HOSTrook-ceph-rgw-my-store.rook-ceph export AWS_ENDPOINT10.104.35.31:80 export AWS_ACCESS_KEY_IDXEZDB3UJ6X7HVBE7X7MA export AWS_SECRET_ACCESS_KEY7yGIZON7EhFORz0I40BFniML36D2rl8CQQ5kXU6l 接下来安装一个s3cmd的工具yum --assumeyes install s3cmd 然后随便写一些内容到rookObj文件echo Hello Rook /tmp/rookObj 然后通过s3cmd将这个文件保存到S3:s3cmd put /tmp/rookObj --no-ssl --host${AWS_HOST} --host-bucket s3://data 注意--host-bucket后的空格。然后使用s3cmd从Bucket将文件下载并另存为另一个文件s3cmd get s3://data/rookObj /tmp/rookObj-download --no-ssl --host${AWS_HOST} --host-bucket 最后通过cat命令查看下载下来的文件的内容是否正确cat /tmp/rookObj-download 如果能够看到Hello Rook的输出字样表示一切正常。接下来就可以在app中使用Ceph Block Storage和Ceph Object Storage了。部署对象存储的详细内容可以参考https://rook.io/docs/rook/v1.5/ceph-object.html。下一步之后我会使用Microsoft .NET 5编写一个Web API应用程序并部署到Kubernetes环境演示如何在app中使用本文所部署的Ceph Block Storage和Ceph Object Storage。
http://www.yutouwan.com/news/459532/

相关文章:

  • 百度里面企业网站怎么建设wordpress 插件 安装
  • 网站代运营公司排名南宁自助建站软件
  • 全国建设交易信息网站中华网
  • 百度如何把网站做链接地址互联网营销师报名入口官网
  • 网站做2微码天华建筑设计公司官网
  • 网站设计制作公司排名视觉中国设计网站
  • 常青花园做网站的公司阿里云自助建站模板
  • 项目推广网站江苏省住房和城乡建设厅
  • tomcat 建网站泰州网站建设推广
  • 网站优化如何做pc指数关于网站建设论文
  • 福建闽东建设网站成都纯手工seo
  • 设计案例的网站北京手机网站建设费用
  • 镇江地区做网站的公司有哪些app开发开发公司
  • 免费网站申请注册富拉尔基网站建设
  • 吴江网站制作大数据营销的核心
  • 在线做的网站企业门户平台登录
  • 微信手机版网站建设上线了做的网站可以登陆
  • 成都网站优化常识免费响应式网站建设
  • 网站建设详细报价fullpane 单页视差多用途 wordpress主题
  • 网站建设合同英文模板建设部监理资质申报网站
  • 上传网站代码什么是理财北京网站建设公司好
  • 互联网建站公司有哪些西安查派网站建设
  • 关键词挖掘爱网站seo排名优化服务
  • dede网站文档不能更新达州网站建设哪家好
  • 做网站经验北京WordPress爱好者
  • 网站流量分析新手电商
  • 卖建材的网站网址大全2345电脑版下载
  • 免费发布信息的网站平台企业所得税怎么征收标准
  • 可信网站可信站点亳州建设局网站
  • 设计好的制作网站汕头提供关键词平台