1. nodePort 外部机器可访问的端口. 比如一个Web应用需要被其他用户访问,那么需要配置type=NodePort,而且配置nodePort=,那么其他机器就可以通过浏览器访问scheme://node:30001访问到该服务,例如http://node:30001. 例如MySQL数据库可能不需要被外界访问,只需被内部服务访问,那么不必设置NodePort apiVersion: v1 kind: Service metadata: name: nginx-service spec:…
刚接触 k8s 涉及到端口到内容较多,容易混淆,这里整理如下: 目录 nodePort port targetPort containerPort 参考文章 nodePort nodePort 提供了集群外部客户端访问 Service 的一种方式,nodePort 提供了集群外部客户端访问 Service 的端口,通过 nodeIP:nodePort 提供了外部流量访问k8s集群中service的入口. 比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type…
port The port that the service is exposed on the service's cluster ip (virsual ip). Port is the service port which is accessed by others with cluster ip. 即,这里的port表示:service暴露在cluster ip上的端口,<cluster ip>:port 是提供给集群内部客户访问service的入口. nodePort On top…
一.kubectl管理集群中deployment资源与service服务 1.相关参数 kubectl edit 编辑服务器侧资源 kubectl replace 替换,使用 yaml 配置文件来替换正在运行中的配置参数 kubectl patch 部分更新资源相关信息 kubectl apply 使用文件或者标准输入更改配置信息 kubectl scale 重新设定 Deployment/ReplicaSet/RC/Job 的 size kubectl autoscale Deployment…
1. nodePort 外部机器可访问的端口. 比如一个Web应用需要被其他用户访问,那么需要配置type=NodePort,而且配置nodePort=30001,那么其他机器就可以通过浏览器访问scheme://node:30001访问到该服务,例如http://node:30001. 例如MySQL数据库可能不需要被外界访问,只需被内部服务访问,那么不必设置NodePort 2. targetPort 容器的端口(最终的流量端口).targetPort是pod上的端口,从port和nodeP…
先看举例: k8s集群中跑着一个tomcat服务,tomcat容器expose的端口为8080 apiVersion: v1 kind: Service metadata: name: tomcat-service spec: type: NodePort ports: - port: targetPort: nodePort: selector: name: tomcat-pod 其中 1)targetPort:8080,就是tomcat容器expose的端口 2)nodePort:30001…
系列目录 在编排kubernetes时,Deployment的Pod项有containerPort,Service文件里的port,targetPort, nodePort,这些pod概念有些时候可能会让人感到非常困惑,这里通过示例来简单介绍各种port的含义 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: tomcat-deployment spec: replicas: 3 template: metadata:…
目录 不同类型的IP Pod IP Cluster IP 不同类型的Port port nodePort TargetPort containerPort hostPort Endpoint Endpoint Controller 定义 Endpoint 使用Endpoint引用外部服务 创建ExternalName类型的服务 当新手刚学习k8s时候,会被各种的IP 和port 搞晕,其实它们都与k8s service的访问有密切关系,梳理它们之间的差异可以更好了解k8s的服务访问机制. 不同类…
 个人K8s还在学习中,相关博客还没有写,准备学第二遍再开始学,发现这篇文章挺好,先转载一下. 原创: 白明的赞赏账户 下面是一个示意图,可帮助你调试Kubernetes Deployment(你可以在此处下载它的PDF版本 https://tonybai.com/wp-content/uploads/k8s-deployment-troubleshooting/troubleshooting-kubernetes.pdf). 当你希望在Kubernetes中部署应用程序时,你通常会定义三个组件…
kubernates hello world1 关闭防火墙 $systemctl disable firewalld $systemctl stop firewalld 2 安装etcd 和 kubernates $yum install -y etcd kubernates 3 修改配置 docker /etc/sysconfig/dockerOPTIONS='--registry-mirror=http://06ec3c30.m.daocloud.io --selinux-enabled=f…
K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更加原生,同时提供了更强大的机制实现资源调度,自动 管理容器生命周期,负载均衡,高可用等底层功能,使开发者可以专注于开发应用. Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernete…
1.浅析整个监控流程 heapster以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.网络流量等,然后将这些数据输出到外部存储,如InfluxDB,最后就可以通过相应的UI界面显示出来,如grafana. 另外heapster的数据源和外部存储都是可插拔的,所以可以很灵活的组建出很多监控方案,如:Heapster+ElasticSearch+Kibana等等. 2.创建k8s资源对象 使用官方提供的yml文件有一些小问题,请参考以下…
准备工作 首先要准备一个1.5+版本的Kubernetes,并且开放了API Server的http访问端口8080.本文使用的是1.10的版本,没有环境的可以参考我上一篇文章<在CentOS 7+ 安装Kubernetes入门(单Master)>进行安装. 使用http://master-ip:8080/apis检查API是否能正常访问,这里的master-ip是192.168.132.132. 如果地址无法访问,需要设置Kubernetes开通http访问端口8080.    1. 在Ma…
1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.network.filesystem等,然后将这些数据输出到外部存储(backend),如InfluxDB,最后再通过相应的UI界面进行可视化展示,如grafana. 另外heapster的数据源和外部存储都是可插拔的,所以可以很灵活的组建出很多监控方案,如:Heapster+ElasticSearch+Ki…
本文收录在容器技术学习系列文章总目录 1.认识service 1.1 为什么要使用service Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结束. 通过 ReplicationController 能够动态地创建和销毁 Pod(例如,需要进行扩缩容,或者执行 滚动升级). 每个 Pod 都会获取它自己的 IP 地址,即使这些 IP 地址不总是稳定可依赖的. 这会导致一个问题:在 Kubernetes 集群中,如果一组 Pod(称为 bac…
Prometheus介绍 Prometheus是一个最初在SoundCloud上构建的开源监控系统 .它现在是一个独立的开源项目,为了强调这一点,并说明项目的治理结构,Prometheus 于2016年加入CNCF,作为继Kubernetes之后的第二个托管项目. 特点 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型 PromQL,有一个灵活的查询语言 不依赖分布式存储,只和本地磁盘有关 通过 HTTP 的服务拉取时间序列数据 也支持推送的方式来添加时间序列数据 通过服务发…
Helm介绍 在Kubernetes中部署容器云应用(容器或微服务编排)是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具.通过Helm能够帮助开发者定义.安装和升级Kubernetes中的容器云应用.同时,也可以通过Helm进行容器云应用的分享. Helm的整体架构如下图(图片来源-Kubernetes中文社区)所示: Helm架构由Helm客户端.Tiller服务器端和Chart仓库所组成:Tiller部署在Kubernetes中,Helm客…
讲述如何通过离线的方式安装Kubernetes,主要用于对Kubernetes的研究学习,不建议在生产环境使用,安装包获取地址: 链接:https://pan.baidu.com/s/1nX5_memy8TKrnw1auOsB8Q 密码:zsw7 运行环境 名称 操作系统 配置 IP master CentOS 7 4核2G内存 192.168.132.130 node CentOS 7 4核8G内存 192.168.132.136 服务器的配置建议给高一点,可以避免大部分问题. Master安…
1.概述 Service也是Kubernetes里的最核心的资源对象之一,Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个“微服务”,之前我们所说的Pod.RC等资源对象其实都是为这节所说的“服务”------Kubernetes Service作“嫁衣”的.图1.12显示了Pod.RC与Service的逻辑关系. Pod.RC与Service的关系 从图中我们看到,Kubernetes的Service定义了一个服务的访问入口地址,前端的应用(Pod)通过这个入…
本文收录在容器技术学习系列文章总目录 一.介绍 Kubernetes Dashboard是Kubernetes集群的基于Web的通用UI.它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身. 二.搭建dashboard 1.编写yaml文件 借鉴GitHub,修改了image的下载地址和pod的一些配置 [root@master ~]# vim dashboard.yaml # Filename: dashboard.yaml # Revision: 1.0 # Date:…
什么是ingress Ingress是授权入站连接到达集群服务的规则集合. 从外部流量调度到nodeprot上的service 从service调度到ingress-controller ingress-controller根据ingress中的定义(虚拟主机或者后端的url) 根据虚拟主机名调度到后端的一组pod中 Ingress资源定义 kubectl explain ingress.spec rules 定义成虚拟主机调度还是url调度 backend  知道后端主机 部署ingress…
写在开始之前,在开始之前我们需要了解几个概念: 1.什么是持续集成? 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. 2.什么是 kubernetes? Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的…
一.关于kong的详细内容这里不再赘述,可以查看官网. kong升级到1.0以后功能越来越完善,并切新版本的kong可以作为service-mesh使用,并可以将其作为kubernetes的ingress-controlor.虽然在作为service-mesh方面与istio还有差异,但是kong的发展前景很好,kong-ingress-controlor可以自动发现kubernetes集群里面的ingress服务并统一管理.所以我们的测试集群正在试用kong,这里先记录一下部署过程. 二.部署…
类别 名称 资源对象 Pod.ReplicaSet.ReplicationController.Deployment.StatefulSet.DaemonSet.Job.CronJob.HorizontalPodAutoscaling 配置对象 Node.Namespace.Service.Secret.ConfigMap.Ingress.Label.ThirdPartyResource. ServiceAccount 存储对象 Volume.Persistent Volume 策略对象 Sec…
https://www.kubernetes.org.cn/3808.html?tdsourcetag=s_pcqq_aiomsg 1:服务器信息以及节点介绍 系统信息:centos1708 minimal    只修改IP地址 主机名称 IP 备注 node01 192.168.150.181 master and etcd rode02 192.168.150.182 master and etcd node03 192.168.150.183 master and etcd node04…
从集群外部访问pod或service pod 在Kubernetes中,创建.调度和管理的最小单位是pod而不是容器.pod代表着一个运行着的工作单元.一般情况下,每个pod中只有一个容器(原因是为了避免容器之间发生端口冲突).如果几个容器是紧耦合的,也可以放在同一个pod中,但一定要避免同一个pod下容器之间发生端口冲突.Kubernetes承担了pod与外界环境的通信工作. Pod和Service是Kubernetes集群范围内的虚拟概念.集群外的客户端系统无法通过Pod的IP地址或者Ser…
本文完全是根据二进制部署kubernets集群的所有步骤,同时开启了集群的TLS安全认证. 环境说明 在下面的步骤中,我们将在三台CentOS系统的物理机上部署具有三个节点的kubernetes1.7.0集群. 角色分配如下: 镜像仓库:172.16.138.100,域名为 harbor.suixingpay.com,为私有镜像仓库,请替换为公共仓库或你自己的镜像仓库地址. Master:172.16.138.171 Node:172.16.138.172,172.16.138.173 注意:1…
TL;DR; ***,***,***,重要的事情说三次.如果不会***,这篇文章就没有看下去的意义.作为一个技术人员如果不愿意折腾,很难有所作为.作为一个单纯的技术人员,最好把心思放在技术上,做到真正的***.这里不会教如何***,请大家自行摸索. 服务器 名称 操作系统 配置 IP master CentOS 7 4核2G内存 192.168.132.132 node1 CentOS 7 2核2G内存 192.168.132.130 Master安装 1. 修改主机名为master. host…
1. 下载dashboard文件: curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml 2. 修改文件: kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard n…