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

h5响应式网站建设价格全方位营销型网站

h5响应式网站建设价格,全方位营销型网站,公关,万网买网站本章将介绍如何在kubernetes集群中部署一个nginx服务#xff0c;并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下#xff0c;k8s集群中的所有的Pod都是可以相…本章将介绍如何在kubernetes集群中部署一个nginx服务并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下k8s集群中的所有的Pod都是可以相互访问的。但是在实际中可能不想让两个pod之间进行互相访问那此时就可以将两个pod划分到不同的namespace下。k8s通过集群内部的资源分配到不同的namespace中可以形成逻辑上的组以方便不同的组的资源进行隔离使用和管理。 可以通过k8s的授权机制将不同的namespace交给不同租户进行管理这样就实现了多租户的资源隔离。此时还能结合k8s的资源配额机制限定不同租户能占用的资源例如CPU使用量内存使用量等来实现租户可用资源的管理。 k8s在集群启动之后会默认创建几个namespace [rootk8s-master ~]# kubectl get ns NAME STATUS AGE default Active 11m kube-node-lease Active 11m kube-public Active 11m kube-system Active 11m 查看 #1.查看所有的ns [rootk8s-master ~]# kubectl get ns NAME STATUS AGE default Active 11m kube-node-lease Active 11m kube-public Active 11m kube-system Active 11m#2.查看指定的ns [rootk8s-master ~]# kubectl get ns default NAME STATUS AGE default Active 18m#3.输出指定格式-o wide json yaml [rootk8s-master ~]# kubectl get ns default -o yaml apiVersion: v1 kind: Namespace metadata:creationTimestamp: 2024-11-13T02:30:46Zlabels:kubernetes.io/metadata.name: defaultname: defaultresourceVersion: 206uid: b80ba6be-a00f-42e7-868b-9319501d5cf9 spec:finalizers:- kubernetes status:phase: Active#4.查看详情 [rootk8s-master ~]# kubectl describe ns default Name: default Labels: kubernetes.io/metadata.namedefault Annotations: none Status: ActiveNo resource quota.No LimitRange resource. 创建 [rootk8s-master ~]# kubectl create ns dev namespace/dev created 删除 [rootk8s-master ~]# kubectl delete ns dev namespace dev deleted 配置方式 首先准备一个yaml配置文件ns-dev.yaml apiVersion: v1 kind: Namespace metadata:name: dev 然后就可以执行对应的创建和删除 #创建 kubectl create -f ns-dev.yaml#删除 kubectl delete -f ns-dev.yamlPod Pod是k8s集群进行管理的最小单元程序要运行必须部署在容器中而容器必须存在Pod中。Pod可以认为是容器的封装一个Pod中可以存在一个或者多个容器 k8s在集群启动后集群中的各个组件也都是以Pod方式运行。可以通过下面命令查看 [rootk8s-master ns]# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE calico-kube-controllers-cd8566cf-m7gzh 1/1 Running 0 4h5m calico-node-2h55h 1/1 Running 0 4h5m calico-node-586wp 1/1 Running 0 4h5m calico-node-n5wk7 1/1 Running 0 4h5m coredns-6d8c4cb4d-66rzr 1/1 Running 0 4h7m coredns-6d8c4cb4d-8nsnk 1/1 Running 0 4h7m etcd-k8s-master 1/1 Running 1 4h8m kube-apiserver-k8s-master 1/1 Running 1 4h8m kube-controller-manager-k8s-master 1/1 Running 18 4h8m kube-proxy-2bxnm 1/1 Running 0 4h7m kube-proxy-qpvzh 1/1 Running 0 4h7m kube-proxy-tdrjj 1/1 Running 0 4h7m kube-scheduler-k8s-master 1/1 Running 18 4h8m 创建并运行 k8s没有提供单独运行Pod的命令都是通过Pod控制器来实现 #命令格式kubectl run (pod控制器名称)[参数] #--image 指定pod的镜像 #--port 指定端口 #--namespace 指定namespace[rootk8s-master ns]# kubectl run nginx --imagenginx:1.17.1 --port80 --namespace dev pod/nginx created 查看pod信息 #查看pod基本信息 [rootk8s-master ns]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 22s#查看pod的详细信息 [rootk8s-master ns]# kubectl get pod -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx 1/1 Running 0 4m46s 10.244.169.129 k8s-node2 none none [rootk8s-master ns]# kubectl describe pod nginx -n dev 删除指定pod [rootk8s-master ns]# kubectl delete pod nginx2 -n dev pod nginx2 deleted 配置操作 创建一个pod-nginx.yaml apiVersion: v1 kind: Pod metadata:name: nginxnamespace: dev spec:containers:- image: nginx:1.17.1imagePullPolicy: IfNotPresentname: podports:- name: nginx-portcontainerPort: 80protocol: TCP执行对应的创建和删除 #创建 kubectl create -f pod-nginx.yaml#删除 kubectl delete -f pod-nginx.yamlLabel Label是k8s中一个重要概念。它的作用就是在资源上添加标识用来对它们进行区分和选择。 Label的特点 一个Label会以key/value键值对的形式附加到各个对象上如Node、Pod、Service等一个资源对象可以定义任意数量的Label同一个Label也可以被添加到任意数量的资源对象上去Label通常在资源对象定义时确定当然也可以在对象创建后动态添加或者删除 可以通过Label实现资源的多维度分组一边灵活、方便地进行资源分配、调度、配置、部署等管理工作。 一些常用的Label实例如下 版本标签“version”:“release”,“version”:“stable”…环境标签“environment”:“dev”,“environment”:“test”,“environment”:“pro”架构标签“tier”:“frontend”,“tier”:“backend” 标签定义完毕之后还要考虑到标签的选择这就要使用到Label Selector即 Label用于给某个资源对象定义标识 Label Selector用于查询和筛选拥有某些标签的资源对象 当前有两种Label Selector 基于等式的Label Selector ​ nameslave:选择所有包含Label中的keyname且valueslave的对象 ​ env!production:选择所有包括Label中的keyenv且value不等于production的对象 基于合集的Label Selector ​ name in (master,slave):选择所有包含Label中的keyname且valuemaster或slave的对象 ​ name not in (frontend):选择所有包含Label中的keyname且value不等于frontend的对象 标签的选择条件可以使用多个此时将多个Label Selector进行组合使用逗号,进行分隔即可。例如 nameslave,env!production name not in (frontend),env!production 命令方式 #为pod资源打标签 [rootk8s-master pod]# kubectl label pod nginx version1.0 -n dev pod/nginx labeled#为pod资源更新标签 [rootk8s-master pod]# kubectl label pod nginx version2.0 -n dev --overwrite pod/nginx labeled#查看标签[rootk8s-master pod]# kubectl get pod nginx -n dev --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx 1/1 Running 0 2m20s version2.0#筛选标签 [rootk8s-master pod]# kubectl get pod -n dev -l version2.0 --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx 1/1 Running 0 3m14s version2.0 [rootk8s-master pod]# kubectl get pod -n dev -l version!2.0 --show-labels No resources found in dev namespace.#删除标签 [rootk8s-master pod]# kubectl label pod nginx -n dev version- pod/nginx unlabeled 配置方式 apiVersion: v1 kind: Pod metadata:name: nginxnamespace: devlabels:version: 3.0env: test spec:containers:- image: nginx:1.17.1name: podports:- name: nginx-portcontainerPort: 80protocol: TCP更新命令可以是kubectl apply -f pod-nginx.yaml Deployment 在k8s中Pod是最小的控制单元但是k8s很少直接控制pod一般都是通过pod控制器来完成的。pod控制器用于pod的管理确保pod资源符合预期的状态当pod的资源出现故障时会尝试进行重启或重建pod. 在k8s中pod控制器的种类有很多现只介绍Deployment 配置方式 创建一个deployment-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata:name: my-deploymentnamespace: dev spec:replicas: 3selector:matchLabels:app: my-apptemplate:metadata:labels:app: my-appspec:containers:- name: my-containerimage: nginx:1.17.1ports:- containerPort: 80protocol: TCP执行kubectl create -f deployment-nginx.yaml #查看deployment的信息 [rootk8s-master deployment]# kubectl get deployment -n dev NAME READY UP-TO-DATE AVAILABLE AGE my-deployment 3/3 3 3 2m36s [rootk8s-master deployment]# kubectl get deploy -n dev -o wide NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR my-deployment 3/3 3 3 3m48s my-container nginx:1.17.1 appmy-app#删除deployment [rootk8s-master deployment]# kubectl delete deployment my-deployment -n dev deployment.apps my-deployment deleted Service 虽然每个pod都会分配一个单独的pod ip,然而却存在如下问题 pod ip会随着pod的重建产生变化pod ip仅仅是集群内可见的虚拟ip外部无法访问 这样对于访问这个服务带来的难度。因此k8s设计了service来解决这个问题。 service可以看作是一组同类pod对外访问接口。借助service应用可以方便地实现服务发现和负载均衡 操作一创建集群内部可访问的service 暴露service 绑定对应的deployment是解决如果deployment控制的pod如果重建会产生不同的ip不会影响到外部访问 #暴露service [rootk8s-master deployment]# kubectl expose deploy my-deployment --namesvc-nginx --typeClusterIP --port80 --target-port80 -n dev service/svc-nginx exposed#查看service [rootk8s-master deployment]# kubectl get service -n dev NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc-nginx ClusterIP 10.108.254.244 none 80/TCP 9s [rootk8s-master deployment]# kubectl get svc svc-nginx -n dev -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc-nginx ClusterIP 10.108.254.244 none 80/TCP 69s appmy-app#访问 [rootk8s-master deployment]# curl 10.108.254.244:80 !DOCTYPE html html head titleWelcome to nginx!/title stylebody {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;} /style /head body h1Welcome to nginx!/h1 pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./ppFor online documentation and support please refer to a hrefhttp://nginx.org/nginx.org/a.br/ Commercial support is available at a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p /body /html 操作二创建集群外部也可以访问的Service #上面创建的Service的type类型为ClusterIP,这个ip地址只在集群内部可访问 #如果需要创建外部也可以访问的Service需要修改type为NodePort [rootk8s-master deployment]# kubectl expose deploy my-deployment --namesvc-nginx2 --typeNodePort --port80 --target-port80 -n dev service/svc-nginx2 exposed#查看 [rootk8s-master deployment]# kubectl get svc -n dev -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc-nginx ClusterIP 10.108.254.244 none 80/TCP 51m appmy-app svc-nginx2 NodePort 10.100.160.81 none 80:30081/TCP 13s appmy-app#在集群外通过节点IP:30081访问服务了 http://192.168.225.10:30081/删除Service [rootk8s-master deployment]# kubectl delete svc svc-nginx -n dev service svc-nginx deleted 配置方式 创建一个svc-nginx.yaml apiVersion: v1 kind: Service metadata:name: svc-nginxnamespace: dev spec:clusterIP: 10.109.179.231ports:- port: 80protocol: TCPtargetPort: 80selector:app: my-apptype: ClusterIP执行创建和删除命令 kubectl create -f svc-nginx.yaml kubectl delete -f svc-nginx.yaml
http://www.dnsts.com.cn/news/171579.html

相关文章:

  • 食品行业网站建设方案樱花动漫做网站
  • 前端开源项目网站php网站怎么做的
  • 表白网站在线制作app东营在建项目
  • 网站页面热度网站建设专家
  • 电子商务网站设计案例做网站用的什么软件
  • 常州网站建设找思创网址导航哪个好?
  • 个人网站可以做论坛吗?中英文微信网站建设
  • 网站开发程序有哪些创建自己的网址
  • 网站建设qq群高校网站建设与管理问题分析
  • it在线学习网站开发能加速浏览器的加速器
  • 怎么给设计网站推广免费php网站模板
  • 照片做视频模板下载网站旅游网站建设步骤
  • 做网站需要的东西企业网站优化关键词
  • 网站关键字分析wordpress上传音乐文件
  • 怎么下载网站源码如何做网站怎么赚钱
  • 广州哪里有学做网站的php电商网站开发流程
  • 网站运营的含义是什么网站建设寮步
  • 公交车网站怎么做留言板高报师培训机构排名
  • 亚马逊品牌网站要怎么做wordpress 添加图片不显示
  • 武昌网站建设哪家便宜国内视差网站
  • 通过ip访问网站需要怎么做怎么修改自己公司网站
  • 百度收录什么网站吗辽宁省建设工程信息网公告
  • 网站建设的参考文献英文python做网站 要学多久
  • 购物网站建设运营需求东莞公司注册官网
  • 家庭宽带做私人网站网站建设哪方面最重要的呢
  • 中山移动网站建设多少钱哈尔滨市建设工程信息网官网首页
  • 网站角色权限嘉兴响应式网站
  • 网站技能培训班有哪些哪里有免费网站空间
  • 网站建设技术网百度电脑端网页版入口
  • 国外做化学申报的网站安徽省地图