kubernetes就绪探针使用|天天报道
2023-04-30 21:28:22 来源:腾讯云

假设我们有一个应用程序,它需要一段时间来初始化并准备好接收流量。我们可以使用就绪探针来确保容器已准备好接收流量后才将其暴露给外部服务。


(资料图片)

我们首先创建一个Deployment对象来运行应用程序。Deployment对象将自动创建一个副本集(ReplicaSet),并在其中运行指定数量的Pod。我们将使用nginx镜像作为应用程序的示例。

apiVersion: apps/v1kind: Deploymentmetadata:  name: nginx-deploymentspec:  replicas: 3  selector:    matchLabels:      app: nginx  template:    metadata:      labels:        app: nginx    spec:      containers:      - name: nginx-container        image: nginx        ports:        - containerPort: 80        readinessProbe:          httpGet:            path: /            port: 80

在上面的示例中,我们创建了一个名为nginx-deployment的Deployment对象,并指定了需要运行3个Pod副本。每个Pod都运行一个名为nginx-container的容器,该容器使用nginx镜像,并在80端口上监听流量。我们还将就绪探针配置为使用httpGet方法,向容器的/路径发送HTTP GET请求来检查容器是否已准备好接收流量。

我们可以通过kubectl命令检查Deployment的状态:

kubectl get deployment nginx-deployment

输出应该类似于:

NAME               READY   UP-TO-DATE   AVAILABLE   AGEnginx-deployment   3/3     3            3           10s

上面的输出显示了Deployment中有3个Pod副本,所有的副本都已准备好,可以接收流量。

接下来,我们可以创建一个Service对象来暴露Deployment中的Pod给外部服务。Service对象将使用负载均衡器将流量分配给Deployment中的Pod。

apiVersion: v1kind: Servicemetadata:  name: nginx-servicespec:  selector:    app: nginx  ports:  - protocol: TCP    port: 80    targetPort: 80  type: LoadBalancer

在上面的示例中,我们创建了一个名为nginx-service的Service对象,它将负责将流量分配给Deployment中的Pod。我们将type属性设置为LoadBalancer,这将自动为Service对象创建一个外部负载均衡器。

我们可以通过kubectl命令检查Service对象的状态:

kubectl get service nginx-service

输出应该类似于:

NAME           TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGEnginx-service  LoadBalancer   10.0.111.157  203.0.113.10  80:30549/TCP   10s

上面的输出显示了Service对象的一些基本信息,包括CLUSTER-IP、EXTERNAL-IP和端口信息。

现在,我们可以使用EXTERNAL-IP和端口信息来访问我们的应用程序。但在我们开始访问应用程序之前,我们需要确保它已准备好接收流量。我们可以使用kubectl describe命令来检查Pod的状态:

kubectl describe pod 

输出应该类似于:

Name:           nginx-deployment-7d6ff77df6-f7m6kNamespace:      defaultPriority:       0Node:           minikube/192.168.99.107Start Time:     Mon, 31 May 2021 16:10:53 +0300Labels:         app=nginx                pod-template-hash=7d6ff77df6Annotations:    Status:         RunningIP:             172.17.0.4IPs:            Controlled By:  ReplicaSet/nginx-deployment-7d6ff77df6Containers:  nginx-container:    Container ID:   docker://3d7df1c0d93fc7e97467a35c2e82d26134b6bfbca6f9cb6d82e57e65dcb61990    Image:          nginx    Image ID:       docker-pullable://nginx@sha256:95202e0d007bbd2edcad2b8eae1d2e6966efadfca6b7c6f9e57d71d06ef42b6f    Port:           80/TCP    Host Port:      0/TCP    State:          Running      Started:      Mon, 31 May 2021 16:11:05 +0300    Ready:          False    Restart Count:  0    Readiness:      http-get http://:80/ delay=0s timeout=1s period=10s #success=1 #failure=3    Environment:        Mounts:      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vh2lm (ro)Conditions:  Type           Status  Initialized    True   Ready          False   ContainersReady  False   PodScheduled   True Volumes:  kube-api-access-vh2lm:    Type:                    Projected (a volume that contains injected data from multiple sources)    TokenExpirationSeconds:  3607    ConfigMapName:           kube-root-ca.crt    ConfigMapOptional:           DownwardAPI:             trueQoS Class:                   BestEffortNode-Selectors:              Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300sEvents:  Type    Reason     Age   From               Message  ----    ------     ----  ----               -------  Normal  Scheduled  47s   default-scheduler  Successfully assigned default/nginx-deployment-7d6ff77df6-f7m6k to minikube  Normal  Pulled     45s   kubelet            Container image "nginx" already present on machine  Normal  Created    45s   kubelet            Created container nginx-container  Normal  Started    45s   kubelet            Started container nginx-container

输出显示了Pod中的nginx容器的状态。我们可以看到,容器的Readiness状态为False,这意味着它还没有准备好接收流量。我们还可以看到,容器的Readiness状态为False,这意味着它还没有准备好接收流量。我们还可以看到Readiness探针的详细信息,它会定期调用容器的/healthz端点以检查容器是否已准备好接收流量。

在这种情况下,我们的Readiness探针定义了一个HTTP GET请求,它将在容器的80端口上调用/healthz端点。如果该请求成功,则容器被认为是“就绪”的。

现在我们需要添加一个就绪探针来确保容器已准备好接收流量。在Kubernetes中,我们可以使用以下方式定义就绪探针:

HTTP GET探针:向容器发送一个HTTP GET请求,以检查容器是否已准备好接收流量。TCP Socket探针:尝试连接到容器的指定端口,以检查容器是否已准备好接收流量。Exec探针:在容器中执行指定的命令,并检查命令的退出状态以确定容器是否已准备好接收流量。

在本例中,我们将使用HTTP GET探针。下面是一个包含就绪探针的更新后的Pod定义:

apiVersion: v1kind: Podmetadata:  name: nginx  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx    ports:    - containerPort: 80    readinessProbe:      httpGet:        path: /healthz        port: 80      initialDelaySeconds: 5      periodSeconds: 10

在这个更新的Pod定义中,我们添加了一个名为readinessProbe的字段,并在其中定义了HTTP GET探针。探针将在容器的80端口上调用/healthz端点,并在初始延迟5秒后每10秒执行一次。

现在,我们使用kubectl apply命令将更新的Pod定义应用于Kubernetes集群:

kubectl apply -f pod.yaml

如果我们再次运行kubectl describe pod命令,我们应该看到容器的Readiness状态已更改为True:

Name:           nginxNamespace:      defaultPriority:       0Node:           minikube/192.168.99.107Start Time:     Mon, 31 May 2021 16:10:53 +0300Labels:         app=nginxAnnotations:    Status:         RunningIP:             172.17.0.4IPs:            Controlled By:  Containers:  nginx:    Container ID:   docker://d96f8e1536c5feca2d79bfb13aebc5e47e5a6c5dd5d5b68a904a8110e32fbaec    Image:          nginx    Image ID:       docker-pullable://nginx@sha256:95202e0d007bbd2edcad2b8eae1d2e6966efadfca6bf772bd0eeb695c2d17c5b    Port:           80/TCP    Host Port:      0/TCP    State:          Running      Started:      Mon, 31 May 2021 16:11:04 +0300    Ready:          True    Restart Count:  0    Readiness:      http-get http://:80/healthz delay=5s timeout=1s period=10s #success=1 #failure=3    Environment:        Mounts:      /var/run/secrets/kubernetes.io/serviceaccount from default-token-x4rrz (ro)Conditions:  Type              Status  Initialized       True   Ready             True   ContainersReady   True   PodScheduled      True Volumes:  default-token-x4rrz:    Type:        Secret (a volume populated by a Secret)    SecretName:  default-token-x4rrz    Optional:    falseQoS Class:       BestEffortNode-Selectors:  Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300sEvents:          

现在我们可以确认容器已经准备好接收流量,Readiness探针定期调用/healthz端点以确保容器仍然是就绪的。

kubernetes就绪探针使用|天天报道

2023-04-30

西安多个景区已停票限流,警方发布提示:不建议前往大唐不夜城_焦点速递_环球微速讯

2023-04-30

曼城已经将英超争冠主动权牢牢握在手中 每日速递

2023-04-30

数字化推动城乡融合 数治城乡中“产学研合作”有哪些趋势?

2023-04-30

动态焦点:四川发布高森林草原火险橙色预警

2023-04-30

国际贸易实务专业代码_国际贸易实务专业

2023-04-30

如何加强高标准农田建设,保障国家粮食安全?委员发言干货满满→

2023-04-30

旅游 | 西安楼观五月畅游季 开启假日缤纷乐享游

2023-04-30

天天快消息!长宁月季花开正艳,在家门口就可闻香赏花!

2023-04-30

潮起上海 乐享消费!2023国际消费季暨第四届上海“五五购物节”启动 焦点信息

2023-04-30

天天最资讯丨2023年重庆成人高考报名时间及报名入口

2023-04-30

一季度全社会用电量超2.1万亿千瓦时 当前头条

2023-04-30

一鼓作气 再而衰 三而竭的出处哪个战役_一鼓作气再而衰三而竭的出处|焦点速讯

2023-04-30

传华硕游戏掌机ROG Ally起售价599美元

2023-04-30

一周热点 | 新能源汽车行业将引入积分池制度;全新宝马i5于5月24日首发亮相;海鸥上市;本田明年推多款纯电SUV

2023-04-30

买的混沌皮上面有小黑点是什么原因 昨天买的混沌皮今天就发现上面有黑点

2023-04-30

4399的火影忍者ol 4399火影忍者ol修改器_每日报道

2023-04-30

全球看点:国家救生员资格证书查询_国家救生员资格证查询

2023-04-30

【以闪亮之名】「玩呐挑战」第四章•平民不起来攻略

2023-04-30

哈特:球队没人对布伦森的表现感到惊讶 去年季后赛他就这样了 当前播报

2023-04-29

视点!“只保留那些让你开心的东西”

2023-04-29

完美国际代码在哪个文件夹下_完美国际代码在哪个文件夹|全球看点

2023-04-29

乳酸脱氢酶偏高的原因及危害性_乳酸脱氢酶偏高的原因及危害 环球时讯

2023-04-29

大功率电器是多少瓦_大功率电器的定义

2023-04-29

李亚鹏霸气回应4000万负债,为人生错误买单

2023-04-29

今日视点:海外双基地带来更多机遇 通用股份一季度归母净利润上涨超50%

2023-04-29

世界今亮点!联播+|乘势而上推动经济高质量发展 中央明确“路线图”

2023-04-29

“五一”小长假 卫星带你“云旅行”

2023-04-29

当前速读:染发后几天可以洗头发_染发后几天可以洗头

2023-04-29

AWE专访捷赛厨电董事长顾丽丽

2023-04-29

每日速读!开局首季!看中国经济“成绩单”|澎湃活力 民营企业看“浙”里

2023-04-29

微型电动车大魔王来了!比亚迪海鸥上市:7.38万起_当前速讯

2023-04-29

今日热闻!牵涉前首相贷款纠纷,英国BBC董事长辞了

2023-04-29

资讯:我国民族自治地方人民法院审判工作受什么监督 我国民族自治地方人民法院的审判工作

2023-04-29

对婚姻的理解和看法英语作文(对婚姻的理解和看法)|新资讯

2023-04-29

第二届成都夏季熊猫冰雪节启动-全球热消息

2023-04-29

“名城名校合作行” 走进太原 45家企业提供1200余个岗位

2023-04-29

北京当代·艺术博览会开幕 助力艺术消费市场发展_全球快报

2023-04-29

朗迪钙片补钙效果好吗_朗迪钙片|环球通讯

2023-04-29

米兰让罗马在主场,也处于被动;罗马赢欧联杯,比进意甲前四容易 世界短讯

2023-04-29

全球观点:故宫与西藏文物联展开幕

2023-04-29

催眠师培训多少钱_催眠师培训 当前热讯

2023-04-29

4月28日基金净值:博道远航混合A最新净值1.2845,涨0.39%

2023-04-29

刘青青和李鑫_刘青青

2023-04-29

lol闪退到桌面然后重新连接 lol闪退到桌面 世界观热点

2023-04-28

dramatic怎么读_dramatic|焦点热议

2023-04-28

茅台茅台冰淇淋&雪泥新品最新宣传片来袭,不容错过~

2023-04-28

当前资讯!江西吉安中院集中销毁近800件侵犯知识产权物品

2023-04-28

四川稻城县境内因雷击引发的森林火灾已全部扑灭

2023-04-28

欧媒:金砖国家重塑全球政经秩序-世界微动态

2023-04-28

迈向全国一流应用型高校 成都工业学院迎来110周年校庆

2023-04-28

【探索血液奥秘】贺州学院师生参观市中心血站_焦点讯息

2023-04-28

河南省“四优四化”优质草畜专项:科技服务促发展 培育致富“领头羊”

2023-04-28

全球热门:世体:巴萨想补强右后卫位置,仍然在考虑多特的穆尼耶

2023-04-28

宝鸡市气象台继续发布大风蓝色预警【Ⅳ级/一般】【2023-04-28】-视焦点讯

2023-04-28

2023第十五届西安五一车展开幕_世界球精选

2023-04-28

判答 处女座2023年5月运势详解-天天观速讯

2023-04-28

尚荣医疗(002551)4月28日主力资金净卖出74.89万元 全球讯息

2023-04-28

阿根廷制定高果糖玉米糖浆相关要求 快资讯

2023-04-28

今日热闻!一场生鲜零售的变革之战!奇麟鲜品与你共勉

2023-04-28

全球聚焦:《黑暗之魂3》各类boss抗性图文介绍 黑暗之魂3 全boss抗性

2023-04-28

今日13时起客流高峰就来了 提醒游客西安地铁出售一日票三日票

2023-04-28

【环球速看料】就在今晚,郴州这些地方计划停水,请提前作好储水准备!

2023-04-28

锰钢介绍 关于锰钢的说明

2023-04-28

“五一”顺城巷怎么游?出行交通攻略来了

2023-04-28

全球微头条丨特有数 | “五一”出行如何避开人流?这份指南请收好

2023-04-28

范世琦微博最新照片_范世琦微博

2023-04-28

安克创新:4月27日融券卖出4.79万股,融资融券余额2.83亿元-全球新要闻

2023-04-28

环球热头条丨最新!日本终于明确:处理核废弃物为日本政府责任!

2023-04-28

焦点简讯:去海南买新房生活方便吗,去海南买新房生活方便吗知乎

2023-04-28

世界要闻:福利预告!湖南车展大礼送不停,看车购车红利超10亿元

2023-04-28

未满16周岁打架会怎样处理

2023-04-28

日产轩逸有哪些颜色 轩逸什么颜色好看?|今亮点

2023-04-28

长沙天心区青园南湖小学开展春季劳动实践研学活动 世界看点

2023-04-28

天天亮点!科学家设计基因调控回路延缓衰老

2023-04-28

2023上海车展:林肯全新航海家 有环绕屏幕的快乐老家|世界通讯

2023-04-28

指导性施工组织设计 当前观点

2023-04-28

死人图片可爱_死人图_世界微速讯

2023-04-28

白带清洁度iv度严重吗_白带清洁度4度严重吗 热头条

2023-04-28

100kb的图片像素多少_100kb照片像素是多少

2023-04-28

全球微动态丨我国消费呈现恢复向好态势具体是什么情况

2023-04-27

韩媒盛赞武磊:在西班牙表现一般,回到中超无人可挡,上港王牌|全球球精选

2023-04-27

三七互娱: 东方证券承销保荐有限公司关于三七互娱网络科技集团股份有限公司2022年度募集资金存放与使用情况的专项核查报告

2023-04-27

今日快看!永和股份:4月27日公司高管童建国增持公司股份合计80.94万股

2023-04-27

好听的钢琴乐曲5级_好听的钢琴乐曲

2023-04-27

詹姆斯韦伯望远镜发布的新图像,我们能发现了什么?

2023-04-27

2023高考考分压线能上大学吗

2023-04-27

德信服务集团4月27日回购42.00万股 耗资115.08万港币

2023-04-27

现代张大千丈人山图轴_关于现代张大千丈人山图轴介绍

2023-04-27

网红城市旅游轶事图鉴 世界即时

2023-04-27

微动态丨2023五一岳麓书院预约温馨提示

2023-04-27

每日快讯!天山股份:公司并未低于成本价出售商品,此外公司将持续做好错峰生产,提升产品质量,提高客户满意度等工作

2023-04-27

千古玦尘混沌之劫(混沌劫全文阅读) 世界热消息

2023-04-27

【天天热闻】31省份常住人口数据出炉 这个省增量居榜首

2023-04-27

北京海淀、丰台、门头沟、顺义、大兴、延庆通报十四起违反中央八项规定精神典型问题 今日播报

2023-04-27

远信工业(301053.SZ):公司产品出口至越南的比例相对较高

2023-04-27

当前速讯:死亡岛2传奇武器血怒怎么获得攻略

2023-04-27

dnf心悦会员宠物属性 dnf心悦会员 环球快看点

2023-04-27

《哪吒魔童降世》首日1.38亿超《神偷奶爸3》,创内地动画片纪录

2023-04-27

【独家焦点】0400开头的是哪里的电话 040

2023-04-27