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

竞争对手网站温州网站改版公司

竞争对手网站,温州网站改版公司,网站获取访客qq号码,为什么wordpress 打开Namespace Namespace是kubernetes系统中的一种非常重要资源#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下#xff0c;kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中#xff0c;可能不想让两个Pod之间进行互相的…Namespace Namespace是kubernetes系统中的一种非常重要资源它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中可能不想让两个Pod之间进行互相的访问那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中可以形成逻辑上的组以方便不同的组的资源进行隔离使用和管理。 可以通过kubernetes的授权机制将不同的namespace交给不同租户进行管理这样就实现了多租户的资源隔离。此时还能结合kubernetes的资源配额机制限定不同租户能占用的资源例如CPU使用量、内存使用量等等来实现租户可用资源的管理。 kubernetes在集群启动之后会默认创建几个namespace [rootmaster ~]# kubectl get namespace NAME STATUS AGE default Active 45h # 所有未指定Namespace的对象都会被分配在default命名空间 kube-node-lease Active 45h # 集群节点之间的心跳维护v1.13开始引入 kube-public Active 45h # 此命名空间下的资源可以被所有人访问包括未认证用户 kube-system Active 45h # 所有由Kubernetes系统创建的资源都处于这个命名空间下面来看namespace资源的具体操作 查看 #1 查看所有的ns 命令kubectl get ns [rootmaster ~]# kubectl get ns NAME STATUS AGE default Active 45h kube-node-lease Active 45h kube-public Active 45h kube-system Active 45h #2 查看指定的ns 命令kubectl get ns ns名称 [rootmaster ~]# kubectl get ns default NAME STATUS AGE default Active 45h#3 指定输出格式 命令kubectl get ns ns名称 -o 格式参数 #kubernetes支持的格式有很多比较常见的是wide、json、yaml [rootmaster ~]# kubectl get ns default -o yaml apiVersion: v1 kind: Namespace metadata:creationTimestamp: 2021-05-08T04:44:16Zname: defaultresourceVersion: 151selfLink: /api/v1/namespaces/defaultuid: 7405f73a-e486-43d4-9db6-145f1409f090 spec:finalizers:- kubernetes status:phase: Active#4 查看ns详情 命令kubectl describe ns ns名称 [rootmaster ~]# kubectl describe ns default Name: default Labels: none Annotations: none Status: Active # Active 命名空间正在使用中 Terminating 正在删除命名空间#ResourceQuota 针对namespace做的资源限制 #LimitRange针对namespace中的每个组件做的资源限制 No resource quota. No LimitRange resource.创建 #创建namespace [rootmaster ~]# kubectl create ns dev namespace/dev created删除 #删除namespace [rootmaster ~]# 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是kubernetes集群进行管理的最小单元程序要运行必须部署在容器中而容器必须存在于Pod中。 Pod可以认为是容器的封装一个Pod中可以存在一个或者多个容器。 kubernetes在集群启动之后集群中的各个组件也都是以Pod方式运行的。可以通过下面命令查看 [rootmaster ~]# kubectl get pod -n kube-system NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-6955765f44-68g6v 1/1 Running 0 2d1h kube-system coredns-6955765f44-cs5r8 1/1 Running 0 2d1h kube-system etcd-master 1/1 Running 0 2d1h kube-system kube-apiserver-master 1/1 Running 0 2d1h kube-system kube-controller-manager-master 1/1 Running 0 2d1h kube-system kube-flannel-ds-amd64-47r25 1/1 Running 0 2d1h kube-system kube-flannel-ds-amd64-ls5lh 1/1 Running 0 2d1h kube-system kube-proxy-685tk 1/1 Running 0 2d1h kube-system kube-proxy-87spt 1/1 Running 0 2d1h kube-system kube-scheduler-master 1/1 Running 0 2d1h创建并运行 kubernetes没有提供单独运行Pod的命令都是通过Pod控制器来实现的 #命令格式 kubectl run (pod控制器名称) [参数] #--image 指定Pod的镜像 #--port 指定端口 #--namespace 指定namespace [rootmaster ~]# kubectl run nginx --imagenginx:latest --port80 --namespace dev deployment.apps/nginx created查看pod信息 #查看Pod基本信息 [rootmaster ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 43s#查看Pod的详细信息 [rootmaster ~]# kubectl describe pod nginx -n dev Name: nginx Namespace: dev Priority: 0 Node: node1/192.168.5.4 Start Time: Wed, 08 May 2021 09:29:24 0800 Labels: pod-template-hash5ff7956ff6runnginx Annotations: none Status: Running IP: 10.244.1.23 IPs:IP: 10.244.1.23 Controlled By: ReplicaSet/nginx Containers:nginx:Container ID: docker://4c62b8c0648d2512380f4ffa5da2c99d16e05634979973449c98e9b829f6253cImage: nginx:latestImage ID: docker-pullable://nginxsha256:485b610fefec7ff6c463ced9623314a04ed67e3945b9c08d7e53a47f6d108dc7Port: 80/TCPHost Port: 0/TCPState: RunningStarted: Wed, 08 May 2021 09:30:01 0800Ready: TrueRestart Count: 0Environment: noneMounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-hwvvw (ro) Conditions:Type StatusInitialized TrueReady TrueContainersReady TruePodScheduled True Volumes:default-token-hwvvw:Type: Secret (a volume populated by a Secret)SecretName: default-token-hwvvwOptional: false QoS Class: BestEffort Node-Selectors: none Tolerations: node.kubernetes.io/not-ready:NoExecute for 300snode.kubernetes.io/unreachable:NoExecute for 300s Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled unknown default-scheduler Successfully assigned dev/nginx-5ff7956ff6-fg2db to node1Normal Pulling 4m11s kubelet, node1 Pulling image nginx:latestNormal Pulled 3m36s kubelet, node1 Successfully pulled image nginx:latestNormal Created 3m36s kubelet, node1 Created container nginxNormal Started 3m36s kubelet, node1 Started container nginx访问Pod #获取podIP [rootmaster ~]# kubectl get pods -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE ... nginx 1/1 Running 0 190s 10.244.1.23 node1 ...#访问POD [rootmaster ~]# curl http://10.244.1.23:80 !DOCTYPE html html headtitleWelcome to nginx!/title /head bodypemThank you for using nginx./em/p /body /html删除指定Pod #删除指定Pod [rootmaster ~]# kubectl delete pod nginx -n dev pod nginx deleted#此时显示删除Pod成功但是再查询发现又新产生了一个 [rootmaster ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 21s#这是因为当前Pod是由Pod控制器创建的控制器会监控Pod状况一旦发现Pod死亡会立即重建 #此时要想删除Pod必须删除Pod控制器#先来查询一下当前namespace下的Pod控制器 [rootmaster ~]# kubectl get deploy -n dev NAME READY UP-TO-DATE AVAILABLE AGE nginx 1/1 1 1 9m7s#接下来删除此PodPod控制器 [rootmaster ~]# kubectl delete deploy nginx -n dev deployment.apps nginx deleted#稍等片刻再查询Pod发现Pod被删除了 [rootmaster ~]# kubectl get pods -n dev No resources found in dev namespace.配置操作 创建一个pod-nginx.yaml内容如下 apiVersion: v1 kind: Pod metadata:name: nginxnamespace: dev spec:containers:- image: nginx:latestname: podports:- name: nginx-portcontainerPort: 80protocol: TCP然后就可以执行对应的创建和删除命令了 创建 kubectl create -f pod-nginx.yaml删除 kubectl delete -f pod-nginx.yamlLabel Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识用来对它们进行区分和选择。 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 name slave: 选择所有包含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进行组合使用逗号,进行分隔即可。例如 nameslaveenv!production name not in (frontend)env!production 命令方式 #为pod资源打标签 [rootmaster ~]# kubectl label pod nginx-pod version1.0 -n dev pod/nginx-pod labeled#为pod资源更新标签 [rootmaster ~]# kubectl label pod nginx-pod version2.0 -n dev --overwrite pod/nginx-pod labeled#查看标签 [rootmaster ~]# kubectl get pod nginx-pod -n dev --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx-pod 1/1 Running 0 10m version2.0#筛选标签 [rootmaster ~]# kubectl get pod -n dev -l version2.0 --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx-pod 1/1 Running 0 17m version2.0 [rootmaster ~]# kubectl get pod -n dev -l version!2.0 --show-labels No resources found in dev namespace.#删除标签 [rootmaster ~]# kubectl label pod nginx-pod version- -n dev pod/nginx-pod labeled配置方式 apiVersion: v1 kind: Pod metadata:name: nginxnamespace: devlabels:version: 3.0 env: test spec:containers:- image: nginx:latestname: podports:- name: nginx-portcontainerPort: 80protocol: TCP然后就可以执行对应的更新命令了 kubectl apply -f pod-nginx.yamlDeployment 在kubernetes中Pod是最小的控制单元但是kubernetes很少直接控制Pod一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理确保pod资源符合预期的状态当pod的资源出现故障时会尝试进行重启或重建pod。 在kubernetes中Pod控制器的种类有很多本章节只介绍一种Deployment。 待操作。。。。。 #命令格式: kubectl create deployment 名称 [参数] #--image 指定pod的镜像 #--port 指定端口 #--replicas 指定创建pod数量 #--namespace 指定namespace [rootmaster ~]# kubectl run nginx --imagenginx:latest --port80 --replicas3 -n dev deployment.apps/nginx created#查看创建的Pod [rootmaster ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE nginx-5ff7956ff6-6k8cb 1/1 Running 0 19s nginx-5ff7956ff6-jxfjt 1/1 Running 0 19s nginx-5ff7956ff6-v6jqw 1/1 Running 0 19s#查看deployment的信息 [rootmaster ~]# kubectl get deploy -n dev NAME READY UP-TO-DATE AVAILABLE AGE nginx 3/3 3 3 2m42s#UP-TO-DATE成功升级的副本数量 #AVAILABLE可用副本的数量 [rootmaster ~]# kubectl get deploy -n dev -o wide NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR nginx 3/3 3 3 2m51s nginx nginx:latest runnginx#查看deployment的详细信息 [rootmaster ~]# kubectl describe deploy nginx -n dev Name: nginx Namespace: dev CreationTimestamp: Wed, 08 May 2021 11:14:14 0800 Labels: runnginx Annotations: deployment.kubernetes.io/revision: 1 Selector: runnginx Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 25% max unavailable, 25% max 违规词汇 Pod Template:Labels: runnginxContainers:nginx:Image: nginx:latestPort: 80/TCPHost Port: 0/TCPEnvironment: noneMounts: noneVolumes: none Conditions:Type Status Reason---- ------ ------Available True MinimumReplicasAvailableProgressing True NewReplicaSetAvailable OldReplicaSets: none NewReplicaSet: nginx-5ff7956ff6 (3/3 replicas created) Events:Type Reason Age From Message---- ------ ---- ---- -------Normal ScalingReplicaSet 5m43s deployment-controller Scaled up replicaset nginx-5ff7956ff6 to 3#删除 [rootmaster ~]# kubectl delete deploy nginx -n dev deployment.apps nginx deleted配置操作 创建一个deploy-nginx.yaml内容如下 apiVersion: apps/v1 kind: Deployment metadata:name: nginxnamespace: dev spec:replicas: 3selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- image: nginx:latestname: nginxports:- containerPort: 80protocol: TCP然后就可以执行对应的创建和删除命令了 创建 kubectl create -f deploy-nginx.yaml删除 kubectl delete -f deploy-nginx.yamlService 通过上节课的学习已经能够利用Deployment来创建一组Pod来提供具有高可用性的服务。 虽然每个Pod都会分配一个单独的Pod IP然而却存在如下两问题 Pod IP 会随着Pod的重建产生变化 Pod IP 仅仅是集群内可见的虚拟IP外部无法访问 这样对于访问这个服务带来了难度。因此kubernetes设计了Service来解决这个问题。 Service可以看作是一组同类Pod对外的访问接口。借助Service应用可以方便地实现服务发现和负载均衡。 创建集群内部可访问的Service #暴露Service [rootmaster ~]# kubectl expose deploy nginx --namesvc-nginx1 --typeClusterIP --port80 --target-port80 -n dev service/svc-nginx1 exposed#查看service [rootmaster ~]# kubectl get svc svc-nginx1 -n dev -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc-nginx1 ClusterIP 10.109.179.231 none 80/TCP 3m51s runnginx#这里产生了一个CLUSTER-IP这就是service的IP在Service的生命周期中这个地址是不会变动的 #可以通过这个IP访问当前service对应的POD [rootmaster ~]# curl 10.109.179.231:80 !DOCTYPE html html head titleWelcome to nginx!/title /head body h1Welcome to nginx!/h1 ....... /body /html创建集群外部也可访问的Service #上面创建的Service的type类型为ClusterIP这个ip地址只用集群内部可访问 #如果需要创建外部也可以访问的Service需要修改type为NodePort [rootmaster ~]# kubectl expose deploy nginx --namesvc-nginx2 --typeNodePort --port80 --target-port80 -n dev service/svc-nginx2 exposed#此时查看会发现出现了NodePort类型的Service而且有一对Port80:31928/TC [rootmaster ~]# kubectl get svc svc-nginx2 -n dev -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR svc-nginx2 NodePort 10.100.94.0 none 80:31928/TCP 9s runnginx#接下来就可以通过集群外的主机访问 节点IP:31928访问服务了 #例如在的电脑主机上通过浏览器访问下面的地址 http://192.168.90.100:31928/删除Service [rootmaster ~]# kubectl delete svc svc-nginx-1 -n dev service svc-nginx-1 deleted配置方式 创建一个svc-nginx.yaml内容如下 apiVersion: v1 kind: Service metadata:name: svc-nginxnamespace: dev spec:clusterIP: 10.109.179.231 #固定svc的内网ipports:- port: 80protocol: TCPtargetPort: 80selector:run: nginxtype: ClusterIP然后就可以执行对应的创建和删除命令了 创建 kubectl create -f svc-nginx.yaml删除 kubectl delete -f svc-nginx.yaml小结 至此已经掌握了Namespace、Pod、Deployment、Service资源的基本操作有了这些操作就可以在kubernetes集群中实现一个服务的简单部署和访问了但是如果想要更好的使用kubernetes就需要深入学习这几种资源的细节和原理。
http://www.zqtcl.cn/news/165141/

相关文章:

  • 网站收费怎么做沈阳建设工程信息网 等级中项网
  • 做网站后台教程视频杭州网站开发建设
  • 维度 网站建设优秀vi设计网站
  • 快速搭建网站工具海洋网络做网站不负责
  • 做电影资源网站服务器怎么选wordpress唱片公司模板
  • 医院网站建设投标要求wordpress文章的表是什么
  • 怎么做网站后门海外营销推广
  • 网站建设中英版网站要做手机版怎么做的
  • 安徽网站开发与维护专业阜阳建设部网站
  • 山东省住房和建设厅网站网站优化大计
  • 大良建网站织梦建设两个网站 视频
  • 用html5制作个人网站航空港建设局网站
  • 祥云平台建站网站备案通过什么可以备案
  • 免费建造网站系统php和wordpress
  • 九脉堂是做网站的网站权重不稳定
  • 网站怎么做来流量门户网站的发布特点
  • 网站设计相似侵权吗免费游戏网站建设
  • 湖北长安建设网站制作一个网站的步骤是什么
  • js网站开发成都房地产最新政策
  • 天津网站制作维护无锡网络推广外包
  • 国外中文网站排行娱乐新闻做的好的网站
  • 零食网站建设需求分析规划设计网址
  • 建立网站备案的法律依据wordpress 招商系统
  • 建设银行全球门户网站网站建设技能
  • 提供企业网站建设价格10元一年的虚拟主机
  • 塔城建设局网站电子商务网站建设方案目录
  • 网站容易被百度收录个人建购物网站怎么备案
  • 中文网站什么意思wordpress电脑访问不了
  • 杨家坪网站建设企业生产erp软件公司
  • 网站模块设计软件河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo