问题现象 发现某个service的后端endpoint一会显示有后端,一会显示没有.显示没有后端,意味着后端的address被判定为notready. endpoint不正常的时候: [root@localhost /]# kubectl get ep --namespace cxqt npth-price -o yaml apiVersion: v1 kind: Endpoints metadata: ... uid: 9ed3abd1-8eff-11e7-b345-f8758831889c…
一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络. 在k8s中,提供相同服务的一组pod可以抽象成一个service,通过service…
一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络. 在k8s中,提供相同服务的一组pod可以抽象成一个service,通过service…
一.  kube-proxy 和 service  kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络. 在k8s中,提供相同服务的一组pod可以抽象成一个service,通过service…
这是一本书!!! 一本写我在容器生态圈的所学!!! 重点先知: 1. centos 7.6安装优化 2. k8s 1.15.1 高可用部署 3. 网络插件calico 4. dashboard 插件 5. metrics-server 插件 6. kube-state-metrics 插件 原文分享:http://note.youdao.com/noteshare?id=c9f647765493d11099a939d7e5e102c9&sub=A837AA253CA54660AABADEF435…
1.基本配置 基本配置.内核升级.基本服务安装参考https://www.cnblogs.com/dukuan/p/10278637.html,或者参考<再也不踩坑的Kubernetes实战指南>第一章第一节 2.Kubernetes组件安装 所有节点安装Kubeadm.Kubectl.kubelet -.x86_64 kubectl--.x86_64 kubelet--.x86_64 所有节点启动Docker [root@k8s-master01 ~]# systemctl enable -…
1.k8S核心资源管理方法 1.1.陈述式资源管理方法 1.1.1.管理名称空间资源 1.1.1.1.查看名称空间 [root@hdss7-21 ~]# kubectl get namespace NAME STATUS AGE default Active 6d12h kube-node-lease Active 6d12h kube-public Active 6d12h kube-system Active 6d12h [root@hdss7-21 ~]# kubectl get ns N…
20.0.0.200    10.0.0.200 bs-k8s-master01 管理节点 2c2g 20.0.0.201    10.0.0.201 bs-k8s-master02 管理节点 2c2g 20.0.0.202    10.0.0.202 bs-k8s-master03 管理节点 2c2g 20.0.0.203    10.0.0.203 bs-k8s-node01 业务节点 2c2g 20.0.0.204    10.0.0.204 bs-k8s-node02 业务节点 2c2g…
目录 1.部署traefik 2.准备资源配置清单 3.应用资源配置清单 4.检查创建资源 5.解析域名 6.配置反向代理 7.浏览器访问 部署traefik 在HDSS7-200.host.com上 [root@hdss7- k8s-yaml]# docker pull traefik:v1.7.2-alpine [root@hdss7- k8s-yaml]# docker images |grep traefik [root@hdss7- k8s-yaml]# docker tag add5…
一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9bpVKOry 项目资源分配(数据库.中间件除外): 二.部署镜像仓库 1) 部署docker-compose,然后参考下文部署docker. $ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/dock…
上一章我们测试了在集群内部解析service名称, 下面我们测试在集群外部解析: 根本解析不到,因为我们外部用的dns是10.4.7.11,也就是我们的自建bind dns,这个DNS服务器上也没有响应的搜索域. 如何能让集群外部访问nginx-dp? 这里有两种服务暴露方式:修改工作模式,在kube-proxy中修改,并重启 1.使用nodeport方式,但是这种方式不能使用ipvs,只能使用iptables,iptables只能使用rr调度方式.原理相当于端口映射,将容器内的端口映射到宿主机…
1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G Keepalived保证apiserever服务器的IP高可用 Haproxy实现apiserver的负载均衡  2. 节点信息 目前测试为 6 台虚拟机,etcd采用 rpm 安装.kubernetes 使用二进制安装,使用 systemd 来做管理,网络组件采用 flannel,Master 实…
1.前言 之前部署的coredns实现了k8s的服务在集群内可以被自动发现,那么如何使得服务在k8s集群外被使用和访问呢? 使用nodeport星的Service:此方法只能使用iptables模型,无法使用kube-proxy的ipvs模型 使用Ingress资源(本教程使用):Ingress只能调度并暴露7层应用,特指http和https协议 Ingress是k8s API的标准资源类型之一,也是一种核心资源,它其实就是一组基于域名和URL路径,把用户的请求转发至指定Service资源的规则…
高可用 前面我们课程中的集群是单 master 的集群,对于生产环境风险太大了,非常有必要做一个高可用的集群,这里的高可用主要是针对控制面板来说的,比如 kube-apiserver.etcd.kube-controller-manager.kube-scheduler 这几个组件,其中 kube-controller-manager 于 kube-scheduler 组件是 Kubernetes 集群自己去实现的高可用,当有多个组件存在的时候,会自动选择一个作为 Leader 提供服务,所以不…
一.Docker实战 Docker: 基础介绍 [一] Docker:Docker 性质及版本选择 [三] Docker:网络及数据卷设置 [四] Docker:手动制作镜像 [五] Docker:dockerfile自动构建镜像 [六] Docker:常用命令大全 [七] Docker:dockerfile构建php项目 [八] Docker:dockerfile镜像的分层 [九] Docker:容器间互联的应用zabbix监控项目 [十] Docker:私有仓库registry [十一] D…
地址: 链接:https://pan.baidu.com/s/1bwEUZTCVzqM3mGjrlISbcg 提取码:r1kx 目录: 目录: │ 1-1.kubernetes理论教程 - 云原生技术的前世今生.mp4│ 1-2.kubernetes理论教程 - K8S初体验.mp4│ 1-3.kubernetes理论教程 - K8s工作负载原理剖析和实践.mp4│ 1-4.kubernetes理论教程 - K8s调度器原理剖析和实践.mp4│ 1-5.kubernetes理论教程 - K8S网…
Docker回顾 docker容器封装应用程序好处 内核在3.8以上,才能完整使用docker隔离功能(所有centos6不推荐用) Docker容器化封装应用程序缺点 容器编排工具有哪些 一: K8s概述 1.16版本及之后版本变化较大,建议使用1.15版本 二: K8s快速入门 2.1: pod 2.2: name namespace 2.3: Label label选择器 2.4: Service ingress 2.5: K8s核心组件 Apiserver Controller-mana…
默认就是轮循,如果要其它hash或是最少请求,那就需要作更多的设置了. https://www.getambassador.io/reference/core/load-balancer/#source-ip 默认是用的Kubernetes services这个resolver,如果要使用高级的LB功能,就需要使用 the Kubernetes Endpoint Resolver or Consul Resolver. 针对mapping的配置如下: --- apiVersion: apps/v…
1. 简介 测试环境Kubernetes 1.14.2版本高可用搭建文档,搭建方式为kubeadm 2. 服务器版本和架构信息 系统版本:CentOS Linux release 7.6.1810 (Core) 内核:4.4.184-1.el7.elrepo.x86_64 注意:有可能后面安装的内核版本高于此版本 Kubernetes: v1.14.2 Docker-ce: 18.06 网络组件:calico 硬件配置:16核64G Keepalived保证apiserever服务器的IP高可用…
目录 1.部署环境说明 2.集群架构及部署准备工作 2.1.集群架构说明 2.2.修改hosts及hostname 2.3.其他准备 3.部署keepalived 3.1.安装 3.2.配置 3.3.启动和检查 4.部署haproxy 4.1.安装 4.2.配置 4.3.启动和检查 5.安装docker 5.1.安装 5.2.配置 5.3.启动 6.安装kubeadm,kubelet和kubectl 6.1.添加阿里云k8s的yum源 6.2.安装 6.3.配置kubectl自动补全 7.安装m…
配置traefik资源清单rbac.yaml 配置traefik资源清单 rbac.yaml apiVersion: v1 kind: ServiceAccount metadata: name: traefik-ingress-controller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: traefik-ingress-c…
Prometheus架构图 常见的镜像 pod 备注 kube-state-metric 用来收集K8S基本状态信息的监控代理 node-exporter 专门用来收集K8S运算节点基础信息,需要部署到所有运算节点 cadivsor 用来监控容器内部使用资源的重要工具 blackbox-exporter 用来帮助你探明你业务容器是否存活 新一代容器云监控平台P+G Exporters(可以自定义开发) HTTP接口定义监控荐和监控项的标签(维度)按一定的数据结构组织监控数据以时间序列被收集 Pr…
K8S的DNS实现了服务在集群"内"被自动发现,如何使得服务在Kuberneters集群"外"被使用和访问呢,有二种方法 1)使用NodePort型的Service ​ 注意:无法使用kube-proxy的ipvs模型,只能使用iptables模型 2)使用Ingress资源 注意:Ingress只能调度并暴露7层应用,特指http和https协议,一般建议用在http协议上 Ingress是K8S API的标准资源类型之一,也是一种核心资源.它其实就是一组基于域名…
K8S核心插件-ingress(服务暴露)控制器-traefik 1 K8S两种服务暴露方法 前面通过coredns在k8s集群内部做了serviceNAME和serviceIP之间的自动映射,使得不需要记录service的IP地址,只需要通过serviceNAME就能访问POD 但是在K8S集群外部,显然是不能通过serviceNAME或serviceIP来解析服务的 要在K8S集群外部来访问集群内部的资源,需要用到服务暴露功能 1.1 K8S常用的两种服务暴露方法 使用NodePort型的S…
总结traefik 在k8s 环境中的配置文件 traefik.toml配置文件引用 [www@localhost traefik-ingress]$ more * :::::::::::::: configmap.yml :::::::::::::: source: traefik/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: traefik-ingress namespace: test lab…
二进制部署K8S-3核心插件部署 5.1. CNI网络插件 kubernetes设计了网络模型,但是pod之间通信的具体实现交给了CNI往插件.常用的CNI网络插件有:Flannel .Calico.Canal.Contiv等,其中Flannel和Calico占比接近80%,Flannel占比略多于Calico.本次部署使用Flannel作为网络插件.涉及的机器 hdss7-21,hdss7-22 kubernetes设计了网络模型,但是pod之间通信的具体实现交给了CNI往插件.跨宿主机之间的…
Docker Context基本原理 介绍 本指南介绍了上下文如何使单个Docker CLI轻松管理多个Swarm集群.多个Kubernetes集群和多个单独的Docker节点. 单个Docker CLI可以有多个上下文.每个上下文包含管理不同集群或节点所需的所有端点和安全信息.docker context命令使配置这些上下文和在它们之间切换变得很容易. 例如,您公司笔记本电脑上的单个Docker客户端可能配置有两个上下文:dev-k8s和prod swarm.dev-k8s包含用于在开发环境中…
环境规划 主机名 IP地址 说明 k8s-master01 ~ 03 192.168.3.81 ~ 83 master节点 * 3 k8s-master-lb 192.168.3.200 keepalived虚拟IP k8s-node01 ~ 02 192.168.3.84 ~ 85 worker节点 * 2 配置信息 备注 系统版本 CentOS 7.6 Docker版本 19.03.x Pod网段 172.16.0.0/12 Service网段 192.168.0.0/16 基本环境配置 K…
kubernetes内的服务访问集群外独立的服务最好通过endpoint方式,例如MySQL 1.创建mysql-service.yaml apiVersion: v1 kind: Service metadata: name: mysql-production namespace: ms spec: ports: - port: targetPort: protocol: TCP 2.创建mysql-endpoints.yaml kind: Endpoints apiVersion: v1 m…
目录 不同类型的IP Pod IP Cluster IP 不同类型的Port port nodePort TargetPort containerPort hostPort Endpoint Endpoint Controller 定义 Endpoint 使用Endpoint引用外部服务 创建ExternalName类型的服务 当新手刚学习k8s时候,会被各种的IP 和port 搞晕,其实它们都与k8s service的访问有密切关系,梳理它们之间的差异可以更好了解k8s的服务访问机制. 不同类…