🖖 I’m a system architect|

没有猫的猫奴

园龄:4年7个月粉丝:1关注:3

20220227作业

  1. HPA控制器实现pod弹性伸缩

     (1)手动扩容
     kubectl autoscale deployment magedu-tomcat-app1-deployment --min=3  --max=5 --cpu-percent=30 -n magedu
     (2)通过编写yaml进行扩容
    
     apiVersion: autoscaling/v1
     kind: HorizontalPodAutoscaler
     metadata: 
     	namespace: magedu
     	name:  magedu-tomcat-app1-podautoscaler
     	labels:
     		app: magedu-tomcat-app1
     		version: v2beta1
     spec:
     	scaleTargetRef: 
     		apiVersion: apps/v1
     		kind: Deployment
     		name: magedu-tomcat-app1-deployment
     	minReplicas: 2
     	maxReplicas: 10
     	targetCPUUtilizationPercentage: 60
    
  2. CI/CD,基于Jenkins和gitlab实现代码部署和回滚

     (1)手动更新image:
     	kubectl set image deployment/magedu-tomcat-app1-deployment magedu-tomcat-app1-container=192.168.1.138/magedu/nginx:v1.20.2.23.23 -n magedu
     (2)查看历史更新记录
     	kubectl rollout history deployment magedu-tomcat-app1-deployment -n magedu
     (3)回滚到上一版本:
     	kubectl rollout undo deployment magedu-tomcat-app1-deployment -n magedu
     (4)回滚到指定版本
     	kubectl rollout undo deployment magedu-tomcat-app1-deployment  --to-revision=2 -n magedu
    
  3. node亲和及反亲和,pod亲和及反亲和,污点与容忍

     (1)node打标签:
     	kubectl label node 192.168.1.74 project=magedu
     	kubectl label node 192.168.1.74 disktype=ssd
     (2)yaml中指定node标签:
     	nodeSelector:
     		project: magedu
     		disktype: ssd
     (3)yaml中指定nodename
     	nodeName: 192.168.1.73
     (4)存在多matchExpressions,只要其中一个满足就可以
    
点击查看代码
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions: #匹配条件1,多个values可以调度
              - key: disktype
                operator: In
                values:
                - ssd # 只有一个value是匹配成功也可以调度
                - hdd
            - matchExpressions: #匹配条件2,多个matchExpressions加上以及每个matchExpressions values只有其中一个value匹配成功就可以调度
              - key: project
                operator: In
                values:
                - mmm  #即使这俩条件2的都匹配不上也可以调度
                - nnn

(5)存在多key,必须全部满足才可以调度
点击查看代码
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions: #匹配条件1
              - key: disktype
                operator: In
                values:
                - ssd
                - hdd #同个key的多个value只有有一个匹配成功就行
              - key: project #条件1和条件2必须同时满足,否则不调度
                operator: In
                values:
                - magedu
(6)非强制亲和调度
点击查看代码
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 80 
            preference: 
              matchExpressions: 
              - key: project 
                operator: In 
                values: 
                  - mageduX
          - weight: 60 
            preference: 
              matchExpressions: 
              - key: disktype
                operator: In 
                values: 
                  - ssdX
(7)强制亲和+非强制亲和
点击查看代码
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution: #硬限制
            nodeSelectorTerms:
            - matchExpressions: #硬匹配条件1
              - key: "kubernetes.io/role" 
                operator: NotIn
                values:
                - "master" #硬性匹配key 的值kubernetes.io/role不包含master的节点,即绝对不会调度到master节点(node反亲和)
          preferredDuringSchedulingIgnoredDuringExecution: #软限制
          - weight: 80 
            preference: 
              matchExpressions: 
              - key: project 
                operator: In 
                values: 
                  - magedu
          - weight: 100 
            preference: 
              matchExpressions: 
              - key: disktype
                operator: In 
                values: 
                  - ssd

(8)node反亲和
点击查看代码
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions: #匹配条件1
              - key: disktype
                operator: NotIn
                values:
                - hdd #绝对不会调度到hdd的节点
(9)pod软亲和
点击查看代码
      affinity:
        podAffinity:
          #requiredDuringSchedulingIgnoredDuringExecution:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: project 
                  operator: In
                  values:
                    - python
              topologyKey: kubernetes.io/hostname 
              namespaces: 
                - magedu

(10)pod硬亲和
点击查看代码
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: project
                operator: In
                values:
                  - python
            topologyKey: "kubernetes.io/hostname"
            namespaces:
              - magedu
(11)pod强制反亲和
点击查看代码
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: project
                operator: In
                values:
                  - python
            topologyKey: "kubernetes.io/hostname"
            namespaces:
              - maged
(12)node打污点
		kubectl taint node 192.168.1.74 key1=value1:NoSchedule
(13)node去除污点
		kubectl taint node 192.168.1.74 key1=value1:NoSchedule-
(14)当前 taint effect 支持如下三个选项:
		NoSchedule :表示k8s将不会将Pod调度到具有该污点的Node上 PreferNoSchedule :表示k8s将尽量避免将Pod调度到具有该污点的Node上 NoExecute :表示k8s将不会将Pod调度到具有该污点的Node上,同时会将Node上已经存在的Pod驱逐出去
(15)yaml中污点编辑
点击查看代码
      tolerations: 
      - key: "key1"
        operator: "Equal"
        value: "value1"
        effect: "NoSchedule"
  1. Promethus基础

     prometheus server: 主服务,接受外部http请求,收集,存储与查询数据等
     promethues targets: 静态收集的目标服务数据
     service discovery: 动态发现服务
     promethues alerting: 报警通知
     push gateway: 数据收集代理服务器(类似于zabbix proxy)
     data visualization  and export: 数据可视化与数据导出(访问客户端)
    

本文作者:没有猫的猫奴

本文链接:https://www.cnblogs.com/cat1/p/15945571.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   没有猫的猫奴  阅读(9)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.