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

网站架构招聘php模板网站

网站架构招聘,php模板网站,设计本官方网站案例,建设财经资讯网站的目的K8s入门 目录 K8s入门namespacepoddeployment多版本扩缩容治愈能力滚动更新版本回退 serviceClusterIPNodePort ingress域名访问路径重写流量限制 存储抽象PVPVCConfigMapSecret namespace kubectl get ns # 获取命名空间 kubectl create ns 名字 # 创建命名空间 ku…K8s入门 目录 K8s入门namespacepoddeployment多版本扩缩容治愈能力滚动更新版本回退 serviceClusterIPNodePort ingress域名访问路径重写流量限制 存储抽象PVPVCConfigMapSecret namespace kubectl get ns # 获取命名空间 kubectl create ns 名字 # 创建命名空间 kubectl delete ns 名字 # 删除命名空间配置文件格式创建namespace hello.yaml apiVersion: v1 kind: Namespace metadata:name: hellokubectl apply -f hello.yaml # 应用配置文件 kebectl delete -f hello.yaml # 删除配置文件和对应的命名空间pod kubectl run mynginx --imagenginx# 查看default名称空间的Pod kubectl get pod kubectl get pod -owide # 详情 # 描述 kubectl describe pod 你自己的Pod名字 # 删除 kubectl delete pod Pod名字 # 查看Pod的运行日志 kubectl logs Pod名字# 每个Pod - k8s都会分配一个ip kubectl get pod -owide # 使用Pod的ippod里面运行容器的端口 curl 192.168.169.136# 集群中的任意一个机器以及任意的应用都能通过Pod分配的ip来访问这个Podyaml形式创建pod apiVersion: v1 kind: Pod metadata:labels:run: mynginxname: mynginx # namespace: default spec:containers:- image: nginxname: mynginx多容器 apiVersion: v1 kind: Pod metadata:labels:run: myappname: myapp spec:containers:- image: nginxname: nginx- image: tomcat:8.5.68name: tomcatdeployment 多版本 # 清除所有Pod比较下面两个命令有何不同效果 kubectl run mynginx --imagenginxkubectl create deployment mytomcat --imagetomcat:8.5.68 # 自愈能力#多个副本 kubectl create deployment my-dep --imagenginx --replicas3配置文件 apiVersion: apps/v1 kind: Deployment metadata:labels:app: my-depname: my-dep spec:replicas: 3selector:matchLabels:app: my-deptemplate:metadata:labels:app: my-depspec:containers:- image: nginxname: nginx扩缩容 kubectl scale --replicas5 deployment/my-dep# 修改配置文件 kubectl edit deployment my-dep#修改 replicas治愈能力 pod会自动重启若机器宕机会在其他机器中启动该pod 停机删除Pod容器崩溃… 滚动更新 kubectl set image deployment/my-dep nginxnginx:1.16.1 --record kubectl rollout status deployment/my-dep版本回退 #历史记录 kubectl rollout history deployment/my-dep#查看某个历史详情 kubectl rollout history deployment/my-dep --revision2#回滚(回到上次) kubectl rollout undo deployment/my-dep#回滚(回到指定版本) kubectl rollout undo deployment/my-dep --to-revision2service #暴露Deploy kubectl expose deployment my-dep --port8000 --target-port80#使用标签检索Pod kubectl get pod -l appmy-dep配置文件 apiVersion: v1 kind: Service metadata:labels:app: my-depname: my-dep spec:selector:app: my-depports:- port: 8000protocol: TCPtargetPort: 80访问ip 端口 / 名称.域名空间.svc 端口 ClusterIP # 等同于没有--type的 kubectl expose deployment my-dep --port8000 --target-port80 --typeClusterIPapiVersion: v1 kind: Service metadata:labels:app: my-depname: my-dep spec:ports:- port: 8000protocol: TCPtargetPort: 80selector:app: my-deptype: ClusterIPNodePort kubectl expose deployment my-dep --port8000 --target-port80 --typeNodePortapiVersion: v1 kind: Service metadata:labels:app: my-depname: my-dep spec:ports:- port: 8000protocol: TCPtargetPort: 80selector:app: my-deptype: NodePortNodePort范围在 30000-32767 之间 ingress 安装 wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/baremetal/deploy.yaml#修改镜像 vi deploy.yaml #将image的值改为如下值 registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/ingress-nginx-controller:v0.46.0# 检查安装的结果 kubectl get pod,svc -n ingress-nginx# 最后别忘记把svc暴露的端口要放行apiVersion: v1 kind: Namespace metadata:name: ingress-nginxlabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginx--- # Source: ingress-nginx/templates/controller-serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginxnamespace: ingress-nginx automountServiceAccountToken: true --- # Source: ingress-nginx/templates/controller-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginx-controllernamespace: ingress-nginx data: --- # Source: ingress-nginx/templates/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmname: ingress-nginx rules:- apiGroups:- resources:- configmaps- endpoints- nodes- pods- secretsverbs:- list- watch- apiGroups:- resources:- nodesverbs:- get- apiGroups:- resources:- servicesverbs:- get- list- watch- apiGroups:- extensions- networking.k8s.io # k8s 1.14resources:- ingressesverbs:- get- list- watch- apiGroups:- resources:- eventsverbs:- create- patch- apiGroups:- extensions- networking.k8s.io # k8s 1.14resources:- ingresses/statusverbs:- update- apiGroups:- networking.k8s.io # k8s 1.14resources:- ingressclassesverbs:- get- list- watch --- # Source: ingress-nginx/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmname: ingress-nginx roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: ingress-nginx subjects:- kind: ServiceAccountname: ingress-nginxnamespace: ingress-nginx --- # Source: ingress-nginx/templates/controller-role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginxnamespace: ingress-nginx rules:- apiGroups:- resources:- namespacesverbs:- get- apiGroups:- resources:- configmaps- pods- secrets- endpointsverbs:- get- list- watch- apiGroups:- resources:- servicesverbs:- get- list- watch- apiGroups:- extensions- networking.k8s.io # k8s 1.14resources:- ingressesverbs:- get- list- watch- apiGroups:- extensions- networking.k8s.io # k8s 1.14resources:- ingresses/statusverbs:- update- apiGroups:- networking.k8s.io # k8s 1.14resources:- ingressclassesverbs:- get- list- watch- apiGroups:- resources:- configmapsresourceNames:- ingress-controller-leader-nginxverbs:- get- update- apiGroups:- resources:- configmapsverbs:- create- apiGroups:- resources:- eventsverbs:- create- patch --- # Source: ingress-nginx/templates/controller-rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginxnamespace: ingress-nginx roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: ingress-nginx subjects:- kind: ServiceAccountname: ingress-nginxnamespace: ingress-nginx --- # Source: ingress-nginx/templates/controller-service-webhook.yaml apiVersion: v1 kind: Service metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginx-controller-admissionnamespace: ingress-nginx spec:type: ClusterIPports:- name: https-webhookport: 443targetPort: webhookselector:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/component: controller --- # Source: ingress-nginx/templates/controller-service.yaml apiVersion: v1 kind: Service metadata:annotations:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginx-controllernamespace: ingress-nginx spec:type: NodePortports:- name: httpport: 80protocol: TCPtargetPort: http- name: httpsport: 443protocol: TCPtargetPort: httpsselector:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/component: controller --- # Source: ingress-nginx/templates/controller-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: controllername: ingress-nginx-controllernamespace: ingress-nginx spec:selector:matchLabels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/component: controllerrevisionHistoryLimit: 10minReadySeconds: 0template:metadata:labels:app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/component: controllerspec:dnsPolicy: ClusterFirstcontainers:- name: controllerimage: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/ingress-nginx-controller:v0.46.0imagePullPolicy: IfNotPresentlifecycle:preStop:exec:command:- /wait-shutdownargs:- /nginx-ingress-controller- --election-idingress-controller-leader- --ingress-classnginx- --configmap$(POD_NAMESPACE)/ingress-nginx-controller- --validating-webhook:8443- --validating-webhook-certificate/usr/local/certificates/cert- --validating-webhook-key/usr/local/certificates/keysecurityContext:capabilities:drop:- ALLadd:- NET_BIND_SERVICErunAsUser: 101allowPrivilegeEscalation: trueenv:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: LD_PRELOADvalue: /usr/local/lib/libmimalloc.solivenessProbe:failureThreshold: 5httpGet:path: /healthzport: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10successThreshold: 1timeoutSeconds: 1readinessProbe:failureThreshold: 3httpGet:path: /healthzport: 10254scheme: HTTPinitialDelaySeconds: 10periodSeconds: 10successThreshold: 1timeoutSeconds: 1ports:- name: httpcontainerPort: 80protocol: TCP- name: httpscontainerPort: 443protocol: TCP- name: webhookcontainerPort: 8443protocol: TCPvolumeMounts:- name: webhook-certmountPath: /usr/local/certificates/readOnly: trueresources:requests:cpu: 100mmemory: 90MinodeSelector:kubernetes.io/os: linuxserviceAccountName: ingress-nginxterminationGracePeriodSeconds: 300volumes:- name: webhook-certsecret:secretName: ingress-nginx-admission --- # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml # before changing this value, check the required kubernetes version # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata:labels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhookname: ingress-nginx-admission webhooks:- name: validate.nginx.ingress.kubernetes.iomatchPolicy: Equivalentrules:- apiGroups:- networking.k8s.ioapiVersions:- v1beta1operations:- CREATE- UPDATEresources:- ingressesfailurePolicy: FailsideEffects: NoneadmissionReviewVersions:- v1- v1beta1clientConfig:service:namespace: ingress-nginxname: ingress-nginx-controller-admissionpath: /networking/v1beta1/ingresses --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata:name: ingress-nginx-admissionannotations:helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhooknamespace: ingress-nginx --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: ingress-nginx-admissionannotations:helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhook rules:- apiGroups:- admissionregistration.k8s.ioresources:- validatingwebhookconfigurationsverbs:- get- update --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: ingress-nginx-admissionannotations:helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhook roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: ingress-nginx-admission subjects:- kind: ServiceAccountname: ingress-nginx-admissionnamespace: ingress-nginx --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:name: ingress-nginx-admissionannotations:helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhooknamespace: ingress-nginx rules:- apiGroups:- resources:- secretsverbs:- get- create --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:name: ingress-nginx-admissionannotations:helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhooknamespace: ingress-nginx roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: ingress-nginx-admission subjects:- kind: ServiceAccountname: ingress-nginx-admissionnamespace: ingress-nginx --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml apiVersion: batch/v1 kind: Job metadata:name: ingress-nginx-admission-createannotations:helm.sh/hook: pre-install,pre-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhooknamespace: ingress-nginx spec:template:metadata:name: ingress-nginx-admission-createlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhookspec:containers:- name: createimage: docker.io/jettech/kube-webhook-certgen:v1.5.1imagePullPolicy: IfNotPresentargs:- create- --hostingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc- --namespace$(POD_NAMESPACE)- --secret-nameingress-nginx-admissionenv:- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacerestartPolicy: OnFailureserviceAccountName: ingress-nginx-admissionsecurityContext:runAsNonRoot: truerunAsUser: 2000 --- # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml apiVersion: batch/v1 kind: Job metadata:name: ingress-nginx-admission-patchannotations:helm.sh/hook: post-install,post-upgradehelm.sh/hook-delete-policy: before-hook-creation,hook-succeededlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhooknamespace: ingress-nginx spec:template:metadata:name: ingress-nginx-admission-patchlabels:helm.sh/chart: ingress-nginx-3.33.0app.kubernetes.io/name: ingress-nginxapp.kubernetes.io/instance: ingress-nginxapp.kubernetes.io/version: 0.47.0app.kubernetes.io/managed-by: Helmapp.kubernetes.io/component: admission-webhookspec:containers:- name: patchimage: docker.io/jettech/kube-webhook-certgen:v1.5.1imagePullPolicy: IfNotPresentargs:- patch- --webhook-nameingress-nginx-admission- --namespace$(POD_NAMESPACE)- --patch-mutatingfalse- --secret-nameingress-nginx-admission- --patch-failure-policyFailenv:- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacerestartPolicy: OnFailureserviceAccountName: ingress-nginx-admissionsecurityContext:runAsNonRoot: truerunAsUser: 2000应用如下yaml准备好测试环境 apiVersion: apps/v1 kind: Deployment metadata:name: hello-server spec:replicas: 2selector:matchLabels:app: hello-servertemplate:metadata:labels:app: hello-serverspec:containers:- name: hello-serverimage: registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/hello-serverports:- containerPort: 9000 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-demoname: nginx-demo spec:replicas: 2selector:matchLabels:app: nginx-demotemplate:metadata:labels:app: nginx-demospec:containers:- image: nginxname: nginx --- apiVersion: v1 kind: Service metadata:labels:app: nginx-demoname: nginx-demo spec:selector:app: nginx-demoports:- port: 8000protocol: TCPtargetPort: 80 --- apiVersion: v1 kind: Service metadata:labels:app: hello-servername: hello-server spec:selector:app: hello-serverports:- port: 8000protocol: TCPtargetPort: 9000域名访问 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress-host-bar spec:ingressClassName: nginxrules:- host: hello.atguigu.comhttp:paths:- pathType: Prefixpath: /backend:service:name: hello-serverport:number: 8000- host: demo.atguigu.comhttp:paths:- pathType: Prefixpath: /nginx # 把请求会转给下面的服务下面的服务一定要能处理这个路径不能处理就是404backend:service:name: nginx-demo ## java比如使用路径重写去掉前缀nginxport:number: 8000路径重写 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:annotations:nginx.ingress.kubernetes.io/rewrite-target: /$2name: ingress-host-bar spec:ingressClassName: nginxrules:- host: hello.atguigu.comhttp:paths:- pathType: Prefixpath: /backend:service:name: hello-serverport:number: 8000- host: demo.atguigu.comhttp:paths:- pathType: Prefixpath: /nginx(/|$)(.*) # 把请求会转给下面的服务下面的服务一定要能处理这个路径不能处理就是404backend:service:name: nginx-demo ## java比如使用路径重写去掉前缀nginxport:number: 8000流量限制 apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: ingress-limit-rateannotations:nginx.ingress.kubernetes.io/limit-rps: 1 spec:ingressClassName: nginxrules:- host: haha.atguigu.comhttp:paths:- pathType: Exactpath: /backend:service:name: nginx-demoport:number: 8000存储抽象 #所有机器安装 yum install -y nfs-utils主节点 #nfs主节点 echo /nfs/data/ *(insecure,rw,sync,no_root_squash) /etc/exportsmkdir -p /nfs/data systemctl enable rpcbind --now systemctl enable nfs-server --now #配置生效 exportfs -r从节点 showmount -e 172.31.0.4#执行以下命令挂载 nfs 服务器上的共享目录到本机路径 /root/nfsmount mkdir -p /nfs/datamount -t nfs 172.31.0.4:/nfs/data /nfs/data # 写入一个测试文件 echo hello nfs server /nfs/data/test.txt原生方式数据挂载 apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-pv-demoname: nginx-pv-demo spec:replicas: 2selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-pv-demospec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlnfs:server: 172.31.0.4path: /nfs/data/nginx-pvPVPVC PV持久卷Persistent Volume将应用需要持久化的数据保存到指定位置 PVC持久卷申明Persistent Volume Claim申明需要使用的持久卷规格 创建pv池 #nfs主节点 mkdir -p /nfs/data/01 mkdir -p /nfs/data/02 mkdir -p /nfs/data/03创建PV apiVersion: v1 kind: PersistentVolume metadata:name: pv01-10m spec:capacity:storage: 10MaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/01server: 172.31.0.4 --- apiVersion: v1 kind: PersistentVolume metadata:name: pv02-1gi spec:capacity:storage: 1GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/02server: 172.31.0.4 --- apiVersion: v1 kind: PersistentVolume metadata:name: pv03-3gi spec:capacity:storage: 3GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/data/03server: 172.31.0.4PVC创建与绑定 创建PVC kind: PersistentVolumeClaim apiVersion: v1 metadata:name: nginx-pvc spec:accessModes:- ReadWriteManyresources:requests:storage: 200MistorageClassName: nfs创建Pod绑定PVC apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-deploy-pvcname: nginx-deploy-pvc spec:replicas: 2selector:matchLabels:app: nginx-deploy-pvctemplate:metadata:labels:app: nginx-deploy-pvcspec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim:claimName: nginx-pvcConfigMap 抽取应用配置并且可以自动更新 redis示例 # 创建配置redis保存到k8s的etcd kubectl create cm redis-conf --from-fileredis.confapiVersion: v1 data: #data是所有真正的数据key默认是文件名 value配置文件的内容redis.conf: |appendonly yes kind: ConfigMap metadata:name: redis-confnamespace: default创建Pod apiVersion: v1 kind: Pod metadata:name: redis spec:containers:- name: redisimage: rediscommand:- redis-server- /redis-master/redis.conf #指的是redis容器内部的位置ports:- containerPort: 6379volumeMounts:- mountPath: /dataname: data- mountPath: /redis-mastername: configvolumes:- name: dataemptyDir: {}- name: configconfigMap:name: redis-confitems:- key: redis.confpath: redis.conf检查默认配置 kubectl exec -it redis -- redis-cli127.0.0.1:6379 CONFIG GET appendonly 127.0.0.1:6379 CONFIG GET requirepassapiVersion: v1 kind: ConfigMap metadata:name: example-redis-config data:redis-config: |maxmemory 2mbmaxmemory-policy allkeys-lru 检查配置是否更新 kubectl exec -it redis -- redis-cli127.0.0.1:6379 CONFIG GET maxmemory 127.0.0.1:6379 CONFIG GET maxmemory-policy检查指定文件内容是否已经更新 修改了CM。Pod里面的配置文件会跟着变 *配置值未更改因为需要重新启动 Pod 才能从关联的 ConfigMap 中获取更新的值。* *原因我们的Pod部署的中间件自己本身没有热更新能力* Secret Secret 对象类型用来保存敏感信息例如密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 的定义或者 容器镜像 中来说更加安全和灵活。 kubectl create secret docker-registry leifengyang-docker \ --docker-usernameleifengyang \ --docker-passwordLfy123456 \ --docker-email534096094qq.com##命令格式 kubectl create secret docker-registry regcred \--docker-server你的镜像仓库服务器 \--docker-username你的用户名 \--docker-password你的密码 \--docker-email你的邮箱地址apiVersion: v1 kind: Pod metadata:name: private-nginx spec:containers:- name: private-nginximage: leifengyang/guignginx:v1.0imagePullSecrets:- name: leifengyang-docker
http://wiki.neutronadmin.com/news/69324/

相关文章:

  • 成都网站建设推广详情做app网站
  • 京东网站项目建设规划书有域名就可以做网站么
  • 外贸网站建设平台有哪些网站数据泄露我们应该怎么做
  • 网站建设阿里云网站开发软件公司
  • 福建泉州曾明军的网站国内做网站最大的公司
  • 手机如何网站wordpress 博客程序
  • 计算机网络技术网站开发与设计wordpress外卖
  • 免费建立一个个人网站农业信息中心网站建设
  • 做网站要执照吗网站推广关键词排名优化
  • 网站做相片做网站要空间还是服务器
  • 什么网站可以做高三英语试题佛山南海网站开发
  • 自己编程怎么做网站教程文明网站建设方案及管理制度
  • 上海高端网站搭建公众号开发是不是网站开发
  • 展示型网站建设的建议沧州好的做网站的公司
  • 杭州 网站建设公司排名安阳网络营销的几种方式
  • 龙岗商城网站建设最好wordpress 百度软件
  • 网站手机版管理链接软件开发后端
  • 摄影网站怎么做数据库网站模版 带 手机版
  • 怎么通过做网站来赚钱no.7 wordpress个
  • 滨海做网站的价格山东建设厅网站是什么
  • visual studio网站开发上海最好的网站建设公司
  • 东莞做网站沃德网络广告的设计与制作
  • 如果做vr参观网站兰考县住房和城乡建设局网站
  • 建设企业网站的申请建立企业网站步骤
  • 购物网站seo自助网站能在百度上搜到么
  • 翼讯自助网站网站开发美工绩效考核
  • 洛阳青峰做网站深圳网站建设的公司招聘
  • 网站做统计西安网站建设开发公司
  • wordpress 登陆信息南城网站优化公司
  • seo怎么做网站优秀案例提供赣州网站建设