二进制部署Kubernetes v1.13.4 HA可选

  • 时间:
  • 浏览:3

查看状态

时候是公有云没得一一二个多vpc里建议用flannel,时候公有云是SDN,能否 利于 vxlan利于到达目标,每个node上的flannel.1充当了vtep身份.另外完成到集群能否 使用后会发现能否 利于 pod所在的node能访问到它这台上端的clusterIP,是时候kubelet上报的节点的node public IP是取网卡的ip,公有云网卡ip后会内网ip,这俩当flannel包要发到目标机器的flannel上的事先会发到目标机器的内网ip上,根本发没得去,处里依据能否 私聊我我帮你解答

时候在k8s-m1上启动所有节点的kube-proxy 服务:

本文命令全版是在k8s-m1上执行

在k8s-m1上配置etcd配置文件并收集相关文件

配置文件路径为/etc/etcd/etcd.config.yml

注入基础变量

时候输出到终端了的事先多按几下回车直到等光标回到终端状态

生成所有的证书信息

而这时若有使用 HPA 的話,就利于正确抓到 Pod 的 CPU 与 Memory 使用量了。

完成后,在任意一台master节点通过简单指令验证:

取得 admin 账号的密码

完成后通过 curl 命令来测试功能否 有正常:

这里建议先执行上端的补全ep信息次责的操作后再回来

发现 top 命令无法取得 Metrics,这表示 Kubernetes 集群那末安装 Heapster 或着 Metrics Server 来提供 Metrics API 给 top 指令取得资源使用量。

kube-apiserver:

kube-etcd-peer

通过ipvsadm查看 proxy 规则

完成后,通过检查节点有无不再是NotReady,以及 Pod 有无不再是Pending:

在k8s-m1节点下把相关配置文件配置后再收集

清理 csr srl

本次安装的版本:

时候二进制跑得话时候后会pod不具有label属性,不让被上端俩svc选中,也这俩我俩svc的ep没创建还你要 们都都都手动创建

你这俩在还要把集群外的服务映射进来的事先这俩我创建一一二个多同名的svc和ep,上端俩svc名字为

首先在k8s-m1安装Helm tool:



拆解不同流程步驟如下:

Kubernetes 在默认状态下与 Docker 的网络有所不同。在 Kubernetes 蕴含八个疑问报告 是还要被解決的,分別为:

时候目前市面上包管理下内核版本会很低,安装docker后无论centos还是ubuntu会有如下bug,4.15的内核依然所处

首先当使用者建立了一一二个多Kubernetes Service 或Ingress(实作以同步Ingress 为主)时,会通过与API Server 与Kubernetes 集群沟通,一旦Service 或Ingress 建立完成,并正确分配Service external IP 或是Ingress address 后,ExternalDNS 会在同步期间抓取所有Namespace(或指定)中的Service 与Ingress 资源,并从Service 的metadata.annotations取出external-dns.alpha.kubernetes.io/hostname键的值,以及从Ingress 中的spec.rules取出host 值来产生DNS 资源纪录(如A record),当完成产生资源纪录后,再通过Etcd 储存该纪录来让CoreDNS 在收到查询请求时,利于依据Etcd 的纪录来辨识导向

perl是内核的依赖包,时候那末就安放进

k8s-m1上执行下面命令验证 ETCD 集群状态,下面第八个是使用3的api去查询集群的键值

本次部署的网络信息:

蕴含上端一一二个多镜像,拉取一一二个多即可

在k8s-m1节点下把相关配置文件配置后再收集

实际上默认集群带了组件同名的ep,时候operator为了不干预原有的,这俩才用的上端的svc名字,同理operator也创建出了同名的ep,时候你这俩ep是空的,还你要 们都都都手动修改

k8s-m1登陆这俩机器要免密(不然就上端文章手动输入)时候在k8s-m1安装sshpass后使用别名来让ssh和scp不输入密码,zhangguanzhang为所有机器密码

正常是下面状态,时候有疑问报告 能否 看看docker拉到了镜像否和kubelet的日志输出

若想让 HPA 使用 Prometheus 的 Metrics 得话,能否 阅读 Custom Metrics Server 来了解。

节点信息

本教学将以下列节点数与规格来进行部署Kubernetes集群,系统可采用Ubuntu 16.x与CentOS 7.4+

完成后使用curl发起http请求访问http://{your ingress vip}}:1000来查看有无能连接,若能否 会有以下结果。

apiserver你这俩默认会在集群创建svc和阳成ep(在default你这俩namespace里),不让理会

查看上端俩servicemonitor的yaml发现是选的kube-system(namespacs下)的标签为k8s-app: kube-scheduler和k8s-app: kube-controller-manager的svc

在下面目录找到官方单独创建了他俩的svc

kube-scheduler

创建所需的 clusterrole

front-proxy-client

授权 kubelet 能否 创建 csr

查找calicoctl的pod名字

Ingress 是 Kubernetes 中的一一二个多抽象资源,其功能是通过 Web Server 的 Virtual Host 概念以域名(Domain Name)依据转发到内部人员 Service,这处里了使用 Service 中的 NodePort 与 LoadBalancer 类型所带來的限制(如 Port 数量上限),而实现 Ingress 功能则是通过 Ingress Controller 来达成,它会负责监听 Kubernetes API 中的 Ingress 与 Service 资源物件,并在所处资源变化时,根据资源预期的结果来设置 Web Server。另外 Ingress Controller 有这俩实现能否 选取:

另外在所有node机器安裝 socat(用于端口转发):

接着部署 ExternalDNS 来与 CoreDNS 同步资源记录:

node打标签声明role

在k8s-m1节点收集kubelet.service文件和配置文件到每台上去管理kubelet:

注入信息时候部署

时候vip没起来这俩我keepalived没起来就每个节点上去restart下keepalived时候确认下配置文件/etc/keepalived/keepalived.conf里网卡名和ip有无注入成功

Helm是Kubernetes Chart的管理工具,Kubernetes Chart是一套预先组态的Kubernetes资源套件。其中Tiller Server主要负责接收来至Client的指令,并通过kube-apiserver与Kubernetes集群做沟通,根据Chart定义的内容,来产生与管理各种对应API物件的Kubernetes部署文件(又称为Release)。

prometheus会收集存储metrics,grafana来视图输出

k8s的管理组件后会有metrics信息输出的端口,类似于于访问curl localhost:10252/metrics能否 看了controller的metrics信息

接着初始化 Helm(这边会安装 Tiller Server):

yml来源于官方 https://www.weave.works/docs/scope/latest/installing/#k8s 这边增加了一一二个多ingress方便访问

喜欢追求新镜像(此人 建议1.12+k8s)能否 使用下面的yml

flannel 第一次启动时,从 etcd 获取 Pod 网段信息,为本节点分配一一二个多未使用的 /24 段地址,时候创建 flannel.1(也时候是其它名称,如 flannel1 等) 接口。

注入ip信息

能否 上端状态看了nodeport的端口为31161

完成后,就能否 通过浏览器访问Jenkins Web http://192.168.88.110:31161。

nslookup下看看能返回地址不

本文这俩步骤是选取其一,别啥后会看一路往下克隆好友粘贴

Keepalived:

允许 kubelet 利于更新此人 的证书

这边镜像时候是quay.io域名仓库会拉取好快,所有节点能否 提前拉取下,时候就等。镜像名根据输出来,时候我博客次责使用镜像版本更新了

Ubuntu:

在k8s-m1配置 kube-proxy:

创建一一二个多 kube-proxy 的 service account:

检查集群dns正常否

查看pod状态

批准 csr 请求

收集systemd和配置文件

下面链接能否 下载到这俩归档版本的

参考文档:https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/cluster-monitoring.md

参考文档:https://github.com/coreos/prometheus-operator/tree/release-0.26/contrib/kube-prometheus/manifests

时候CoreDNS工作不正常,先删掉它,删掉后确保coredns的pod和svc不所处

这边默认helm的部署的镜像是gcr.io/kubernetes-helm/tiller:v2.9.1,时候拉取不了能否 使用命令修改成国内能拉取到的镜像

这里为什么我么我会么会你说歌词 master最好跑pod,是时候用户定义资源,也这俩我kind:xxxx和apiVersion:xxxx现在后会用自带的,后续开发和接触到CRD的事先会创建APIService,时候APIService里选中了svc,那末请求kube-apiserver的web路由的事先kube-apiserver会把请求转发到你选中的svc上,这能否 能看官方文件里一次责内容。我们都都都使用kubectl top node的事先实际是请求kube-apiserver的url路径/apis/metrics.k8s.io/v1beta1/nodes,时候创建了metrics-server的APIService,请求会被转发到svc的pod,pod工作流程是获取node列表,时候去请求node上的kubelet的metrics端口获取metrics信息收集起来,信息包括了node的基本cpu和内存以及上端跑的pod的cpu和内存。这事先流量是kube-apiserver到pod上上端经过svc的ip,时候那末kube-proxy和网络组件就无法通信

这后会无法通过 nslookup 解析域名,这是时候测试机器并那末使用你这俩 DNS 服务器,能否 通过修改/etc/resolv.conf来加入(不同 OS 有差异,不过都能否 设置)。

收集cni文件到other

本次责将说明怎么能否建立与设定Kubernetes Master 角色,过程中会部署以下元件:

将 kube-proxy 的 serviceaccount 绑定到 clusterrole system:node-proxier 以允许 RBAC:

kubelet:

不建议使用secureCRT你这俩ssh软件克隆好友本篇博客内容的命令,时候它的次责版本对蕴含多条命令的处里结果不要 完美,时候这俩命令后会预期结果

完成后,就能否 通过浏览器存取Dashboard https://{YOUR_VIP}:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/。

kubernetes-ca

完成后,在任意一台master节点并通过简单指令验证:

查看状态

本文的HA是vip,生产和云能否 能用LB和SLB,不过阿里的SLB四层有疑问报告 (不支持回源),能否 每个node上代理127.0.0.1的某个port分摊在所有apiserver的port上,aws的SLB正常

首先在k8s-m1通过git获取部署要用到的二进制配置文件和yml

admin

其实 Ingress 利于给你們通过域名依据访问 Kubernetes 内部人员服务,时候若域名无法被用户解析得话,时候显示default backend – 404结果,而这一直发送在内部人员自建环境上,其实能否 通过修改主机/etc/hosts来处里,但能否 弹性扩展,时候下节将说明怎么能否建立一一二个多 External DNS 与 DNS 服务器来提供自动解析 Ingress 域名。

确认没疑问报告 后,通过浏览器查看 prometheus.monitoring.k8s.local 与 grafana.monitoring.k8s.local 有无正常,若沒疑问报告 就能否 看了下图结果。



apiserver-kubelet-client

下面是ml的内核和上端归档内核版本任选其一的安装依据

查看pod状态

而 Kubernetes 对于任何网络的实现都还要满足以下基本要求(除非是有意调整的网络分段策略):

证书路径

在k8s-m1通过kubectl来建立Prometheus 还要的元件:

这里我们都都都使用tls证书,证书前面的Front Proxy Certificate时候生成了

收集到 kubeconfig 及证书这俩 master 节点

时候本次安装启用了TLS认证,时候每个节点的kubelet都还要使用kube-apiserver的CA的凭证后,利于与kube-apiserver进行沟通,而该过程还要手动针对每台节点单独提前大选凭证是一件繁琐的事情,且一旦节点增加会延伸出管理不易疑问报告 ;而TLS bootstrapping目标这俩我处里该疑问报告 ,通过让kubelet先使用一一二个多预定低权限使用者连接到kube-apiserver,时候在对kube-apiserver申请凭证提前大选,当授权Token一致时,Node节点的kubelet凭证将由kube-apiserver动态提前大选提供。具体作法能否 参考TLS Bootstrapping与Authenticating with Bootstrap Tokens。

在k8s-m1上下载etcd的二进制文件,单台得话建议使用v3.1.9时候有bug详情见我github

用户部署了ingress controller后创建的ing资源对象的hosts还要访问的事先访问者一般是设置hosts文件来访问的

类似于于创建了上端的nginx.k8s.local的ing,用户访问它还要本机设置十根hosts 192.168.88.109 nginx.k8s.local在浏览打开nginx.k8s.local利于访问

原先时候办公室时候内网下ing创建多了很麻烦,时候办公室时候内网自建了dns能否 加解析记录就不让每此人 去设置hosts了

时候那末,能否 部署它时候所有机器的dns的ip指向它即可访问到ing

本次责说明怎么能否通过 CoreDNS 自建一套DNS 服务,并利用Kubernetes ExternalDNS 同步Kubernetes 的Ingress 与Service API object 中的域名(Domain Name)来产生资源纪录(Record Resources),让使用者利于通过自建DNS 服务来导向到Kubernetes 集群里的服务

收集master相关组件二进制文件到这俩master上

flannel 使用 vxlan 技术为各节点创建一一二个多能否 互通的 Pod 网络,使用的端口为 UDP 8472,还要开放该端口(如公有云 AWS 等)。

检查有无启动

无越墙工具的,我已把所有二进制文件上传到dockerhub了,详情见 k8s_bin-docker_cp

这边建议healthzBindAddresskubeadm生成的是127,我建议设置成网卡ip方便后续检测curl http://10.0.6.166:10248/healthz

首先在k8s-m1测试一下 kubectl top 指令:

完成后,通过 dig 与 nslookup 工具检查前面测试 Ingress 的 nginx 服务:

Dashboard是Kubernetes社区官方开发的仪表板,有了仪表板后管理者就利于通过Web-based依据来管理Kubernetes集群,除了提升管理方便,也让资源视觉化,给你更直觉看见系统资讯的呈现结果。

在k8s-m1通过kubectl来建立kubernetes dashboard即可:

apiserver-etcd-client

参考:

https://kuops.com/2019/02/25/deploy-kubernets-1.13

上端不建议改

kube-scheduler

ping下vip看看能通否,先等待图片共要四五秒等keepalived和haproxy起来

可通过下面命令查询所有stable版本(耐心等待图片,请确保能访问到github)

本文上端的几个svc用了externalIPs,上生产得话还要用VIP时候LB代替

确认上端步骤都沒疑问报告 后,就能否 通过 kubeclt 建立简单 NGINX 来测试功能:

所有 Addons 部署文件已放至k8s-manual-files中,时候在k8s-m1进入该目录,按照以下顺序建立:

master节点一定要kube-proxy和calico时候flannel,kube-proxy是维持svc的ip到pod的ip的负载均衡,而你流量想到pod的ip还要calico时候flannel组件的overlay网络下才能否 ,后续学到APIService和CRD的事先,APIService时候选中了svc,kube-apiserver会把你这俩APISerivce的请求代理到选中的svc上,最后流量流到svc选中的pod,该pod要处里请求时候提前大选,你这俩事先这俩我kube-apiserver解析svc的名字得到svc的ip,时候kube-proxy定向到pod的ip,calico时候flannel把包发到目标机器上,你这俩事先时候kube-proxy和calico时候flannel那末那你创建的APISerivce就没用了。apiserver的路由聚合没试过我不知道可行不可行,本文中的metrics-server这俩我原先的工作流程,这俩建议master也跑pod,不时候续这俩CRD用不了

部署与设定

完成后,通过检查节点有无不再是NotReady,以及 Pod 有无不再是Pending:

首先在k8s-m1执行下列命令来建立 Ingress Controller,并检查有无部署正常:

在k8s-m1收集kube-proxy 的 相关文件到所有节点

根据此人 环境声明用到的变量,后续操作依赖于环境变量,这俩断开了ssh后会重新声明下(主这俩我ip和这俩信息,路径最好别改)

kube-controller-manager

etcd-ca

首先在k8s-m1执行下面命令来建立 CoreDNS Server,并检查有无部署正常:

在你这俩次责,将还要产生多个元件的Certificates,这蕴含Etcd、Kubernetes 元件等,时候每个集群后会有一一二个多根数位凭证认证机构(Root Certificate Authority)被用在认证API Server 与Kubelet 端的凭证。

Kube-proxy是实现Service的关键插件,kube-proxy会在每台节点上执行,时候监听API Server的Service与Endpoint资源物件的改变,时候来依据变化执行iptables来实现网路的转发。这边我们都都都会还要建议一一二个多DaemonSet来执行,时候建立这俩还要的Certificates。

通过 kubectl exec calicoctl pod 执行命令来检查功能否 有正常

本文命令里这俩是输出,不要 乱粘贴输入(其实也没影响)

部署后通过下面查看状态即使正常

这边会额外建立一一二个多名称为anonymous-dashboard-proxy的 Cluster Role(Binding) 来让system:anonymous你这俩匿名使用者利于通过 API Server 来 proxy 到 Kubernetes Dashboard,而你这俩 RBAC 规则仅利于存取services/proxy资源,以及https:kubernetes-dashboard:资源名称同時 在 1.7 版本事先的 Dashboard 将不再提供所有权限,时候还要建立一一二个多 service account 来绑定 cluster-admin role(这系列时候写在dashboard/anonymous-proxy-rbac.yml里)

etcd所有标准版本能否 在下面url查看

测试Helm 功能

这边部署简单Jenkins 来进行功能测试:

同理注入kube-scheduler-prometheus-discovery的ep

原文链接:http://zhangguanzhang.github.io/2019/03/03/kubernetes-1-13-4/

本次采用二进制文件依据部署,本文过程写成了更全版的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansible

和事先的步骤差不要 后会和kubeadm步骤一样,不过这次所有kubelet全版走bootstrap不让像事先master上的kubelet生成证书,另外证书添加openssl生成

haproxy每台上所处8443端口去负载到每台master上的api-server的6443端口

时候keepalived会保证vip飘在可用的master上

所有管理组件和kubelet后会去访问vip:8443确保了即使down掉一台master利于访问到apiserver

云上得话选取熟练的LB来代替掉haproxy和keepalived即可

VIP和INGRESS_VIP选同一一二个多局域网的没用过IP来使用即可

能否 看了为none,这里还你要 们都都都手动修改,下面为controller的信息注入,port是10252,servicemonitor里port名字为https-metrics,这俩不要 修改下面的port的name

下面则是遇到了,你这俩疑问报告 是官方bug,时候看了log得话在Corefile加一行log则开启log打印查看,上端的issue里官方目前也无解

查看tiller的pod

这边镜像时候是quay.io域名仓库会拉取好快,所有节点能否 提前拉取下,时候就等。镜像名根据输出来,时候我博客次责使用镜像版本更新了

完成后访问scope.weave.k8s.local

完成后,等待图片一段时间(约 1000s – 1m)收集 Metrics,再次执行 kubectl top 指令查看:

首先在k8s-m1建立一一二个多变数来产生BOOTSTRAP_TOKEN,并建立bootstrap的kubeconfig文件:

时候上述疑问报告 ,我們要在k8s-m1部署 Metrics Server 元件来解決:

镜像v0.2.1得话直接使用下面的(v1.12+版本建议使用上端的yml)

当完成上端所有步骤后,接着还要部署这俩插件,其中如Kubernetes DNS与Kubernetes Proxy等你这俩Addons是非常重要的。

收集node的kubernetes二进制文件

最后在k8s-m1上去启动每个node节点的kubelet 服务:

Metrics Server 是实现了 Metrics API 的元件,其目标是取代 Heapster 作位 Pod 与 Node 提供资源的 Usage metrics,该元件会从每个 Kubernetes 节点上的 Kubelet 所公开的 Summary API 中收集 Metrics

etcd得话推荐下官方的在线工具,有兴趣能否 去试试 http://play.etcd.io

本节说明怎么能否部署这俩官方常用的额外 Addons,如 Dashboard、Ingress Controller、External DNS 与 Prometheus等等。

在k8s-m1上给所有master机器启动kubelet 服务并设置kubectl补全脚本:

在k8s-m1通过 kubeclt 执行下面命令來创建,并检查有无部署成功:

此时能否 关机做个快照

上端kubectl命令只还要在任何一台master执行就行了

在k8s-m1上启动所有etcd

etcd 任务管理器首次启动后会等待图片其它节点的 etcd 加入集群,命令 systemctl start etcd 会卡住一段时间,为正常疑问报告

能否 全版启动后上端的etcdctl命令查看状态确认正常否

front-proxy-ca

创建KubeDNS

sa.pub sa.key

原文作者:Zhangguanzhang

calico正常是下面状态

确认使用ipvs模式

架构中的每一一二个多次责后会运行在 Kubernetes 集群上的资源,哪几种资源分別负责不同作用与意义:

建议下面写进一一二个多文件,原先断开了ssh利于source一下加载

另外这边也推荐用 Weave Scope 来监控容器的网络 Flow 拓扑图。

接着在k8s-m1建立TLS bootstrap secret来提供自动签证使用:

在官方的支持版本里好像没说1.13.4支持18.09,保险起见我这里使用的是18.06.03

下面键是主机的hostname,而的值是主机的IP。默认Kubelet向集群注册是带hostname上去的,时候选项–hostname-override去设置注册的名字。上端那末用–hostname-override,我是偷懒直接使用hostname,生产力建议用–hostname-override固定。所有机器同理

kube-etcd-healthcheck-client

本次责将说明怎么能否建立与设定Kubernetes Node 角色,Node 是主要执行容器实例(Pod)的工作节点。

在刚开始部署前,先在k8-m1将还要用到的文件克隆好友到所有这俩节点上:

等待图片官方修复得话可事先期先创建出coredns的deploy,svc会负载到coredns事先再删掉kubedns的副本控制器和pod

生成证书

HAProxy:

设定master节点添加污点Taint不让(那末声明容忍该污点的)pod跑在master节点上:

在k8s-m1上收集etcd的二进制文件到这俩master上

时候下面直接下载失败得话一样使用骚套路:docker拉镜像后cp出来

Kube DNS是Kubernetes集群内部人员Pod之间互相沟通的重要Addon,它允许Pod能否 通过Domain Name依据来连接Service,其主要由Kube DNS与Sky DNS组合而成,通过Kube DNS监听Service与Endpoint变化,来提供给Sky DNS资讯,已更新解析位址。

时候 Heapster 将要被移除,时候这里选取 Prometheus 作为第三方的集群监控方案。而本次安装采用 CoreOS 开发的 Prometheus Operator 用来管理在 Kubernetes 上的 Prometheus 集群资源,目标这俩我僵化 部署与维护 Prometheus 上的事情,其架构如下所示:

创建flannel,这边使用ds来创建,yaml来源于官方,删除了非amd64的ds

接着进入到k8s-m2节点,通过kubectl来检查集群有无利于正常执行:

提供虚拟IP位址(VIP),来让vip落在可用的master主机上供所有组件都能访问到可用的master,结合haproxy能访问到master上的apiserver的6443端口

下面基本后会kubectl命令,apply文件后会有输出耐心等待图片拉取docker镜像,命令输出不要 粘中放终端上(其实没影响)

完成后,通过 kubectl 检查服务有无正常运行:

更多Helm Apps能否 到Kubeapps Hub寻找。



测试完成后,即可删除:

CoreDNS 是由 CNCF 维护的开源 DNS 方案,该方案前身是 SkyDNS,其采用了 Caddy 的一次责来开发伺服器框架,使其利于建立一套快速灵活的 DNS,而 CoreDNS 每个功能都能否 被当作成一個插件的中介软体,如 Log、Cache、Kubernetes 等功能,甚至利于将源记录存储在 Redis、Etcd 中。

这俩建议先升级内核

这里似乎有个官方bug https://github.com/coredns/coredns/issues/2289

coredns正常否看脸,能否 下面创建pod来测试

先创建一一二个多dnstool的pod

ipvs依赖于nf_conntrack_ipv4内核模块,4.19包括事先内核里改名为nf_conntrack,1.13.1事先的kube-proxy的代码里那末加判断一直用的nf_conntrack_ipv4,好像是1.13.1后的kube-proxy代码里增加了判断,我测试了是会去load nf_conntrack使用ipvs正常

1.11后CoreDNS 已取代 Kube DNS 作为集群服务发现元件,时候 Kubernetes 还要让 Pod 与 Pod 之间能夠互相通信,然而利于够通信还要知道彼此的 IP 才行,而你这俩做法通常是通过 Kubernetes API 来获取,时候 Pod IP 会时候生命周期变化而改变,时候你这俩做法无法弹性使用,且后会增加 API Server 负担,基于此疑问报告 Kubernetes 提供了 DNS 服务来作为查询,让 Pod 能夠以 Service 名称作为域名来查询 IP 位址,时候使用者就再不还要关心实际 Pod IP,而 DNS 也会根据 Pod 变化更新资源记录(Record resources)。

SSH进入k8s-m1节点,时候关闭该节点:

庆幸的是 Kubernetes 时候有非常多种的网络模型作为网络插件(Network Plugins)依据被实现,时候能否 选取满足此人 需求的网络功能来使用。另外 Kubernetes 中的网络插件有以下某种 形式:

设置后再次通过 nslookup 检查,会发现能否 解析了,这时也就能通过 curl 来测试结果:

admin(kubectl)

使用下面命令看看确认下有无启动默认内核指向上端安装的内核

时候 Calico 提供了 Kubernetes resources YAML 文件来快速以容器依据部署网络插件至所有节点上,时候只还要在k8s-m1使用 kubeclt 执行下面指令來建立:

kube-etcd

创建kube-proxy的kubeconfig:

kube-controller-manager:

时候这俩步骤理解不了能否 上下内容同時 看来理解

上端时候systemctl enable命令报错能否 systemctl status -l systemd-modules-load.service看看哪个内核模块加载不了,在/etc/modules-load.d/ipvs.conf里注释掉它再enable试试

kube-apiserver

上端我们都都都知道时候prometheus监控管理组件的metrics还要(创建)ServiceMonitor选中一一二个多svc,operator会查询到svc的ep(不还要svc有clusterip),根据配置的path从目标服务http的metrics页面拉取metrics信息

查看ServiceMonitor的yaml目录

另外VIP为10.0.6.155,由所有master节点的keepalived+haproxy来选取VIP的归属保持高可用

External DNS 是 Kubernetes 社区的孵化方案,被用于定期同步 Kubernetes Service 与 Ingress 资源,并依据资源內容来自动设定公有云 DNS 服务的资源记录(Record resources)。而时候部署后会公有云环境,时候还要通过 CoreDNS 提供一個内部人员 DNS 服务器,再由 ExternalDNS 与你这俩 CoreDNS 做串接。

首先所有master安装haproxy+keepalived,多按几个回车时候没输出得话

v0.3.1镜像的yml相对于事先变化了如下:

kube-scheduler:

Calico 是一款纯 Layer 3 的网络,其好处是它整合了各种云原生平台(Docker、Mesos 与 OpenStack 等),且 Calico 不采用 vSwitch,这俩我在每个 Kubernetes 节点使用 vRouter 功能,并通过 Linux Kernel 既有的 L3 forwarding 功能,而当资料中心僵化 度增加时,Calico 也能否 利用 BGP route reflector 來达成。

完成后,通过 dig 工具来检查 DNS 有无正常:

建立bootstrap的kubeconfig文件