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

网站视频接口 怎么做学网站开发怎么就业

网站视频接口 怎么做,学网站开发怎么就业,辽宁建设银行企业银行官方网站,北京网站开发浩森宇特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.w-s-a.com/news/770932/

相关文章:

  • 中国最大的网站制作公司青海省高等级公路建设管局网站
  • 建设网站对服务器有什么要求吗wordpress去除更新提示
  • 找个为公司做网站的手机端原神
  • 邯郸手机建站价格公众号开发者权限哪里添加
  • wordpress模板电子书下载站微信app官方免费下载
  • 从哪些方面进行网站建设如何做网站的实时画面
  • 设计网站公司收费西安小程序开发公司有哪些
  • 如何建网站赚取佣金哪个网站可以做免费宣传
  • 万网手机网站seo方法
  • 免费制作网站app百度首页纯净版
  • 支持api网站开发wordpress排版Markdown
  • 赤峰做网站的logo设计软件在线制作
  • iis网站批量导入苏州最新新闻事件今天
  • 甘肃省住房和城乡建设厅注册中心网站首页沈阳专业关键词推广
  • 网站怎么能在百度搜到网站开发费怎么做会计分录
  • 嘉定专业网站制作公司七星彩网站开发
  • 网站建设人员培训企业网站开发模型图
  • 自己开发一个网站应该怎么做国外设计网站 绿色的
  • 南昌外贸网站设计推广任务发布平台app
  • 建立网站成本书店网站建设可行性分析
  • 高端网站设计官网乌海学校网站建设
  • 哪些网站适合新手编程做项目优秀网页设计赏析
  • 永州网站seo德阳网站建设优化
  • 网站建设高端网站本地建设网站软件下载
  • 网站后台账号密码破解杭州酒店网站设计公司推荐
  • 和县网站开发秦皇岛建设工程信息网站
  • 国外网站用什么dns好建一个下载网站要什么cms系统
  • 礼品工艺品网站建设手机做网站哪家好
  • 泉州网站建设方案维护怎样选择网站建设
  • 江苏建站速度忿先进的网站建设