分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Docker Kubernetes ?服务发现原理详解

发布时间:2023-09-06 02:24责任编辑:彭小芳关键词:Docker

Docker Kubernetes  服务发现原理详解

服务发现支持Service环境变量和DNS两种模式:

一、环境变量 (默认)

当一个Pod运行到Node,kubelet会为每个容器添加一组环境变量,Pod容器中程序就可以使用这些环境变量发现Service。

环境变量名格式如下:

{SVCNAME}_SERVICE_HOST{SVCNAME}_SERVICE_PORT

注:其中服务名和端口名转为大写,连字符转换为下划线。

限制:

1)Pod和Service的创建顺序是有要求的,Service必须在Pod创建之前被创建,否则环境变量不会设置到Pod中。

2)Pod只能获取同Namespace中的Service环境变量。

案例:

# 查看容器内的变量
kubectl exec nginx-deployment-66579795d7-2thc9 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binHOSTNAME=nginx-deployment-66579795d7-2thc9NGINX_SERVICE_PORT=88NGINX_SERVICE_PORT_888_TCP_PROTO=tcpNGINX_SERVICE_PORT_888_TCP_ADDR=10.10.10.11KUBERNETES_PORT=tcp://10.10.10.1:443NGINX_PORT_88_TCP_PORT=88NGINX_DEPLOYMENT_SERVICE_HOST=10.10.10.12NGINX_DEPLOYMENT_PORT_80_TCP=tcp://10.10.10.12:80NGINX_SERVICE2_SERVICE_HOST=10.10.10.39HOME=/root...
环境变量

注:Kubernetes将信息通过变量存入容器中

注:每个容器间的通信地址都会再容器创建时记录到容器当中。


二、DNS(推荐)

DNS服务监视Kubernetes API,为每一个Service创建DNS记录用于域名解析。这样Pod中就可以通过DNS域名获取Service的访问地址。

DNS服务发现

放入kuber cstenmu默认的系统命名空间中。

部署:www.kubernetes.io

注:DNS需要下载DNS插件来提供服务。

Docker Kubernetes ?服务发现原理详解

原文地址:https://www.cnblogs.com/xiangsikai/p/10019391.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved