Kubernetes通过Service访问Pod集群
简介Service在Kubernetes中主要是为POD固定化IP 来访问POD,当Pod发生异常重新创建时,Pod还会与service进行互联,Pod的IP的不固定,但是Service的IP时固定的。
简称:SVC,主要对Pod中容器的负载均衡,并且绑定SVC指定IP地址方便其他容器进行调用;
由于Pod都是内部的私有地址不能正常给客户端提供访问,通过service服务发现暴露给客户端,客户端根据暴露的地址+端口来轮询访问内部的Pod;
Service作用通过label、selector进行关连实现 服务发现
通过Service实现Pod的 负载均衡
四层转发
Service类型Cluster IPService通过Cluster内部的IP对外提供服务,只有Cluster内的节点和Pod可访问,这是默认的Service类型,适用于前端服务访问后端服务,比如前端nginx集群要访问后端的php来解析动态网页,这个时候php就可以使用内部的Service访问
默认分配一个稳定的IP,只能在集群内部访问(同Namespace内的Pod)
1234567891011121314151617[ ...
Kubernetes部署持久化数据库NFS+MySQL
部署NFS安装nfs服务1[root@pool1 ~]# yum -y install nfs-utils rpcbind
创建共享目录1[root@pool1 ~]# mkdir /data/nfs_data/mysql_data
编写共享配置文件12[root@pool1 ~]# vi /etc/exports/data/nfs_data/mysql_data *(rw,sync)
启动服务1[root@pool1 ~]# systemctl start nfs nfs-utils rpcbind
node节点挂载nfs共享目录1234567[root@pool2 ~]# showmount -e 10.99.2.155Export list for 10.99.2.155:/data/nfs_data/mysql_data *[root@pool2 ~]# mkdir /data/nfs_data/mysql_data -p[root@pool2 ~]# mount -t nfs 10.99.2.155:/data/nfs_data/mysql_data/ /data/nfs_d ...
Kubernetes部署nginx+php
目录
1234567891011121314[root@pool1 data]# tree├── v1│ ├── data│ │ ├── index.html│ │ └── index.php└── yaml ├── dockerfile ├── namespace.yaml ├── nginx-cm.yaml ├── nginx-deploy.yaml ├── nginx-svc.yaml ├── php-deploy.yaml └── php-svc.yaml
构建php镜像123456789101112[root@pool1 yaml]# vi dockerfileFROM centos:7MAINTAINER SeMaikRUN yum makecacheRUN yum -y install php-fpm php php-gd php-mysql php-mbstring php-xml php-mcrypt php-imap php-odbc php-pear php-xmlrpc RUN sed -i ...
Dokcer+Prometheus+Grafana监控
介绍Prometheus需要多种第三方工具来收集数据,如接下来要使用的cAdvisor和node-exporter,最终Prometheus使用Grafana进行监控数据的展示Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。
Prometheus 的优点
非常少的外部依赖,安装使用超简单
已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等
服务自动化发现
直接集成到代码
设计思想是按照分布式、微服务架构来实现的
Prometheus 的特性
自定义多维度的数据模型
非常高效的存储 平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大 ...
Docker-Scope容器监控
scope容器监控的下载使用下载scope12[root@localhost ~]# curl -L git.io/scope -o /usr/local/bin/scope[root@localhost ~]# chmod +x /usr/local/bin/scope
运行123[root@localhost ~]# scope launchWeave Scope is listening at the following URL(s): * http://172.16.1.16:4040/
Docker跨主机容器间网络通信
主机信息
hostname
IP
服务
Server1
172.16.1.16
Docker/consul
Server2
172.16.1.17
Docker
实验目的server1:运行2个容器bbox1和bbox2server2:运行2个容器bbox3和bbox4net1(overlay网络):bbox1和bbox4使用通信net2(overlay网络):bbox2和bbox3使用通信,并手动指定网段为10.10.10.0,且bbox2使用10.10.10.100/24地址,bbox3使用10.10.10.100/24地址同时bbox1也可与net2网络的容器通信
部署overlay环境Pull consul镜像1[root@server1 ~]# docker pull progrium/consul
放行防护墙Server1和Server2
1234567891011firewall-cmd --add-port=2733/tcp --permanentfirewall-cmd --add-port=2733/ ...
Docker-Commpose yml文件解析
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647version: "3" # 指定docker-compose语法版本services: # 从以下定义服务配置列表 server_name: # 可将server_name替换为自定义的名字,如mysql/php都可以 container_name: container_name # 指定实例化后的容器名,可将container_name替换为自定义名 image: xxx:latest # 指定使用的镜像名及标签 build: # 如果没有现成的镜像,需要自己构建使用这个选项 context: /xxx/xxx/Dockerfile # 指定构建镜像文件的路径 dockerfile: .... # 指定Dockerfile文件名,上一条指定,这一条就不要了 ports: - ...
Docker-Commpose命令
注意:以下都需要在docker-compose.yml所在目录下执行,且名字就是默认的docker-compose.yml,否则需要加上 -f yml地址例: docker-compose -f /usr/docker/docker-compose1.yml ps
docker-compose pull:拉取服务里定义的镜像
docker-compose ps :列出project所有运行容器(容器名 = 目录名_service_index index表示容器序数,从1开始)
docker-compose kill:强制停止启动的容器
docker-compose build:构建/重新构建所有镜像
当某个service的Dockerfile改变时,即镜像发生改变需要重新生成时,如果仅仅是docker-compose.yml改变,只需要up重新启动project即可
docker-compose start [serviceName]:启动已存在但停止的所有service
(可选)serviceName:表示启动某一个service
docker-compose up ...
Docker-Commpose 介绍与安装
docker-compose介绍docker-compose是一个容器中的服务编排工具docker镜像在创建之后,往往需要自己手动pull来获取镜像,然后执行docker run命令来运行。当服务需要用到多种容器,容器之间又产生了各种依赖和连接的时候,部署一个服务的手动操作是令人感到十分厌烦的。dcoker-compose技术,就是通过一个.yml配置文件,将所有的容器的部署方法、文件映射、容器连接等等一系列的配置写在一个配置文件里,最后只需要执行docker-compose up命令就会像执行脚本一样的去一个个安装容器并自动部署他们,极大的便利了复杂服务的部署。
工作原理Docker Compose 将所管理的容器分为三层,分别是工程(project)、服务(service)、容器(container)
服务(service) :一个应用的容器,实际上可以包括若干(多个)运行相同镜像的容器实例。
工程(project) :由一组关联的应用容器组成一个完整业务单元,在docker-compose.yml文件中定义。
docker-compose运行的目录下的所有文件(docker- ...
Docker+NFS共享数存储
主机信息
hostname
IP
服务
nfs-server
172.16.1.16
Docker+NFS
nfs-client
172.16.1.17
Docker
部署NFS1[root@nfs-server ~]# yum -y install nfs-utils rpcbind
创建共享目录1[root@nfs-server ~]# mkdir -p /data/nfs/docker
将共享目录写入到配置文件12345[root@nfs-server ~]# vim /etc/exports/data/nfs/ *(rw,no_root_squash,sync)[root@nfs-server ~]# exportfs -r[root@nfs-server ~]# systemctl start rpcbind nfs-server[root@nfs-server ~]# systemctl enable rpcbind nfs-server
验证共享123[root@nfs-cl ...
