首页 > 其他分享 >kubernetes 服务发现机制:环境变量和DNS

kubernetes 服务发现机制:环境变量和DNS

时间:2023-04-26 15:11:24浏览次数:43  
标签:kubernetes 9300 GAME PORT cluster game DNS local 环境变量

1. 环境变量

创建pod资源时,kubectl会将其所属名称空间内的每个活动的service对象以一系列环境变量的形式注入其中。

但是也仅仅只是注入创建时候的资源,后面的变化它时不感知的。

我有个game服务:

qiteck@server:~$ sudo kubectl get service | grep game
game            NodePort    10.96.122.100   <none>        9300:9300/TCP                                                                                                                                          45h

进入另外一个k8s网络内的pod:

export | grep GAME

 qiteck@server:~$ sudo kubectl exec -it gateway-8df8488d5-tgdq6 -- /bin/bash
root@gateway-8df8488d5-tgdq6:/usr/local/openresty# export | grep GAME
declare -x GAME_PORT="tcp://10.96.122.100:9300"
declare -x GAME_PORT_9300_TCP="tcp://10.96.122.100:9300"
declare -x GAME_PORT_9300_TCP_ADDR="10.96.122.100"
declare -x GAME_PORT_9300_TCP_PORT="9300"
declare -x GAME_PORT_9300_TCP_PROTO="tcp"
declare -x GAME_SERVICE_HOST="10.96.122.100"
declare -x GAME_SERVICE_PORT="9300"
declare -x GAME_SERVICE_PORT_PORT="9300"

kubernets为每个service资源生成包括以下形式的环境变量在哪的一系列环境变量,在同一名称空间内创建的pod对象都会自动拥有这些变量: {SERVICE_NAME}_SERVICE_HOST, {SERVICE_NAME}_SERVICE_PORT

2. coredns

该主键详情见之前文章 <<kubernetes CoreDNS服务发现组件研究>>

dig srv game.default.svc.cluster.local
 root@advertise-56d599d999-c7td4:/var/app/mage-advertise# dig srv game.default.svc.cluster.local

; <<>> DiG 9.16.37-Debian <<>> srv game.default.svc.cluster.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62959
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 996ee0ab446f6520 (echoed)
;; QUESTION SECTION:
;game.default.svc.cluster.local.	IN	SRV

;; ANSWER SECTION:
game.default.svc.cluster.local.	30 IN	SRV	0 100 9300 game.default.svc.cluster.local.

;; ADDITIONAL SECTION:
game.default.svc.cluster.local.	30 IN	A	10.96.122.100

;; Query time: 0 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: Wed Apr 26 15:02:50 CST 2023
;; MSG SIZE  rcvd: 197

可以看到:9300 game.default.svc.cluster.local, 服务和端口都能找到

dig无法使用dns配置/etc/resolv.conf

more /etc/resolv.conf
 root@advertise-56d599d999-c7td4:/var/app/mage-advertise# more /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local qiteck.net localdomain
nameserver 10.96.0.10
options ndots:5

ping和telnet可以用上/etc/resolv.conf的search域名:

telnet game 9300
 root@advertise-56d599d999-c7td4:/var/app/mage-advertise# telnet game 9300
Trying 10.96.122.100...
Connected to game.default.svc.cluster.local.
Escape character is '^]'.
^C^Z^C
Connection closed by foreign host.
ping game
 root@advertise-56d599d999-c7td4:/var/app/mage-advertise# ping game
PING game.default.svc.cluster.local (10.96.122.100) 56(84) bytes of data.
^C
--- game.default.svc.cluster.local ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

ping/telnet会根据/etc/resolv.conf的search补齐搜索的域名

标签:kubernetes,9300,GAME,PORT,cluster,game,DNS,local,环境变量
From: https://www.cnblogs.com/zhanchenjin/p/17356097.html

相关文章

  • Kubernetes(K8S) kubesphere 介绍
    使用Kubeadm部署Kubernetes(K8S)安装--附K8S架构图官网地址:https://kubesphere.com.cn/KubeSphere是个全栈的Kubernetes容器云PaaS解决方案KubeSphere是在目前主流容器调度平台Kubernetes之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方......
  • DNS集群搭建
    DNS实践(DNS集群)实验环境:LinuxRocky8.6三台10.0.0.127主DNS10.0.0.128从DNS10.0.0.131client客户端软件:bind(实现DNS),bind-utils(测试工具)(yum-yinstallbindbind-utils)1.主DNS配置在/etc/named.conf配置#注释下面两行//listen-onport53{localhost;};#......
  • kubernetes 1.27.1最新版集群部署
    kubernetes1.27.1最新版集群部署国内环境官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/准备云服务器首先买三台服务器。我用的阿里云服务器。三台服务器如下,然后我用的Tabby连接三台服务器。我以i-bp......
  • [问题记录]k8s集群中coredns解析失败
    目录[问题记录]k8s集群中coredns解析失败故障现象问题排查问题解析举例说明:解决方案修改ndots参数参考文档[问题记录]k8s集群中coredns解析失败故障现象在k8s集群,使用coredns提供集群内部dns服务但是在使用过程中,偶现解析公网域名失败的情况,应用内日志记录显示UnknownHost问......
  • mac os下安装k8s的kubernetes-dashboard
     需要这个的继续往下看 环境macos 12.6.2 安装dokcer https://docs.docker.com/desktop/install/mac-install/安装k8s https://blog.csdn.net/qq_20042935/article/details/124472626 <-看这位兄弟写的很详细了安装kubernetes-dashboard 1.创建命名空间 kubec......
  • CentOS 服务器部署 DNS 解析服务
    需求在centos云服务器上部署一个dns解析服务,以供windows电脑可以使用这个服务器ip作为网络的dns代理。我的服务器ip为192.168.126.241,我想在我的windows电脑访问abc.baidu.com时解析到ip为110.112.113.111的服务器上,访问www.baidu.com时解析到123.111.111.111的服务器上。尽量模......
  • kubernetes 使用 1
    安装1.用以下命令下载最新发行版:curl-LO"https://dl.k8s.io/release/$(curl-L-shttps://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"可以用以下方式指定版本curl-LOhttps://dl.k8s.io/release/v1.27.0/bin/linux/amd64/kubectl2.验证该可执行文件(可选步......
  • Reset an Internet Connection (Flush DNS)
    https://support.pearson.com/getsupport/s/article/Reset-an-Internet-Connection-Flush-DNSWindows10.8and8.1Navigatetothedesktop.(FromHome,taporclicktheDesktoptile).Right-clicktheStartbutton(theWindowslogointhelower-left).ChooseComma......
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)
    好家伙,发现自己的网络知识十分匮乏,赶紧补一下 这里先举个我生活中的例子欸,作业不会写了,上网搜一下用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子) 假设这是我们第一次访问bing的首页当我向浏览器中输入https://cn.bing.com/并按下回车浏览器做了什么?(我......
  • 【Linux】yum安装Java环境,并配置环境变量
    查看系统是否安装过javayumlistinstalled|grepjava如果有旧版本的java,且你自己不需要,可以用如下方法卸载所有的java(后边的*符号是通配符)yum-yremovejava-1.8.0-openjdk*查看java软件包列表yumlistjava*注意​ 这里一定要安装openjdk的开发版本(......