kubernetes集群发布Pod端口

  

kubernetes集群发布Pod端口

  

创建测试环境

  
 <代码> vi nginx.yaml
  
  apiVersion:应用程序/v1
  :部署
  元数据:
  名称:my-nginx
  规范:
  选择器:
  matchLabels:
  运行:my-nginx
  副本:2
  模板:
  元数据:
  标签:
  运行:my-nginx
  规范:
  容器:
  ——名称:my-nginx
  图片:nginx
  港口:
  - containerPort: 80
   
  

验证服务启动

  
 <代码> [root@kubm-02 ~] # kubectl豆荚
  重启名字就绪状态的年龄
  我- nginx - 756 fb87568 jwgp8 1/1运行0 64年代
  我- nginx - 756 fb87568 vshxc 1/1运行0 64年代
  (root@kubm-02 ~) #  
  
 <代码> [root@kubm-02 ~] # kubectl得到豆荚- l运行=my-nginx - o宽
  姓名就绪状态重启年龄IP节点节点准备盖茨提名
  我- nginx - 756 fb87568 jwgp8 1/1运行0 2 m12 10.244.3.101 kubnode-01 & lt; none>& lt; none>
  我- nginx - 756 fb87568 vshxc 1/1运行0 2 m12 10.244.4.123 kubnode-02 & lt; none>& lt; none>  
  

检查Pod的IP地址:

  
 <代码> [root@kubm-02 ~] # kubectl得到豆荚- l=my-nginx - o yaml | grep podIP运行
  podIP: 10.244.3.101
  podIP: 10.244.4.123  
  

创建服务   

Kubernetes服务从逻辑上定义了运行在集群中的一组,这些Pod提供了相同的功能。当每个服务创建时,会被分配一个唯一的IP地址(也称为clusterIP)。这个IP地址与一个服务的生命周期绑定在一起,当服务存在的时候它也不会改变。可以配置圆荚体使它与服务进行通信,Pod知道与服务通信将被自动地负载均衡到该服务中的某些上仓。

  

创建nginx服务

  

kubectl暴露命令为2个Nginx副本创建一个服务:

  
 <代码> [root@kubm-02 ~] # kubectl公开部署/my-nginx
  服务/my-nginx暴露
   
  

验证服务启动

  
 <代码> [root@kubm-02 ~] # kubectl svc
  名字类型集群ip外部ip端口(年代)
  my-nginx ClusterIP 10.245.206.203 & lt; none>80/TCP 2 m36s  
  

查看详细信息

  
 <代码> root@kubm-02 ~ # kubectl svc my-nginx描述
  名称:my-nginx
  名称空间:默认
  标签:& lt; none>
  注释:& lt; none>
  选择器:=my-nginx运行
  类型:ClusterIP
  知识产权:10.245.206.203
  端口:& lt; unset>80/TCP
  发送:80/TCP
  端点:10.244.3.101:80 10.244.4.123:80
  会话关联:没有
  事件:& lt; none>  
  
 <代码> kubectl描述阿宝my-nginx #查看my-nginx pod的详细状态
  kubectl描述rs my-nginx #查看my-nginx复制集的详细状态
  kubectl描述部署my-nginx #查看my-nginx部署的详细状态 
  

访问服务   

Kubernetes支持两种主要的服务发现模式,环境变量和DNS。前者在单个节点上可用使用,然而后者必须使用kube-dns集群插件。

  
 <代码> [root@kubm-02 ~] # kubectl豆荚
  重启名字就绪状态的年龄
  我- nginx - 756 fb87568 jwgp8 1/1 0 23 m
  我- nginx - 756 fb87568 vshxc 1/1 0 23 m
  
  (root@kubm-02 ~) # kubectl exec - nginx - 756 fb87568 jwgp8——printenv | grep服务
  KUBERNETES_SERVICE_HOST=10.245.0.1
  KUBERNETES_SERVICE_PORT=443
  KUBERNETES_SERVICE_PORT_HTTPS=443
   
  

DNS解析测试

  

Kubernetes提供DNS,如果它在集群中处于运行状态,可以通过如下命令来检查:

  
 <代码> [root@kubm-02 ~] #=kube-system kubectl得到服务kube-dns——名称空间
  名字类型集群ip外部ip端口(年代)
  kube-dns ClusterIP 10.245.0.10 & lt; none>现年53岁的53/UDP/TCP, 9153/TCP 11 d  
  

验证服务解析

  
启动一个安装有卷曲的镜像
  
 <代码> [root@kubm-02 ~] # kubectl运行curl——图像=径向/busyboxplus: curl - - tty  
  
测试解析my-nginx h5> <代码> [root@curl - 6 - bf6db5c4f - 96 - nhg:/] nslookup my-nginx美元   服务器:10.245.0.10《====dns服务器   地址1:10.245.0.10 kube-dns.kube-system.svc.cluster.local      名称:my-nginx   地址1:10.245.206.203 my-nginx.default.svc.cluster.local《====my-nginx服务的集群IP地址   [root@curl - 6 - bf6db5c4f - 96 nhg:/) 美元   

旋度测试

  
 <代码> [root@curl - 6 - bf6db5c4f - 96 - nhg:/)旋度my-nginx美元
  
  ……
  & lt; h2>欢迎nginx ! & lt;/h2>
  ……
   
  
 <代码> [root@curl - 6 - bf6db5c4f - 96 - nhg:/)旋度10.245.206.203美元
  ……
  & lt; h2>欢迎nginx ! & lt;/h2>
  …

kubernetes集群发布Pod端口