Kubernetes-Service介绍-服务发现

发布时间:2022-06-26 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Kubernetes-Service介绍-服务发现脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Kubernetes-service介绍(二)-服务发现

 

前言

本篇是Kubernetes第九篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。

Kubernetes系列文章:
  1. Kubernetes介绍
  2. Kubernetes环境搭建
  3. Kubernetes-kubectl介绍
  4. Kubernetes-Pod介绍(-)
  5. Kubernetes-Pod介绍(二)-生命周期
  6. Kubernetes-Pod介绍(三)-Pod调度
  7. Kubernetes-Pod介绍(四)-deployment
  8. Kubernetes-Service介绍(一)-基本概念

服务发现

Kubernetes提供两种客户端以固定方式获取后端访问地址的方式:环境变量和DNS方式。

环境变量

该实验以上文中的nginx-deployment.yaml和nginx-service.yaML为基础;

  1. 新建一个Pod资,文件名为nginx-pod.yaml;
apiVersion: v1
kind: Pod
metadata:
  name: nginx-deployment
sPEc:
  containers:
  - name: nginx
    image: nginx:latest
    resources:
      limITs:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 80
  1. 启动该资源;
kubectl apply -f nginx-pod.yaml
  1. 进入容器内部,查看系统的环境变量;
#进入容器内部
kubectl exec -it nginx-deployment -- /bin/bash
#查看环境变量
env | grep NGINX
@H_803_126@Kubernetes-Service介绍-服务发现

image.png
  1. 通过环境变量访问服务信息;
curl http://${NGINX_SERVICE_SERVICE_HOST}

Kubernetes-Service介绍-服务发现

image.png
DNS方式
  1. 通过DNS解析方式在容器内部访问;
curl http://nginx-service.default.svc.cluster.local

Kubernetes-Service介绍-服务发现

image.png

相比于环境变量来说,DNS域名格式的Service名称提供的稳定、不变的访问地址,可以简化客户端的应用配置,是Kubernetes推荐的方式。当Service以DNS形式进行访问的时候,需要在集群中存在一个DNS服务器来完成域名到ClusterIP的地址解析工作,kubeadm在初始化的时候已经完kube-dns的安装,这个里要注意一个问题,就是使用busybox解析Service时候,最新版本是有问题的,我采用了1.28.3版本,对于服务中心中是否安装kube-dns可以通过以下方式检查:

#检查deployment
kubectl get deployment --namespace=kube-System
#检查service
kubectl get services --namespace=kube-system

Service在Kubernetes中遵守DNS命名规范,Service的DNS域名表示方法为servicename.namespace.svc.clusterdomain,其中servicename为服务名称,namespace为所在的名空间,clusterdomain为Kubernetes中集群设置的域名后缀,此外如果Service定义中设置了名称,该端口会拥有一个DNS域名,在DNS服务器中保存格式为:_portname._PRotocol.servicename.namespace.svc.clusterdomain,其值为端口号的数值。

Kubernetes-Service介绍-服务发现

img

Pod的DNS相关特征

Pod作为集群中提供服务的实体,也可以设置DNS域名,Kubernetes为Pod使用的DNS策略提供很多种方式。

Pod的DNS

对于Pod来说,Kubernetes会为其设置一个pod-ip.namespace.pod.cluster-domain格式的DNS域名,其中Pod的IP需要使用-替换.,我们通过nslookup来证明一下;

  1. 查看Pod的IP信息,我们使用niginx-deployment的Pod为案例;
kubectl get pod -o wide

Kubernetes-Service介绍-服务发现

image.png
  1. 使用nslookup进行验证;
kubectl exec busybox -- nslookup 10-100-1-103.default.pod.cluster.local

Kubernetes-Service介绍-服务发现

image.png

对于Deployment和Daement类型的创建的Pod来说,Kubernetes会为每个Pod设置一个DNS域名,格式为pod-ip.deployment-name/daement-name.namespace.svc.cluster-domain,Pod的IP也需要使用-替换.

为Pod设置hostname和subdomain

当前,创建Pod时其主机名取自Pod的metadata.name,在定义Pod的yaml文件中包含一个可选的 hostname 字段,可以用来指定Pod的主机名。 当这个字段被设置时,它将优先于Pod的名字成为该 Pod 的主机名。此外还有一个字段subdomain 字段,可以用来指定 Pod的子域名。

  1. 删除所有Pod;
kubectl delete -f nginx-pod.yaml
  1. 创建busybox-headless-service.yaml文件,这里Headless Service与Pod子域名保持一致,这样子DNS服务器才会自动创建响应的DNS记录;
apiVersion: v1
kind: Service
metadata:
  name: default-subdomain
spec:
  selector:
    name: busybox
  clusterIP: None
  ports:
  - name: foo # 实际上不需要指定端口号
    port: 1234
    targetPort: 1234
  1. 创建nginx-pod.yaml文件;
apiVersion: v1
kind: Pod
metadata:
  name: busybox1
  labels:
    name: busybox
spec:
  hostname: busybox-1
  subdomain: default-subdomain
  containers:
  - image: busybox:1.28.3
    command:
      - sleep
      - "3600"
    name: busybox
  1. 创建资源;
kubectl apply -f busybox-headless-service.yaml
kubectl apply -f busybox-pod1.yaml
  1. 进入Pod检查DNS是否写入,其他Pod就可以通过busybox-1.default-subdomain.default.svc.cluster.local来访问该Pod;
kubectl exec -it busybox1 -- /bin/sh
cat /etc/hosts

Kubernetes-Service介绍-服务发现

image.png
Pod的DNS策略

Kubernetes可以通过Pod中dnspolicy属性指定DNS相关策略,目前支持以下四种策略:

  1. Default: 继承Pod所在的节点的域名解析设置;

  2. ClusterFirst: 优先使用Kubernetes提供的DNS服务(CoredNS),将无法解析域名转发到系统配置的DNS服务器;

  3. ClusterFirstWithHostNet:适用于以hostNetWork方式运行的Pod;

  4. None:忽略Kubernetes提供的DNS配置,采用自定义的配置方式;

Pod自定义DNS配置

Kubernetes可以通过Pod的dnsconfig属性来自定义DNS相关配置,同时必须指定dnsPolicy为None。

自定义DNS可以在dnsConfig指定以下属性:

nameservers: 用于域名解析DNS服务列表,最多可以设置3个,当 Pod的dnsPolicy设置为none时, 列表必须至少包含一个 IP 地址。配置的nameserver列表与系统自动设置的nameserver自动合并去重;

seArches: 用于域名搜索的DNS域名后缀,最多设置6个,也会与系统自动设置的search列表合并去重;

options:配置其他可选的DNS参数,以name或者name/value的形式表示,系统也会自动设置option列表合并去重;

随笔分类 - DevOps

1 2 下一页

 

 
Kubernetes-API Server
摘要:前言 本篇是Kubernetes第十四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-22 09:00 大魔王先生 阅读(130) 评论(0) 推荐(0)  编辑
 
Kubernetes-存储(二)
摘要:前言 本篇是Kubernetes第十三篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-15 08:58 大魔王先生 阅读(274) 评论(0) 推荐(1)  编辑
 
Kubernetes-存储(一)
摘要:前言 本篇是Kubernetes第十二篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-06 08:59 大魔王先生 阅读(222) 评论(2) 推荐(1)  编辑
 
Kubernetes-网络
摘要:前言 本篇是Kubernetes第十一篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战,此篇文章概念比较多,后续我会继续出一些网络相关实战以及原理探索篇。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kuber 阅读全文
posted @ 2021-12-01 08:59 大魔王先生 阅读(282) 评论(2) 推荐(0)  编辑
 
docker Swarm介绍
摘要:前言 本篇是Docker第十三篇,Docker的使用至此就介绍完成,接下来继续Kubernetes。 Docker系列文章: 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上Docker单机网络下Docker单机网络 阅读全文
posted @ 2021-11-26 08:58 大魔王先生 阅读(414) 评论(0) 推荐(1)  编辑
 
Docker多机网络
摘要:前言 前面的文章主要聚焦于单机网络上,对于生产环境而言,单机环境不满足高可用的特点,所以是不具备上生产的条件,因此在开始Docker Swarm篇的时候我们先来聊聊多机网络之间Docker的通信如何做,厦门主要介绍三种跨主机通信的方式。 Docker系列文章: 为什么要学习DockerDocker基 阅读全文
posted @ 2021-11-12 08:54 大魔王先生 阅读(297) 评论(0) 推荐(1)  编辑
 
Netfilter和iptables介绍
摘要:前言 在开始Kubernetes的网络之前我们先来学习Netfilter,Netfilter可能了解的人比较少,但是iptables用过 Linux的都应该知道。本文主要介绍Netfilter与iptables的原理。 什么是Netfilter Netfilter顾名思义就是网络过滤器,其主要功能就 阅读全文
posted @ 2021-11-04 08:53 大魔王先生 阅读(170) 评论(0) 推荐(0)  编辑
 
Kubernetes-Service介绍(三)-Ingress(含最新版安装踩坑实践)
摘要:前言 本篇是Kubernetes第十篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-10-20 08:52 大魔王先生 阅读(850) 评论(3) 推荐(1)  编辑
 
Kubernetes-Service介绍(二)-服务发现
摘要:前言 本篇是Kubernetes第九篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-10-18 09:19 大魔王先生 阅读(220) 评论(5) 推荐(0)  编辑
 
Kubernetes-Service介绍(一)-基本概念
摘要:前言 本篇是Kubernetes第八篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。Pod篇暂时应该还缺少两篇,等Service和存储相关内容介绍以后,补充剩下的两篇,有状态的Pod会涉及这两块的内容。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建 阅读全文
posted @ 2021-09-29 08:48 大魔王先生 阅读(396) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(四)-Deployment
摘要:前言 本篇是Kubernetes第七篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-09-26 08:54 大魔王先生 阅读(212) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(三)-Pod调度
摘要:前言 本篇是Kubernetes第六篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-09-22 08:49 大魔王先生 阅读(267) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(二)-生命周期
摘要:前言 本篇是Kubernetes第五篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-) Pod生命周期 Pod对象自从其创建开 阅读全文
posted @ 2021-09-15 08:42 大魔王先生 阅读(196) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(-)
摘要:前言 本篇是Kubernetes第四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。从现在开始都是重要的核心概念,此篇偏一些Pod的概念介绍,后续每篇都会有实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍 阅读全文
posted @ 2021-09-08 08:39 大魔王先生 阅读(229) 评论(0) 推荐(0)  编辑
 
Kubernetes-kubectl介绍
摘要:前言 本篇是Kubernetes第三篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。本篇重要介绍kubectl的使用。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建 kubectl的核心功能在于通过 API Server 操作 Kubernetes 阅读全文
posted @ 2021-09-06 08:50 大魔王先生 阅读(321) 评论(0) 推荐(0)  编辑
 
Kubernetes环境搭建
摘要:前言 本篇是Kubernetes第二篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍 Kubernetes搭建方式介绍和对比 Minikube Minikube是一种可以在本地轻松运行Kubernetes的工具。Minikube在 阅读全文
posted @ 2021-09-02 08:47 大魔王先生 阅读(543) 评论(0) 推荐(3)  编辑
 
Kubernetes介绍
摘要:前言 从本周开始以后尝试开始每周两更,本篇原计划是Docker多机网路,该篇文章有些卡文,所以先更新篇Kubernetes文章,关于Docker系列文章后面应该就剩下两篇了,等后续Kubernetes使用篇讲完以后,再开始做一些Docker相关深层次思考。 Docker系列文章: 为什么要学习Doc阅读全文
posted @ 2021-08-18 08:47 大魔王先生 阅读(460) 评论(0) 推荐(0)  编辑
 
Docker Compose
摘要:前言 Docker系列文章: 此篇是Docker系列的第十一篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网 阅读全文
posted @ 2021-08-12 08:49 大魔王先生 阅读(797) 评论(0) 推荐(0)  编辑
 
Docker限制
摘要:前言 Docker系列文章: 此篇是Docker系列的第十篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络 阅读全文
posted @ 2021-08-06 08:56 大魔王先生 阅读(476) 评论(0) 推荐(2)  编辑
 
Docker隔离技
摘要:前言 Docker系列文章: 此篇是Docker系列的第九篇,之前的文章里面或多或少的提到Docker的隔离技术,但是没有很清楚的去聊这个技术,但是经过这么多文章大家一定对Docker使用和概念有了一定的理解,接下来我们聊下底层一些技术,帮助大家解解惑,先从隔离技术开始吧。此外大家一定要按照我做的D 阅读全文
posted @ 2021-07-30 09:23 大魔王先生 阅读(761) 评论(0) 推荐(0)  编辑

 

Docker单机网络实战
摘要:前言 Docker系列文章: 此篇是Docker系列的第八篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上Docker单机网络下 基本命令 img 阅读全文
posted @ 2021-07-21 08:50 大魔王先生 阅读(430) 评论(2) 推荐(1)  编辑
 
Docker单机网络下
摘要:前言 Docker系列文章: 此篇是Docker系列的第七篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上 Docker网络初探 后台方式启动一个 阅读全文
posted @ 2021-07-13 08:48 大魔王先生 阅读(557) 评论(6) 推荐(4)  编辑
 
Docker单机网络上
摘要:前言 Docker系列文章: 此篇是Docker系列的第六篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷Dockerfile 网卡 网卡是一块计算机硬件。其特点是每一个网卡都有独立的MA 阅读全文
posted @ 2021-07-09 08:55 大魔王先生 阅读(335) 评论(2) 推荐(1)  编辑
 
Dockerfile
摘要:前言 Docker系列文章: 此篇是Docker系列的第五篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 Docker容器数据卷 什么是DockerFile Dockfile是一种被Docker程序解释的 阅读全文
posted @ 2021-06-28 08:47 大魔王先生 阅读(183) 评论(0) 推荐(0)  编辑
 
Docker容器数据卷
摘要:前言 Docker系列文章: 此篇是Docker系列的第四篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 为什么需要容器数据卷 数据的持久化,假设MySQL的数据存储在自身的镜像当中,如果将镜像删除的话, 阅读全文
posted @ 2021-06-21 09:26 大魔王先生 阅读(415) 评论(0) 推荐(0)  编辑
 
Docker镜像基本原理
摘要:前言 Docker系列文章: 如果没有安装过Docker请参考本文最后部分,大家从现在开始一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么学习Docker Docker基本概念 什么是镜像 镜像就是一个可执行独立运行的软件包。包含应用运行所必须的文件和依赖包; 镜像可以理解为类或 阅读全文
posted @ 2021-06-15 08:48 大魔王先生 阅读(738) 评论(1) 推荐(1)  编辑
 
Docker基本概念介绍
摘要:前言 Docker和Kubernetes是我最近在学习的内容,本来是去年的目标,由于工作比较忙,没有时间去学习,今年剩下的年时间我会好好系统学习下相关的内容,最后在学习下Devops相关理念,希望最终能形成自己的一套思想; Docker系列文章: 为什么要学习Docker Docker基本组成 镜阅读全文
posted @ 2021-06-09 12:06 大魔王先生 阅读(567) 评论(0) 推荐(2)  编辑
 
3W法则-学习Docker
摘要:一、前言 5W1H法则是在一次面试中学习到的,后来在工作也开始使用这种东西,虽然最后没去那家公司,但是也是学习到了,关注开这些东西以后,也发现了一些简化版的3W法则,最近公司也要搞Docekr,所以写篇博客来说说为什么要学习Docker。 二、What Docker 什么是Docker?Docker 阅读全文
posted @ 2019-06-21 08:42 大魔王先生 阅读(1317) 评论(1) 推荐(0)  编辑

前言

本篇是Kubernetes第九篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。

Kubernetes系列文章:
  1. Kubernetes介绍
  2. Kubernetes环境搭建
  3. Kubernetes-kubectl介绍
  4. Kubernetes-Pod介绍(-)
  5. Kubernetes-Pod介绍(二)-生命周期
  6. Kubernetes-Pod介绍(三)-Pod调度
  7. Kubernetes-Pod介绍(四)-Deployment
  8. Kubernetes-Service介绍(一)-基本概念

服务发现

Kubernetes提供两种客户端以固定方式获取后端访问地址的方式:环境变量和DNS方式。

环境变量

该实验以上文中的nginx-deployment.yaml和nginx-service.yaml为基础;

  1. 新建一个Pod资源,文件名为nginx-pod.yaml;
apiVersion: v1
kind: Pod
metadata:
  name: nginx-deployment
spec:
  containers:
  - name: nginx
    image: nginx:latest
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 80
  1. 启动该资源;
kubectl apply -f nginx-pod.yaml
  1. 进入容器内部,查看系统的环境变量;
#进入容器内部
kubectl exec -it nginx-deployment -- /bin/bash
#查看环境变量
env | grep NGINX

Kubernetes-Service介绍-服务发现

image.png
  1. 通过环境变量访问服务信息;
curl http://${NGINX_SERVICE_SERVICE_HOST}

Kubernetes-Service介绍-服务发现

image.png
DNS方式
  1. 通过DNS解析方式在容器内部访问;
curl http://nginx-service.default.svc.cluster.local

Kubernetes-Service介绍-服务发现

image.png

相比于环境变量来说,DNS域名格式的Service名称提供的稳定、不变的访问地址,可以简化客户端的应用配置,是Kubernetes推荐的方式。当Service以DNS形式进行访问的时候,需要在集群中存在一个DNS服务器来完成域名到ClusterIP的地址解析工作,kubeadm在初始化的时候已经完kube-dns的安装,这个里要注意一个问题,就是使用busybox解析Service时候,最新版本是有问题的,我采用了1.28.3版本,对于服务中心中是否安装kube-dns可以通过以下方式检查:

#检查deployment
kubectl get deployment --namespace=kube-system
#检查service
kubectl get services --namespace=kube-system

Service在Kubernetes中遵守DNS命名规范,Service的DNS域名表示方法为servicename.namespace.svc.clusterdomain,其中servicename为服务名称,namespace为所在的名空间,clusterdomain为Kubernetes中集群设置的域名后缀,此外如果Service定义中设置了名称,该端口会拥有一个DNS域名,在DNS服务器中保存格式为:_portname._protocol.servicename.namespace.svc.clusterdomain,其值为端口号的数值。

Kubernetes-Service介绍-服务发现

img

Pod的DNS相关特征

Pod作为集群中提供服务的实体,也可以设置DNS域名,Kubernetes为Pod使用的DNS策略提供很多种方式。

Pod的DNS

对于Pod来说,Kubernetes会为其设置一个pod-ip.namespace.pod.cluster-domain格式的DNS域名,其中Pod的IP需要使用-替换.,我们通过nslookup来证明一下;

  1. 查看Pod的IP信息,我们使用niginx-deployment的Pod为案例;
kubectl get pod -o wide

Kubernetes-Service介绍-服务发现

image.png
  1. 使用nslookup进行验证;
kubectl exec busybox -- nslookup 10-100-1-103.default.pod.cluster.local

Kubernetes-Service介绍-服务发现

image.png

对于Deployment和Daement类型的创建的Pod来说,Kubernetes会为每个Pod设置一个DNS域名,格式为pod-ip.deployment-name/daement-name.namespace.svc.cluster-domain,Pod的IP也需要使用-替换.

为Pod设置hostname和subdomain

当前,创建Pod时其主机名取自Pod的metadata.name,在定义Pod的yaml文件中包含一个可选的 hostname 字段,可以用来指定Pod的主机名。 当这个字段被设置时,它将优先于Pod的名字成为该 Pod 的主机名。此外还有一个字段subdomain 字段,可以用来指定 Pod的子域名。

  1. 删除所有Pod;
kubectl delete -f nginx-pod.yaml
  1. 创建busybox-headless-service.yaml文件,这里Headless Service与Pod子域名保持一致,这样子DNS服务器才会自动创建响应的DNS记录;
apiVersion: v1
kind: Service
metadata:
  name: default-subdomain
spec:
  selector:
    name: busybox
  clusterIP: None
  ports:
  - name: foo # 实际上不需要指定端口号
    port: 1234
    targetPort: 1234
  1. 创建nginx-pod.yaml文件;
apiVersion: v1
kind: Pod
metadata:
  name: busybox1
  labels:
    name: busybox
spec:
  hostname: busybox-1
  subdomain: default-subdomain
  containers:
  - image: busybox:1.28.3
    command:
      - sleep
      - "3600"
    name: busybox
  1. 创建资源;
kubectl apply -f busybox-headless-service.yaml
kubectl apply -f busybox-pod1.yaml
  1. 进入Pod检查DNS是否写入,其他Pod就可以通过busybox-1.default-subdomain.default.svc.cluster.local来访问该Pod;
kubectl exec -it busybox1 -- /bin/sh
cat /etc/hosts

Kubernetes-Service介绍-服务发现

image.png
Pod的DNS策略

Kubernetes可以通过Pod中dnsPolicy属性指定DNS相关策略,目前支持以下四种策略:

  1. Default: 继承Pod所在的节点的域名解析设置;

  2. ClusterFirst: 优先使用Kubernetes提供的DNS服务(CoreDNS),将无法解析域名转发到系统配置的DNS服务器;

  3. ClusterFirstWithHostNet:适用于以hostNetWork方式运行的Pod;

  4. None:忽略Kubernetes提供的DNS配置,采用自定义的配置方式;

Pod自定义DNS配置

Kubernetes可以通过Pod的dnsConfig属性来自定义DNS相关配置,同时必须指定dnsPolicy为None。

自定义DNS可以在dnsConfig指定以下属性:

nameservers: 用于域名解析DNS服务列表,最多可以设置3个,当 Pod的dnsPolicy设置为none时, 列表必须至少包含一个 IP 地址。配置的nameserver列表与系统自动设置的nameserver自动合并去重;

searches: 用于域名搜索的DNS域名后缀,最多设置6个,也会与系统自动设置的search列表合并去重;

options:配置其他可选的DNS参数,以name或者name/value的形式表示,系统也会自动设置option列表合并去重;

随笔分类 - DevOps

1 2 下一页

 

 
Kubernetes-API Server
摘要:前言 本篇是Kubernetes第十四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-22 09:00 大魔王先生 阅读(130) 评论(0) 推荐(0)  编辑
 
Kubernetes-存储(二)
摘要:前言 本篇是Kubernetes第十三篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-15 08:58 大魔王先生 阅读(274) 评论(0) 推荐(1)  编辑
 
Kubernetes-存储(一)
摘要:前言 本篇是Kubernetes第十二篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二) 阅读全文
posted @ 2021-12-06 08:59 大魔王先生 阅读(222) 评论(2) 推荐(1)  编辑
 
Kubernetes-网络
摘要:前言 本篇是Kubernetes第十一篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战,此篇文章概念比较多,后续我会继续出一些网络相关实战以及原理探索篇。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kuber 阅读全文
posted @ 2021-12-01 08:59 大魔王先生 阅读(282) 评论(2) 推荐(0)  编辑
 
Docker Swarm介绍
摘要:前言 本篇是Docker第十三篇,Docker的使用至此就介绍完成,接下来继续Kubernetes。 Docker系列文章: 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上Docker单机网络下Docker单机网络 阅读全文
posted @ 2021-11-26 08:58 大魔王先生 阅读(414) 评论(0) 推荐(1)  编辑
 
Docker多机网络
摘要:前言 前面的文章主要聚焦于单机网络上,对于生产环境而言,单机环境不满足高可用的特点,所以是不具备上生产的条件,因此在开始Docker Swarm篇的时候我们先来聊聊多机网络之间Docker的通信如何做,厦门主要介绍三种跨主机通信的方式。 Docker系列文章: 为什么要学习DockerDocker基 阅读全文
posted @ 2021-11-12 08:54 大魔王先生 阅读(297) 评论(0) 推荐(1)  编辑
 
Netfilter和iptables介绍
摘要:前言 在开始Kubernetes的网络之前我们先来学习Netfilter,Netfilter可能了解的人比较少,但是iptables用过 Linux的都应该知道。本文主要介绍Netfilter与iptables的原理。 什么是Netfilter Netfilter顾名思义就是网络过滤器,其主要功能就 阅读全文
posted @ 2021-11-04 08:53 大魔王先生 阅读(170) 评论(0) 推荐(0)  编辑
 
Kubernetes-Service介绍(三)-Ingress(含最新版安装踩坑实践)
摘要:前言 本篇是Kubernetes第十篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-10-20 08:52 大魔王先生 阅读(850) 评论(3) 推荐(1)  编辑
 
Kubernetes-Service介绍(二)-服务发现
摘要:前言 本篇是Kubernetes第九篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-10-18 09:19 大魔王先生 阅读(220) 评论(5) 推荐(0)  编辑
 
Kubernetes-Service介绍(一)-基本概念
摘要:前言 本篇是Kubernetes第八篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。Pod篇暂时应该还缺少两篇,等Service和存储相关内容介绍以后,补充剩下的两篇,有状态的Pod会涉及这两块的内容。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建 阅读全文
posted @ 2021-09-29 08:48 大魔王先生 阅读(396) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(四)-Deployment
摘要:前言 本篇是Kubernetes第七篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-09-26 08:54 大魔王先生 阅读(212) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(三)-Pod调度
摘要:前言 本篇是Kubernetes第六篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-)Kubernetes-Pod介绍(二)- 阅读全文
posted @ 2021-09-22 08:49 大魔王先生 阅读(267) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(二)-生命周期
摘要:前言 本篇是Kubernetes第五篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍Kubernetes-Pod介绍(-) Pod生命周期 Pod对象自从其创建开 阅读全文
posted @ 2021-09-15 08:42 大魔王先生 阅读(196) 评论(0) 推荐(0)  编辑
 
Kubernetes-Pod介绍(-)
摘要:前言 本篇是Kubernetes第四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。从现在开始都是重要的核心概念,此篇偏一些Pod的概念介绍,后续每篇都会有实战。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建Kubernetes-kubectl介绍 阅读全文
posted @ 2021-09-08 08:39 大魔王先生 阅读(229) 评论(0) 推荐(0)  编辑
 
Kubernetes-kubectl介绍
摘要:前言 本篇是Kubernetes第三篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。本篇重要介绍kubectl的使用。 Kubernetes系列文章: Kubernetes介绍Kubernetes环境搭建 kubectl的核心功能在于通过 API Server 操作 Kubernetes 阅读全文
posted @ 2021-09-06 08:50 大魔王先生 阅读(321) 评论(0) 推荐(0)  编辑
 
Kubernetes环境搭建
摘要:前言 本篇是Kubernetes第二篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战。 Kubernetes系列文章: Kubernetes介绍 Kubernetes搭建方式介绍和对比 Minikube Minikube是一种可以在本地轻松运行Kubernetes的工具。Minikube在 阅读全文
posted @ 2021-09-02 08:47 大魔王先生 阅读(543) 评论(0) 推荐(3)  编辑
 
Kubernetes介绍
摘要:前言 从本周开始以后尝试开始每周两更,本篇原计划是Docker多机网路,该篇文章有些卡文,所以先更新篇Kubernetes文章,关于Docker系列文章后面应该就剩下两篇了,等后续Kubernetes使用篇讲完以后,再开始做一些Docker相关深层次思考。 Docker系列文章: 为什么要学习Doc阅读全文
posted @ 2021-08-18 08:47 大魔王先生 阅读(460) 评论(0) 推荐(0)  编辑
 
Docker Compose
摘要:前言 Docker系列文章: 此篇是Docker系列的第十一篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网 阅读全文
posted @ 2021-08-12 08:49 大魔王先生 阅读(797) 评论(0) 推荐(0)  编辑
 
Docker限制
摘要:前言 Docker系列文章: 此篇是Docker系列的第十篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络 阅读全文
posted @ 2021-08-06 08:56 大魔王先生 阅读(476) 评论(0) 推荐(2)  编辑
 
Docker隔离技术
摘要:前言 Docker系列文章: 此篇是Docker系列的第九篇,之前的文章里面或多或少的提到Docker的隔离技术,但是没有很清楚的去聊这个技术,但是经过这么多文章大家一定对Docker使用和概念有了一定的理解,接下来我们聊下底层一些技术,帮助大家解解惑,先从隔离技术开始吧。此外大家一定要按照我做的D 阅读全文
posted @ 2021-07-30 09:23 大魔王先生 阅读(761) 评论(0) 推荐(0)  编辑

 

Docker单机网络实战
摘要:前言 Docker系列文章: 此篇是Docker系列的第八篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上Docker单机网络下 基本命令 img 阅读全文
posted @ 2021-07-21 08:50 大魔王先生 阅读(430) 评论(2) 推荐(1)  编辑
 
Docker单机网络下
摘要:前言 Docker系列文章: 此篇是Docker系列的第七篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷DockerfileDocker单机网络上 Docker网络初探 后台方式启动一个 阅读全文
posted @ 2021-07-13 08:48 大魔王先生 阅读(557) 评论(6) 推荐(4)  编辑
 
Docker单机网络上
摘要:前言 Docker系列文章: 此篇是Docker系列的第六篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习DockerDocker基本概念Docker镜像基本原理Docker容器数据卷Dockerfile 网卡 网卡是一块计算机硬件。其特点是每一个网卡都有独立的MA 阅读全文
posted @ 2021-07-09 08:55 大魔王先生 阅读(335) 评论(2) 推荐(1)  编辑
 
Dockerfile
摘要:前言 Docker系列文章: 此篇是Docker系列的第五篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 Docker容器数据卷 什么是DockerFile Dockfile是一种被Docker程序解释的 阅读全文
posted @ 2021-06-28 08:47 大魔王先生 阅读(183) 评论(0) 推荐(0)  编辑
 
Docker容器数据卷
摘要:前言 Docker系列文章: 此篇是Docker系列的第四篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么要学习Docker Docker基本概念 Docker镜像基本原理 为什么需要容器数据卷 数据的持久化,假设MySQL的数据存储在自身的镜像当中,如果将镜像删除的话, 阅读全文
posted @ 2021-06-21 09:26 大魔王先生 阅读(415) 评论(0) 推荐(0)  编辑
 
Docker镜像基本原理
摘要:前言 Docker系列文章: 如果没有安装过Docker请参考本文最后部分,大家从现在开始一定要按照我做的Demo都手敲一遍,印象会更加深刻的,加油! 为什么学习Docker Docker基本概念 什么是镜像 镜像就是一个可执行独立运行的软件包。包含应用运行所必须的文件和依赖包; 镜像可以理解为类或 阅读全文
posted @ 2021-06-15 08:48 大魔王先生 阅读(738) 评论(1) 推荐(1)  编辑
 
Docker基本概念介绍
摘要:前言 Docker和Kubernetes是我最近在学习的内容,本来是去年的目标,由于工作比较忙,没有时间去学习,今年剩下的半年时间我会好好系统学习下相关的内容,最后在学习下Devops相关理念,希望最终能形成自己的一套思想; Docker系列文章: 为什么要学习Docker Docker基本组成 镜阅读全文
posted @ 2021-06-09 12:06 大魔王先生 阅读(567) 评论(0) 推荐(2)  编辑
 
3W法则-学习Docker
摘要:一、前言 5W1H法则是在一次面试中学习到的,后来在工作也开始使用这种东西,虽然最后没去那家公司,但是也是学习到了,关注开这些东西以后,也发现了一些简化版的3W法则,最近公司也要搞Docekr,所以写篇博客来说说为什么要学习Docker。 二、What Docker 什么是Docker?Docker 阅读全文
posted @ 2019-06-21 08:42 大魔王先生 阅读(1317) 评论(1) 推荐(0)  编辑

脚本宝典总结

以上是脚本宝典为你收集整理的Kubernetes-Service介绍-服务发现全部内容,希望文章能够帮你解决Kubernetes-Service介绍-服务发现所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。