2. 192.168.200.12 node
192.168.200.14 master
192.168.200.15 master
192.168.200.16 master
172.16.59.5>>172.16.56.56>> 200.14
3. 在master上安装 kubelet,配置如下,注意--register-node=false,可以让kubelet节点不自动向apiserver注册自己,--config=/etc/kubernetes/manifests kubelet监控的目录,可以自动起里面的pod的yaml文件
###
# kubernetes kubelet (minion) config
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=127.0.0.1"
# The port for the info server to serve on
# KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=192.168.200.14"
# location of the api-server
KUBELET_API_SERVER=""
# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=index.tenxcloud.com/google_containers/pause:0.1.0"
# Add your own!
KUBELET_ARGS="--config=/etc/kubernetes/manifests --register-node=false"
4.配置etcd集群
5.创建pod版的apiserver,controller-manager和scheduler
(1)官方文档中镜像pull不下来,在时速云的镜像广场下了镜像,无法持续运行。所以决定自己用dockerfile打包镜像
相关的dockerfile文件为:
1.apiserver:
FROM index.tenxcloud.com/google_containers/kube-apiserver:v1.2.0
MAINTAINER msxu msxu@iflytek.com
CMD ["/usr/local/bin/kube-apiserver","--service-cluster-ip-range=10.254.0.0/16","--insecure-bind-address=0.0.0.0","--etcd-servers=http://192.168.200.14:2379,http://192.168.200.1
5:2379,http://192.168.200.16:2379","--admission-control=AlwaysAdmit"]
2.controller-manager:注意参数--leader-elect=true,用来做controller-manager和scheduler的选主的
FROM index.tenxcloud.com/google_containers/kube-controller-manager:v1.2.2
MAINTAINER msxu msxu@iflytek.com
CMD ["/usr/local/bin/kube-controller-manager","--master=192.168.200.14:8081","--cluster-cidr=10.245.0.0/16","--leader-elect=true"]
3.scheduler:
FROM index.tenxcloud.com/google_containers/kube-scheduler:v1.2.2
MAINTAINER msxu msxu@iflytek.com
CMD ["/usr/local/bin/kube-scheduler","--master=192.168.200.14:8081","--leader-elect=true"]
(2)相关的pod文件,放在/etc/kubernetes/manifest目录下,kubelet会自动启动相关的pod
1.kube-apiserver.yaml文件
apiVersion: v1
kind: Pod
metadata:
name: kube-apiserver
spec:
hostNetwork: true
containers:
- name: kube-apiserver
image: index.tenxcloud.com/google_containers/kube-apiserver:msxu0.3.5
ports:
- containerPort: 8080
hostPort: 8080
name: local
volumeMounts:
- mountPath: /var/log/kube-apiserver.log
name: logfile
volumes:
- hostPath:
path: /var/log/kube-apiserver.log
name: logfile
2.kube-scheduler.yaml文件
apiVersion: v1
kind: Pod
metadata:
name: kube-scheduler
spec:
hostNetwork: true
containers:
- name: kube-scheduler
image: index.tenxcloud.com/google_containers/kube-scheduler:msxu0.3.2
livenessProbe:
httpGet:
path: /healthz
port: 10251
initialDelaySeconds: 15
timeoutSeconds: 1
volumeMounts:
- mountPath: /var/log/kube-scheduler.log
name: logfile
volumes:
- hostPath:
path: /var/log/kube-scheduler.log
name: logfile
3.kube-controller-manager.yam文件
apiVersion: v1
kind: Pod
metadata:
name: kube-controller-manager
spec:
hostNetwork: true
containers:
- name: kube-controller-manager
image: index.tenxcloud.com/google_containers/kube-controller-manager:msxu0.3.2
livenessProbe:
httpGet:
path: /healthz
port: 10252
initialDelaySeconds: 15
timeoutSeconds: 1
volumeMounts:
- mountPath: /var/log/kube-controller-manager.log
name: logfile
volumes:
- hostPath:
path: /var/log/kube-controller-manager.log
name: logfile
6.配置nginx服务器
安装略,配置如下:/usr/local/nginx-1.5.1/conf/nginx.conf
7.测试:主要验证当其中一台master机器挂了,其他master能否接管,执行pod保持能力、弹性调度等。。。测试的pod的yaml文件如下:
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas: 1
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
containers:
- name: slave
image: docker.io/kubeguide/guestbook-redis-slave
ports:
- containerPort: 6379
http://blog.csdn.net/u012214983/article/details/52267476
相关推荐
一个非常简单原生多云kubernetes高可用集群安装部署工具,支持 v1.17.+。 程序尽可能采用原生kubernetes特性不对kubernetes进行修改和面向过程模式...通过使用service特性和IPVS实现HA高可用,不依赖于任何第三实现等。
kubernetes-ha-kubeadm - 1.20.5Kubernetes 1.20.5 企业级高可用集群部署, 基于kubeadm.项目介绍项目致力于让有意向使用原生kubernetes集群的企业或个人,可以方便系统地使用kubeadm的方式搭建kubernetes高可用集群....
目前kubernetes高可用需要要么依赖外部负载均衡器,自己搭建时就需要做keepalived haproxy等,比较麻烦,在某些云上可能keepalived还无法使用,构建部署也需要通过ansible等去做HA,很多工具部署过程中都比较容易...
kubeadm-ha:基于kubeadm的Kubernetes高可用性部署(v1.14.xv1.11.xv1.9.xv1.7.xv1.6.x的英文中文)
kube-vip(https://kube-vip.io/) 可以在你的控制平面节点上提供一个 Kubernetes 原生的 HA 负载均衡,我们不需要再在外部设置 HAProxy 和 Keepalived 来实现集群的高可用了。 在以前我们在私有环境下创建 ...
Kubernetes的高可用性Redis 这最初是由一个才华横溢的开发人员启发的,他还开发了在这两个存储库中找到的lookup-srv,我主要是更改和完善了实现以补充大多数微服务模型/容器模式。 这将使用redis服务器和redis标记...
支持高可用HA 测试通过系统: CentOS 7.9 salt-ssh: 3002.2 kubernetes: v1.17.16 v1.18.8 v1.19.6 docker-ce: 19.03.8 注意:从Kubernetes 1.16版本开始很多API名称发生了变化,例如常用的daemonsets, deployments...
高可用性和负载平衡 总览 用于控制平面和Kubernetes服务的Kubernetes虚拟IP和负载均衡器 kube-vip背后的想法是一个针对所有环境的小型独立的高度可用选项,尤其是: 裸机 Edge(手臂/ Raspberry PI) 虚拟化 几乎...
特征使用此操作员,您可以部署和管理HA Zookeeper集群: 以可扩展和高可用性的方式配置Zookeeper群集。 更新已部署的Zookeeper集群的规格,以进行诸如副本(可伸缩性)和资源之类的调整。 放大缩小推出观察 为...
Kubernetes 部署 Time: 2020.11.11 by 本文档主要介绍了基于 Vagrant/kubeadm 部署 kubernetes 测试环境.. ... 手动介绍了高可用 kubernetes 环境的部署 如果您在使用中有任何问题,欢迎与我联系..
课程内容分为两部分(主要内容为k8s搭建,解决了无法下载镜像问题)一部分为k8s高可用集群搭建部署以及第三方dashboard的管理页面,可以实现在页面上进行管操作,第二部分为k8s在线升级以及k8s采用第三方插件helm...
特性:k8s集群二进制包一键化多master-HA基于内核负载高可用,支持centos7.3-7.9+kubernetes v1.23.5集群一键离线安装,一键批量增删node节点,一键集成k8s持久化方案Heketi+GlusterFS+nfs+helm3+动态存储+dns+ipvs+...
一条命令部署Kubernetes高可用 :waving_hand: 只能用丝滑一词形容的kubernetes高可用安装(kubernetes install)工具,一条命令,离线安装,包含所有依赖,内核负载不依赖haproxy keepalived,纯golang开发,99年...
希望在数据中心或其他任何地方快速部署HA PostgreSQL的数据库工程师,DBA,DevOps工程师和SRE希望会发现它很有用。 我们将Patroni称为“模板”,因为它远非单一规格的即插即用复制系统。它将有自己的警告。明智...
Ansible-k8s-hacluster.zip,ha kubernetes群集在15分钟内准备就绪高可用性kubernetes群集 扩展,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
使用kubeadm构建高可用性(HA)集群。 资料来源:2020年 Kubernetes学习资源 是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。 Kubernetes工具和项目 是一个开放的治理结构,其明确目的是围绕容器格式...
部署高可用性Kubernetes集群 该剧本部署了HA Kubernetes集群。 部署顺序: 在启动该剧本的计算机上,将创建一个临时目录/ tmp / k8s。 初始化第一个主机后,将需要它来复制ETCD和kubernetes证书。 另外,将...
· ·HA系列(高可用架构) QoS(服务质量),顾名思义,QoS就是服务质量的缩写。QoS概念最初源于网络,指一个网络利用各种基础技术,提供更好的网络通信服务能力,是网络的一种安全保障机制,是但是,现在QoS概念...
在几分钟之内即可为自己部署一个高可用性的Kubernetes集群。 基于Terraform,CoreOS和Ansible构建。 我们用于引导HA Kubernetes群集的方法可以在任何云或内部部署群集上进行。 包括以下内容- CoreOS作为基本操作...
希望在数据中心或其他任何地方快速部署 HA PostgreSQL 的数据库工程师、DBA、DevOps 工程师和 SRE 有望发现它有用。 我们称 Patroni 为“模板”,因为它远非一刀切或即插即用的复制系统。 它将有自己的警告。 ...