2019/08/07 kubernetes集群应用(02)

pod属于基础架构容器,拥有网络协议栈,ip端口
看上面的容器有时候地址是看不到的
在这里插入图片描述在这里插入图片描述
基础架构容器就显示command为pod在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
另外的节点上的pod也一样在这里插入图片描述在这里插入图片描述
k8s不做dnat暴露,直接基于地址访问即可,需要做dnat,除了proxy级别的时候在这里插入图片描述在这里插入图片描述
deployment示例:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:

Unique key of the Deployment instance

name: deployment-example
spec:

2 Pods should exist at all times.

replicas: 2
template:
metadata:
labels:
# Apply this label to pods and default
# the Deployment label selector to this value
app: nginx
spec:
containers:
- name: nginx
# Run this image
image: nginx:1.12(docker.io/mageedu/bbox.httpd)

做一个service实例,可以放在之前的文件里也可以放在另外 文件里在这里插入图片描述在这里插入图片描述
-s指明访问接口,master的8080,create创建 -f指明配置文件
get查看服务
在这里插入图片描述
查看iptables规则在这里插入图片描述在这里插入图片描述在这里插入图片描述
pod能访问,因为serivce在pod节点上,master访问不了
在这里插入图片描述
kill掉以后,可能自己会起来,只不过ID会不同在这里插入图片描述

访问不了可能路由有问题,把一个podkill掉在这里插入图片描述
会自动起来在这里插入图片描述
调度到本机上就正常,调度到其他主机上就不正常在这里插入图片描述
跨主机的路由地址可能有些问题
从另外的pod访问另外的主机
在这里插入图片描述在这里插入图片描述
需要找一个合适的客户端去访问在这里插入图片描述在这里插入图片描述

对k8s集群,即便每个节点上的容器,彼此间互相访问,没有任何问题,因为得到的地址是可路由地址,但是在集群外访问是不可以的
如果node节点本身有公网地址,把对应的容器端口暴露出来了(刚才的3320),如果有公网IP用公网ip访问这个端口是没有什么问题的,私有ip访问不到,是属于集群的,而且是分配的特殊网段
service地址也是集群私有的

在这里插入图片描述

**使用docker新版的另一资源ingress
**https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.15/#configmap-v1-core
在这里插入图片描述
ingress相当于 把master节点主机物理地址比如172.16,0.69 把这个地址的8080端口某个url.映射成内部的某个服务地址,haproxy可以实现所谓的反代功能,反代时也能基于所谓的4层协议来进行
可以理解非标准服务的端口,基于4层协议,用的非http协议的端口。通过4层也能照样向外进行输出
因此如果给master节点一个公网地址,让客户端直接访问公网地址,让这个公网地址,基于所谓的反代方式,url反代方式,反代至两个服务上,给每个服务定义一个专用的url
/bbox
如果用户请求了master公网地址,或者是一个公网地址,解析了很多主机名
比如访问/bbox.magedu.com/跟的时候,把这个跟和service的/bbox映射起来,访问跟的时候,就相当于访问内部私网地址的service ip之上的bbox,这就是内外的url映射
在这里插入图片描述
跟之前nginx类似,两个web服务器,需要反代的时候,前面放nginx即可,nginx反代的时候,前后的url可以不一样在这里插入图片描述
跟这边的道理一样
在这里插入图片描述
bbox对应的其实就是service
ingress的意思就是把内部的某个service,定义出在集群上专用的url,把url和它之间建立起映射关系,
也可以公网地址只有一个,让内网地址内外都是要url来进行映射
1.1.1.1、Bbox访问的是内网的bbox,对应的就是service
在这里插入图片描述
k8s在企业真正使用的时候,也不是把所有都容器化的,不必要使用ingress
对k8s来讲,整个地址是纯粹只能在集群内使用,即便定义成service了,service地址也只是仅限内部使用的是有地址,因此在集群外部或内部,要访问应用的时候是做不到的,除非定义ingress让内外建立映射关系
可以想象成把master的某个url映射成某个service上去,master地址可以对外通信
所以master是一个总的调度器入口
在这里插入图片描述在这里插入图片描述
基于url映射的方式,主机名跟的映射,而不是专门的url映射
https://github.com/JohnMorales/kubernetes-dashboard
实现了用api 访问不再使用yaml格式的文件,而是可以使用图形界面,来尝试启动pod,定义service
https://github.com/kubernetes-retired/kube-ui这个更好

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
站点是google托管的镜像,需要vpn在这里插入图片描述
**保存过去10个历史副本 revisionHistorylimit
**在这里插入图片描述
镜像文件在gcr,.io google containers 是访问不到的
在这里插入图片描述
有人把这个镜像文件拖下来,导入到dockerhub了,kubernetest-dashboard在这里插入图片描述
作为自己部署应用时候的所使用的镜像文件
在这里插入图片描述
https://hub.docker.com/r/ist0ne/kubernetes-dashboard-amd64在这里插入图片描述
apiserver,也要修改,否则有可能会失败在这里插入图片描述
手动把这个镜像拖下来
node1,node2都操作
在这里插入图片描述
没有运行可以直接创建,创建以后调度到node2上
在这里插入图片描述
只运行了一个pod在这里插入图片描述
表示启动 镜像文件仍然是失败的
在这里插入图片描述
之前改的地方有问题
在这里插入图片描述
master是主机名在容器内解析不了这个主机,容器有自己的hosts文件,跟节点没有关系,应该改成地址在这里插入图片描述
在这里插入图片描述
把刚才的部署delete,重新create
在这里插入图片描述
调度到node1了,就去看node1的在这里插入图片描述
访问对应的9090就可以进行访问了
cluster-info查看集群的状态信息

在这里插入图片描述在这里插入图片描述
基于物理地方访问,就可以在外部进行访问,自动映射到内部去在这里插入图片描述
可以创建deployment在这里插入图片描述
dashboard可以理解为kubernetes的附件addon

两个要点,
1.镜像文件要直接从能直接访问的registry来获取
2.指明apiserver地址,因为没有部署dns服务,不能自己发现master在哪里,不能使用主机名

还可以部署监控系统在这里插入图片描述在这里插入图片描述
每个节点来讲,4194端口可以被直接访问,cAdvisor是内建的只能监控一个资源,在这里插入图片描述
集成起来统一看就使用heapster在这里插入图片描述在这里插入图片描述在这里插入图片描述
各种状态是每一个节点独立的
每一个节点自己有一个cAdvisor,想看节点上有什么资源,用cAdvisor即可,4194端口,k8s集群node有很多,不可能一个个看
可以找一个节点,通过每一个主机的cAdvisor,把这些信息搜集到一起,需要存起来,时间序列存储,通常用influxDB,收集想看,heapster收集器手机各节点的信息存储到influxDB中
想要看还需要一个专门的查看器,grafana
每个主机上有一个监控的插件,展示接口是cAdvisor
heapster用于连接各cadvisor收集器,把数据收集起来放起来,统一放在influxDB
在这里插入图片描述
gcr你是访问不到的https://github.com/kubernetes-retired/heapster
用influxdb进行部署的有三个文件在这里插入图片描述在这里插入图片描述
修改镜像文件地址
把镜像拖下来
在这里插入图片描述在这里插入图片描述在这里插入图片描述
还有heapster在这里插入图片描述
两个节点都需要pull,因为不确定会部署到哪个节点上在这里插入图片描述
source 指明kubernetes的集群的地址和influxdb的地址,这里都是基于kubedns名字解析来访问的,有可能会出错,因为没有服务发现,服务注册的功能,
先测试一下
在这里插入图片描述
node2上就运行了pod,容器在这里插入图片描述
查看日志,influxdb已经启动起来了在这里插入图片描述
查看pod地址在这里插入图片描述没有服务注册和服务发现的功能在这里插入图片描述
修改sink在这里插入图片描述
两个节点都拖下来在这里插入图片描述
创建heapsterpod在这里插入图片描述在这里插入图片描述
在node1节点上,已经启起来了在这里插入图片描述
从各个节点的cadvisor获得数据往这里存了

还需要展示在这里插入图片描述
两个节点都pull一下拖一下导入到registry在这里插入图片描述在这里插入图片描述在这里插入图片描述
先试一下在这里插入图片描述
cluster info可以看到运行的信息
influxdb默认监听8086端口
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
数据源要指定influxdb格式在这里插入图片描述在这里插入图片描述
数据源就添加好了

使用k8s的时候,就是定义一个k8s的文件,里面deployment,service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值