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

怎么确定电商网站建设的目标做头像网站

怎么确定电商网站建设的目标,做头像网站,免费制作h5页面平台,做网站可行性分析2、Controller 2.1、概述 在集群上管理和运行容器的对象#xff0c;控制器(也称为#xff1a;工作负载)#xff0c;Controller实际存在的#xff0c;Pod是抽象的#xff1b; 2.2、Pod和Controller关系 Pod是通过Controller实现应用运维#xff0c;比如#xff1a;弹…2、Controller 2.1、概述 在集群上管理和运行容器的对象控制器(也称为工作负载)Controller实际存在的Pod是抽象的 2.2、Pod和Controller关系 Pod是通过Controller实现应用运维比如弹性伸缩、滚动升级等等Pod和Controller之间通过labe和selectorl标签建立关系通过labels名称找到selector 2.3、常用控制器(deployment) 2.3.1、应用场景 部署无状态应用(例如:nginx)管理Pod和ReplicaSet部署滚动升级等功能应用场景web服务微服务 2.3.2、通过yaml文件部署应用 使用yaml文件部署应用 #创建并导出yaml文件kubectl create deployment nginx --imagenginx --dry-runclient -o yaml nginx.yaml#通过yaml文件部署应用kubectl apply -f nginx.yaml #查看状态kubectl get pod对外发布(暴露端口号) #暴露端口号(target-port80) kubectl expose deployment nginx --port80 --typeNodePort --target-port80 --name nginx -o yaml nginx1.yaml #通过yaml文件暴露端口 kubectl apply -f nginx1.yaml 2.4、应用升级回滚和弹性伸缩 2.4.1、应用升级 升级过程中保证服务不中断会一个Pod一个Pod逐步替换升级实质image版本升级 1先指定应用版本部署这里指定nginx版本为1.14 #创建指定版本应用 kubectl apply -f nginx1.yaml 在Node节点查看镜像会看到下载的1.14版本 2应用升级此处nginx版本为1.15 #nginx:第一个表示名称,nginx第二个表示镜像 kubectl set image deployment nginx nginxnginx:1.15在Node节点查看镜像会看到下载的1.15版本 3查看升级状态 kubectl rollout status deployment nginx2.4.2、应用版本回滚 1查看历史版本 kubectl rollout history deployment nginx2回滚操作 回滚到上一个版本 #回滚到上一个版本 kubectl rollout undo deployment nginx #查看回滚后状态 kubectl rollout status deployment nginx回滚到指定版本 #回滚到指定版本 kubectl rollout undo deployment nginx --to-revision22.4.3、应用弹性伸缩 #弹性伸缩命令 kubectl scale deployment nginx --replicas52.5、部署有状态应用(StatefulSet) 2.5.1、无状态和有状态 1无状态 认为Pod都是一样无顺序要求不用考虑在任意node运行可随意伸缩和控制 2有状态上面的因素都需要考虑到每个Pod都是独立的保持Pod启动顺序和唯一性唯一的网络标识符持久存储有序比如mysql主从 2.5.2、部署有状态应用 1SatefulSet部署有状态应用 无头service指ClusterIPnone。 无头的service cat sts.yaml EOF apiVersion: v1 kind: Service metadata:creationTimestamp: nulllabels:app: nginxname: nginx spec:ports:- port: 80name: webselector:app: nginxclusterIP: None---apiVersion: apps/v1 kind: StatefulSet metadata:name: nginx-statefulsetnamespace: default spec:serviceName: nginxreplicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:latestname: nginxports:- containerPort: 80EOF查看pod: 有三个pod每个名称(NAME)都不一样查看创建无头ServiceCLUSTER-IPNone #查看服务 kubectl get svc #删除statefulset kubectl delete statefulset --all2deployment和statefulset区别 statefulset特点 有唯一标识根据主机名 按照一定规则生成域名 每个pod有唯一主机名唯一域名格式主机名称.service名称.名称空间.svc.cluster.local nginx-statefulset-0.nginx.default.svc.cluster.local 2.6、部署守护进程(DaemonSet) 让每个node上运行同一个pod新加入的node也同样运行在一个pod里面 例如在每个node节点安装数据采集工具适用场景每台虚拟机(Node) 进行日志采集 创建daemonset文件 cat daemon.yaml EOF apiVersion: apps/v1 kind: DaemonSet metadata:name: ds-testlabels:app: filebeatnamespace: default spec:selector:matchLabels:app: filebeattemplate:metadata:labels:app: filebeatspec:containers:- name: logsimage: nginxports:- containerPort: 80volumeMounts:- name: varlogmountPath: /tmp/logvolumes:- name: varloghostPath:path: /var/logEOF创建守护进程pod #执行daemon.yaml文件 kubectl apply -f deamon.yaml kubectl get pods进入容器查看日志 kubectl get pods #进入容器 kubectl exec -it ds-test-bg657 bash #查看日志 ls /tmp/log #退出 exit2.6、一次性任务和定时任务 2.6.1、Job(一次性任务) 创建job.yaml文件 #创建job文件计算PI的值 cat job.yaml EOF apiVersion: batch/v1 kind: Job metadata:name: pi-calculatenamespace: default spec:template:spec:containers:- name: piimage: perlcommand: [perl, -Mbignumbpi, -wle, print bpi(2000)]restartPolicy: NeverbackoffLimit: 4EOF创建job #创建job应用yaml文件 $kubectl apply -f job.yaml #Node: 【Completed】表示一次性任务完成 $kubectl get pods -o wide #查看一次性job $kubectl get jobs #查看日志: 格式: kubectl logs pod名称 $kubectl logs pi-calculate-dgxtr #删除job $kubectl delete -f job.yaml2.6.2、CornJob(定时任务) 创建cronjob.yaml文件 cat cronjob.yaml EOF apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello-worldnamespace: default spec:schedule: */1 * * * *jobTemplate:spec:template:spec:containers:- name: hello-worldimage: busyboxargs:- /bin/sh- -c- date; echo Hello from the kubernetesrestartPolicy: OnFailureEOF创建cronjob #创建cronjob应用yaml文件 $kubectl apply -f cronjob.yaml #Node: 【Completed】表示一次性任务完成,此处会定时输出 $kubectl get pods -o wide #查看一次性job $kubectl get cronjobs #查看日志: 格式: kubectl logs pod名称 $kubectl logs hello-world-1624xxx #删除job $kubectl delete -f cronjob.yaml4、配置管理 4.1、Secret 作用存储加密数据到etcd让Pod容器以变量或者挂载Volume方式进行访问数据适用场景凭证(认证)。 1创建secret加密数据 base64 编码用户名或密码 #编码base64 echo -n admin | base64创建加密数据文件 cat secret.yaml EOF apiVersion: v1 kind: Secret metadata:name: mysecret type: Opaque data:username: YWRtaW4 password: MWYyZDF1MmU2N2Rm EOF生成加密数据 $kubectl create -f secret.yaml #获取加密数据,注此处加密名称为mysecret $kubectl get secret #辅助命令kubectl delete secret --all (删除secret)2以变量方式挂载到Pod容器中 创建带有加密的pod yaml文件 环境变量名称分别为SECRET_USERNAMESECRET_PASSWORD 加密名称(name)mysecret和(1)中mysecret要相同 cat secret-val.yaml EOF apiVersion: v1 kind: Pod metadata:name: mypod spec:containers:- name: nginximage: nginxenv: - name: SECRET_USERNAMEvalueFrom: secretKeyRef:name: mysecretkey: username- name: SECRET_PASSWORDvalueFrom:secretKeyRef:name: mysecretkey: password EOF创建pod并访问加密数据 $kubectl apply -f secret-val.yaml $kubectl get pods #进入pod $kubectl exec -it mypod bash #查看环境变量 echo $SECRET_USERNAME echo $SECRET_PASSWORD3以Volume方式挂载到Pod容器中 创建带有加密的pod yaml文件 加密名称(secretName)mysecret和(1)中mysecret要相同 挂载目录(mountPath)容器/etc/foo目录 cat secret-vol.yaml EOF apiVersion: v1 kind: Pod metadata:name: myfoo spec:containers:- name: nginximage: nginxvolumeMounts:- name: foomountPath: /etc/foovolumes:- name: foosecret:secretName: mysecret EOF创建pod并访问加密数据 $kubectl apply -f secret-vol.yaml $kubectl get pods #进入pod $kubectl exec -it myfoo bash #进入目录 ls /etc/foo cd /etc/foo #查看文件 cat password cat username4.2、ConfigMap 作用存储不加密数据到etcd让Pod容器以变量或者挂载Volume方式进行访问数据适用场景配置文件(IP、端口号、不加密的用户名和密码)。 4.2.1、挂载Volume方式访问 1创建配置文件 cat redis.properties EOF redis.host127.0.0.1 redis.port6379 redis.password123456EOF2创建configmap(名称:redis-config) #从配置文件创建configmap $kubectl create configmap redis-config --from-fileredis.properties #获取cm(configmap) $kubectl get cm #查看cm(configmap) $kubectl describe cm redis-config #辅助命令kubectl delete cm --all 删除所有cm4以Volume方式挂载到Pod容器 创建cmpod yaml文件 mountPath将上面redis.properties文件挂载到/etc/config目录 command输入redis.properties信息 name名称redis-config cat cm.yaml EOF apiVersion: v1 kind: Pod metadata:name: cmpod spec:containers:- name: busyboximage: busyboxcommand: [/bin/sh, -c, cat /etc/config/redis.properties]volumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: redis-configrestartPolicy: NeverEOF创建pod以volume挂载并输出配置 $kubectl apply -f cm.yaml $kubectl get pods #查看日志Completed状态只能以查看日志方式不能进入容器 $kubectl logs cmpod4.2.2、变量方式访问 1以变量方式挂载到Pod容器 创建cm yaml文件 变量名称为special.levelspecial.type kind类型为ConfigMap name名称为cmconfig cat cmconfig.yaml EOF apiVersion: v1 kind: ConfigMap metadata:name: cmconfignamespace: default data:special.level: infospecial.type: helloEOF生成cm(configMap) 创建pod以变量挂载并输出配置 name名称为上面cmconfig key为上面定义变量special.level、special.info cat cmconfig-var.yaml EOF apiVersion: v1 kind: Pod metadata:name: cmvarpod spec:containers:- name: busyboximage: busyboxcommand: [/bin/sh, -c, echo $(LEVEL) $(TYPE)]env:- name: LEVELvalueFrom:configMapKeyRef:name: cmconfigkey: special.level- name: TYPEvalueFrom:configMapKeyRef:name: cmconfigkey: special.typerestartPolicy: Never EOF输出变量special.level和special.type值 5、集群安全机制 5.1、概述 1访问K8s集群资源的时候需要经过三个步骤完成具体操作 认证 传输安全对外不暴露8080端口只能内部访问对外使用端口6443 认证方式(客户端身份认证常用方式) https证书认证基于ca证书 http token认证通过token识别用户 http基本认证用户名密码认证使用较少 鉴权(授权) 基于RBAC进行鉴权操作(基于角色访问控制)准入控制 就是准入控制器的列表如果列表中找到请求内容则通过没有拒绝 2访问集群时候都需要经过apiserverapiserver做统一协调类似门卫职责在访问过程中需要证书、token、或者用户名密码进行相关操作和授权如果访问Pod还需要serviceAccount。 5.2、RBAC 基于角色的访问控制 1角色 role针对特定的命名空间访问权限ClusterRole针对所有命名空间访问权限 2角色绑定 roleBinding角色绑定到主体ClusterRoleBinding集群角色绑定到主体 3主体 user用户group用户组serviceaccount服务账号(一般用于pod访问) 5.3、RBAC实现鉴权 5.3.1、创建命名空间 #查看命名空间 $kubectl get ns #创建命名空间,名称为roledemo $kubectl create ns roledemo2在新创建的命名空间创建pod #在namespace(roledemo)下创建pod $kubectl run nginx --imagenginx -n roledemo #查看指定命名空间下pod $kubectl get pods -n roledemo3创建角色 cat rbac-role.yaml EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:name: pod-readernamespace: roledemo rules: - apiGroups: [] # indicates the core API groupresources: [pods]verbs: [get, watch, list]EOF#在命名空间中创建角色 $kubectl apply -f rbac-role.yaml #查看命名空间下角色 $kubectl get role -n roledemo #辅助命令kubectl get role 查看所有命名空间角色4创建角色绑定 cat rbac-rolebinding.yaml EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:name: read-podsnamespace: roledemo subjects: - kind: Username: [pods]verbs: [get, watch, list]EOF
http://www.dnsts.com.cn/news/280130.html

相关文章:

  • 网站建立不安全怎么取消网上贸易平台有哪些
  • 微网站模板建设的选择网页制作交城旅游景点
  • 罗湖网站的建设网站建设发生的成本如何记账
  • 广陵区建设局网站今天的国内新闻
  • 怎么建自己的手机网站做网络写手赚钱的网站
  • 商务网站的建设与维护百度关键词搜索量查询
  • 洛阳电商网站建设楼盘网站模板
  • 网站没有内容 备案能成功吗苏州网络推广seo服务
  • 注册一个公司网站需要多少钱微信小程序网站建设公司
  • 网站建设东莞数字重庆公司
  • 网站建设提供的网站资料网站怎么做域名
  • 网站建设优化推广哈尔滨网站点击量查询
  • 小的电商网站电子网站建设推广方案
  • 青海城乡建设厅网站 官网ios wordpress 编辑器
  • 网站建设是如何称呼的市场营销推广策划
  • 网站开发设计实训实训总结淮安app开发公司
  • 建站宝盒自助建站系统手机在线做ppt模板下载网站
  • 网络销售网站网站帮企业做推广价格怎么算
  • 哪里可以做购物网站招聘网站套餐
  • 人工智能公司网站建设如何做网站充值接口
  • 青岛专业网站开发wordpress怎么做站群
  • 网站系统建设架构织梦网站环境
  • 怎样做网站检索数据分析wordpress调用文章内容标签
  • 在线推广是网站推广十大网络科技公司
  • asp网站开发的开发环境国外图片网站源码
  • 开发做游戏的网站浦江网站建设微信开发
  • 安阳市城乡建设规划局网站网站后台用户名
  • 开先建设集团网站帮人做海报的网站
  • 网站后台logo制作网页的代码实例
  • 环保网站建设维护情况报告请问网上有没有比较好的网站可以做照片书的呀?要求质量比较好的!