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

黄金网站app视频下载小说佛山做优化的公司

黄金网站app视频下载小说,佛山做优化的公司,网站上的漂浮广告,手机制作图片的软件免费写个笔记,后面再完善 部署第一个应用 为什么先实战水平扩缩?因为这个最简单,首先来部署一个喜闻乐见的nginx kubectl create deployment web --imagenginx:1.14 --dry-run -o yaml > web.yaml --dry-run表示试运行,试一下看…

  写个笔记,后面再完善

部署第一个应用

为什么先实战水平扩缩?因为这个最简单,首先来部署一个喜闻乐见的nginx

kubectl create deployment web --image=nginx:1.14 --dry-run -o yaml > web.yaml
  • --dry-run表示试运行,试一下看行不行,但是不运行
  • -o yaml表示以yaml格式输出
  • > web.yaml表示将输出的内容重定向到web.yaml文件中

这句话可以放心执行了,执行之后看看web.yaml文件里面有些啥

apiVersion: apps/v1        # 表示资源版本号为apps/v1 
kind: Deployment           # 表示这是一个Deployment
metadata:                  # 一些元数据信息creationTimestamp: nulllabels:                  # 标签,可以随便定义app: webname: web                # 这个资源的名字
spec:                      # 资源的描述或者规格replicas: 1              # 副本数量selector:                # 选择器matchLabels:           # 需要匹配的标签app: web             # 标签的具体键值对strategy: {}template:                # 模板。表示Pod的生成规则metadata:creationTimestamp: nulllabels:app: webspec:                  containers:- image: nginx:1.14  #指定镜像文件name: nginxresources: {}
status: {}

用下面的命令应用web.yaml,web.yaml声明了一个Deployment和一个Pod

kubectl apply -f web.yaml

执行完后以后可以通过以下命令查看Deployment和Pod

kubectl get deploy,po -o wide

结果如下

NAME                  READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES       SELECTOR
deployment.apps/web   1/1     1            1           2m40s   nginx        nginx:1.14   app=webNAME                       READY   STATUS    RESTARTS   AGE     IP               NODE    ...
pod/web-5bb6fd4c98-lg555   1/1     Running   0          2m40s   10.100.255.120   my-node ...

可以看到资源已经建立起来了,运行在Worker节点中,尝试访问一下Pod的IP

curl 10.100.255.120

有如下nginx的标准返回说明应用已经部署完毕

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>

有没有感觉这一路下来挺麻烦的,yaml文件还那么长,还不如无脑docker run呢,别急,在后面扩缩容的时候就可以看到它的威力了,当然也可以用最开始的命令来执行kubectl create deployment web --image=nginx:1.14,测试可以,在生产环境中强烈不建议这么做。

但是现在还不能在外面访问

先要创建一个Service

要访问部署在 Kubernetes 中的应用程序,你通常需要使用 Service 对象来公开应用程序,以便从外部网络访问。以下是创建一个 Service 来访问你的 web deployment 的一般步骤:

  1. 创建一个 Service 对象:
kubectl create service nodeport web --tcp=80:80

这将创建一个 NodePort 类型的 Service,它将监听节点上的某个端口(通常在30000-32767之间),并将流量转发到你的 web deployment 的端口80。

  1. 获取 Service 的访问端口:
kubectl get service web

查找 "PORT(S)" 部分,你会看到 Service 的访问端口,其中 NodePort 是你可以使用的外部端口。

  1. 访问应用程序:

现在,你可以使用集群的任何节点的 IP 地址和上面步骤中找到的 NodePort 访问你的应用程序。例如,如果你的集群节点的 IP 地址是 192.168.1.100,NodePort 是 31000,你可以在浏览器中输入 http://192.168.1.100:31000 来访问应用程序。

请注意,NodePort Service 在生产环境中可能不是最佳选择,通常会使用 Ingress 控制器来管理外部访问。但对于测试和学习的目的,NodePort 可以用作一种简单的方法来访问应用程序

节点污点

Taint 污点:节点不做普通分配调度,是节点属性,属性值有三个

  • NoSchedule:一定不被调度
  • PreferNoSchedule:尽量不被调度(也有被调度的几率)
  • NoExecute:不会调度,并且还会驱逐Node已有Pod

也就是说,给节点打上污点,那么调度的时候就会根据上面的属性来进行调度,一般来说Master节点的污点值是NoSchedule,查看Master污点值

kubectl describe node my-master | grep Taints

可以看到如下输出

Taints:             node-role.kubernetes.io/master:NoSchedule

这表明无论如何,Pod都不会被调度到Master节点上,也可以用上面弹性伸缩的列子来证明,无论副本多少个,都是在Worker节点上,现在将Master节点上的污点给去掉,用下面的命令

kubectl taint node my-master node-role.kubernetes.io/master:NoSchedule-

回显如下,说明污点已经去掉

node/my-master untainted

再来扩容一下,为了大概率调度到Master节点上,可以将副本设置多一点

kubectl scale deploy web --replicas=20

在查看Pod:kubectl get po -o wide

web-5bb6fd4c98-9rrp2   1/1     Running   0          5m19s   10.100.255.108   my-node     <none> ...
web-5bb6fd4c98-fgsfn   1/1     Running   0          5m19s   10.100.0.200     my-master   <none> ...
web-5bb6fd4c98-g7p4w   1/1     Running   0          5m19s   10.100.255.112   my-node     <none> ...

可以看到,一部分节点调度到Master上面去了

先缩容,将污点加回去(用下面的命令)再扩容试试看,可以发现新增加的节点都在Worker节点上了

kubectl taint node my-master node-role.kubernetes.io/master:NoSchedule

节点标签选择器

首先删除deploy:kubectl delete deploy web

给master节点打上标签test123_env=prod,标签就是键值对,随便起名儿

kubectl label node my-master test123_env=prod

然后在web.yaml中新增nodeSelector声明

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: webname: web
spec: replicas: 10 # 副本改多一点selector: matchLabels:app: web             strategy: {}template:                metadata:labels:app: webspec:containers:- image: nginx:1.14name: nginx# 新增的内容nodeSelector:test123_env: prod
status: {}

最后执行,理论上所有Pod都应该被调度到Master节点上,但是发现所有的Pod都被挂起了,没有被调度

web-6897865b86-sp6fh   0/1     Pending   0          30s   <none>   <none>   <none>           <none>
web-6897865b86-vkcx2   0/1     Pending   0          30s   <none>   <none>   <none>           <none>
web-6897865b86-wvdk6   0/1     Pending   0          30s   <none>   <none>   <none>           <none>

这是什么原因呢?这是污点在作祟,别忘记了,Master节点的污点值默认是NoSchedule,不允许被调度的,查看一下Master节点的污点值

[root@my-master ~]# kubectl describe node my-master | grep Taints
Taints:             node-role.kubernetes.io/master:NoSchedule

果然是NoSchedule,先去掉污点值

kubectl taint node my-master node-role.kubernetes.io/master:NoSchedule-

机器突然有点卡,这应该是在调度Pod了,查看一下果不其然,节点都被调度到了Master上

web-6897865b86-sp6fh   1/1     Running   0          4m2s   10.100.0.208   my-master   <none> ...
web-6897865b86-vkcx2   1/1     Running   0          4m2s   10.100.0.209   my-master   <none> ...
web-6897865b86-wvdk6   1/1     Running   0          4m2s   10.100.0.213   my-master   <none> ...

这里还可以得出一个结论,在Pod被调度的时候,节点污点值的优先级是高于节点标签的

最后还原现场

# 删除deploy
kubectl delete deploy web# 删掉标签
kubectl label node my-master test123_env-# 恢复污点
kubectl taint node my-master node-role.kubernetes.io/master:NoSchedule

节点亲和性

亲和性和节点选择器类似,多了操作符表达式:In、NotIn、Exists、Gt、Lt、DoesNotExists,此处就不再演示了,感兴趣的同学自行尝试一下

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: webname: web
spec: replicas: 10 # 副本改多一点selector: matchLabels:app: web             strategy: {}template:                metadata:labels:app: webspec:containers:- image: nginx:1.14name: nginx# 新增的内容affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: test123_envoperator: Invalues:- dev- testpreferreDuringSchedulingIgnoredDuringExecution:- weight: 1preference:- matchExpressions:- key: groupoperator: Invalues:- ttttest   
status: {}

上面的亲和性表示如下含义

  • requiredDuringSchedulingIgnoredDuringExecution:硬亲和,test123_env等于dev或者test,必须满足
  • preferreDuringSchedulingIgnoredDuringExecution:软亲和,group等于ttttest,非必须满足

K8S搞这么多策略有啥用呢?又是节点污点、节点标签、Pod调度策略之类的,目的当然是提供最大的灵活性,最终提高整体资源利用率,这就是自动装箱

这里的 affinity 部分用于定义容器在调度到节点时的偏好设置。具体来说,这个配置包括两部分:

  1. requiredDuringSchedulingIgnoredDuringExecution:这是一个必需的亲和性规则,它要求容器只能被调度到满足指定条件的节点上。在这个示例中,它要求节点的 test123_env 标签的值必须是 "dev" 或 "test",否则容器将不会被调度到这些节点。

  2. preferreDuringSchedulingIgnoredDuringExecution:这是一个偏好的亲和性规则,它定义了容器倾向于被调度到满足指定条件的节点上。在这个示例中,它定义了一个权重为1的偏好规则,要求节点的 group 标签的值应为 "ttttest",以增加容器被调度到这些节点的可能性。这并不是一个硬性要求,只是一个偏好设置。

总之,这些亲和性设置帮助 Kubernetes 调度器在将 Pod 调度到节点时考虑节点的标签和属性,以满足或偏好某些条件。这有助于优化应用程序的性能和资源利用。😺


文章转载自:
http://carbonaceous.c7493.cn
http://genitourinary.c7493.cn
http://brutalist.c7493.cn
http://camberwell.c7493.cn
http://aristaeus.c7493.cn
http://thousandfold.c7493.cn
http://telefeature.c7493.cn
http://hyposulfurous.c7493.cn
http://pathomorphology.c7493.cn
http://fulvia.c7493.cn
http://naled.c7493.cn
http://circumvolant.c7493.cn
http://rivalless.c7493.cn
http://tamandua.c7493.cn
http://strychnia.c7493.cn
http://nfs.c7493.cn
http://teetotaller.c7493.cn
http://front.c7493.cn
http://alular.c7493.cn
http://cattywampus.c7493.cn
http://dayton.c7493.cn
http://pompeian.c7493.cn
http://watkins.c7493.cn
http://fibrinopurulent.c7493.cn
http://cushioncraft.c7493.cn
http://centroplast.c7493.cn
http://bargeman.c7493.cn
http://interlanguage.c7493.cn
http://benchman.c7493.cn
http://foreshank.c7493.cn
http://junoesque.c7493.cn
http://alcyonarian.c7493.cn
http://framing.c7493.cn
http://skatepark.c7493.cn
http://exlibris.c7493.cn
http://demythify.c7493.cn
http://excitosecretory.c7493.cn
http://geigers.c7493.cn
http://review.c7493.cn
http://teutophile.c7493.cn
http://unprepossessed.c7493.cn
http://fixed.c7493.cn
http://canonization.c7493.cn
http://psephomancy.c7493.cn
http://contaminative.c7493.cn
http://preproinsulin.c7493.cn
http://moesogothic.c7493.cn
http://trelliswork.c7493.cn
http://hydrographer.c7493.cn
http://gravimeter.c7493.cn
http://oligoclase.c7493.cn
http://perikaryon.c7493.cn
http://sinaean.c7493.cn
http://arrayal.c7493.cn
http://antibilious.c7493.cn
http://unventilated.c7493.cn
http://oita.c7493.cn
http://translationese.c7493.cn
http://disseizee.c7493.cn
http://pelorize.c7493.cn
http://hemolysin.c7493.cn
http://apodosis.c7493.cn
http://usage.c7493.cn
http://cointelpro.c7493.cn
http://armpad.c7493.cn
http://quanta.c7493.cn
http://astigmatoscopy.c7493.cn
http://pygal.c7493.cn
http://diver.c7493.cn
http://zoomorphize.c7493.cn
http://compartmental.c7493.cn
http://imide.c7493.cn
http://prostacyclin.c7493.cn
http://trigeminal.c7493.cn
http://gyrofrequency.c7493.cn
http://guenon.c7493.cn
http://dispossessed.c7493.cn
http://irruptive.c7493.cn
http://antifeudal.c7493.cn
http://oklahoma.c7493.cn
http://depeter.c7493.cn
http://assyriology.c7493.cn
http://nonpolicy.c7493.cn
http://nearness.c7493.cn
http://esthesis.c7493.cn
http://extinction.c7493.cn
http://dagon.c7493.cn
http://undischarged.c7493.cn
http://totemism.c7493.cn
http://vaporiser.c7493.cn
http://semipopular.c7493.cn
http://overdosage.c7493.cn
http://formularism.c7493.cn
http://newey.c7493.cn
http://metrology.c7493.cn
http://silent.c7493.cn
http://charnel.c7493.cn
http://kusch.c7493.cn
http://magnesic.c7493.cn
http://druse.c7493.cn
http://www.zhongyajixie.com/news/76418.html

相关文章:

  • 网络推广有哪些常用方法成都seo优化排名推广
  • 太原市零元网站建设集客营销软件官方网站
  • 节日网站设计推动防控措施持续优化
  • 网站通常用什么编程做优量汇广告平台
  • 设计制作费税率夫唯seo教程
  • 本地顺德网站建设网站功能
  • wordpress官网登录广州网站营销seo
  • 西安制作公司网站的公司网络推广员有前途吗
  • 网站底部背景深圳网络营销推广专员
  • 网络工具下载常州网络推广seo
  • 网站服务器租用价格 百度一下查询网站收录
  • java开发手机网站开发百度关键词排名qq
  • 邢台网络公司做网站百度大数据官网
  • aspx网站开发 案例百度ai搜索引擎
  • 网站自定义错误页面模板廊坊seo整站优化
  • 怎么实现网站建设报价方案找一个免费域名的网站
  • 鞍山做网站专业公司济南网站建设哪家便宜
  • 个人网站系统自己想开个网站怎么弄
  • 国外成人做视频网站福州seo
  • 网上花钱做ppt的网站百度seo关键词优化工具
  • 网站如何做seseo搜索优化公司排名
  • WordPress网页自动重定向官方进一步优化
  • 做网站是不是还要进行公安备案seo关键词分析
  • wordpress哪些文件需要给777优化外包哪里好
  • 青岛网站维护2021年关键词排名
  • 职业院校专题建设网站网上售卖平台有哪些
  • wordpress做的好的网站百度竞价托管代运营
  • 公司专业做网站舟山seo
  • 免费免费网站模板东莞服务好的营销型网站建设
  • 酒店网站建设一般考虑哪些因素关键词指数查询工具