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(简称k8s)是Google开源的...这个资源包应该包含了所有这些步骤的详细指导,是学习和实践k8s高可用部署的宝贵参考资料。对于运维人员来说,理解和掌握这一过程对于确保k8s集群的稳定性和可靠性至关重要。
本主题聚焦于使用SaltStack自动化部署Kubernetes高可用(HA)集群,该集群基于Kubernetes v1.12.5版本,包含了诸多关键特性,如TLS双向认证、RBAC授权、Flannel网络以及ETCD集群等。接下来,我们将详细探讨这些知识...
目前kubernetes高可用需要要么依赖外部负载均衡器,自己搭建时就需要做keepalived haproxy等,比较麻烦,在某些云上可能keepalived还无法使用,构建部署也需要通过ansible等去做HA,很多工具部署过程中都比较容易...
在Kubernetes世界中,高可用性(High Availability, HA)是关键,因为它确保集群即使在硬件故障或服务中断时也能持续运行。`kubeadm`是官方推荐的工具,用于简化Kubernetes集群的初始化和管理。本篇将深入探讨基于`...
然而,Kubernetes 的安装配置较为复杂,特别是对于希望构建高可用(High Availability, HA)集群的企业来说更是如此。KubeKey 作为一种轻量级、灵活且高效的 Kubernetes 安装工具,大大简化了这一过程。 #### 二、...
在本资源中,我们聚焦于"Kubernetes 1.20.4 高可用集群的部署,这是一项关键的IT技术,尤其对于那些寻求优化云计算基础设施的企业和开发者来说。Kubernetes,简称K8s,是Google开源的一个容器编排系统,能够自动化...
在本资料包中,我们将深入探讨如何使用SealOS 4.0.0来部署一个高可用性的Kubernetes (k8s) 1.24.0集群。SealOS是一个专为Kubernetes设计的操作系统,它简化了集群的安装和管理过程,提供了稳定、高效且安全的运行...
综上所述,"ansible-kubernetes-kubeadm-ha"项目利用Ansible的自动化能力,结合Kubeadm的简单部署方式,实现了在裸机服务器上的高可用Kubernetes集群。它涵盖了从基础架构配置、Kubernetes控制平面搭建、应用部署到...
在Kubernetes(简称K8s)集群中部署Redis可以实现高可用性和读写分离,这是一种常见的微服务架构实践。下面将详细介绍如何利用Kubernetes来部署Redis,并解释涉及的关键概念和技术。 1. **Kubernetes基本概念**: ...
在本项目中,我们关注的是如何在裸金属环境中使用Kubespray工具实现Kubernetes的高可用性(HA)部署,尽量减少对云组件的依赖。Kubernetes是一个强大的容器编排系统,而Kubespray则是一个自动化部署工具,使得在多...
Kubernetes Master HA的高级实践首先聚焦在如何构建一个高可用的Master节点。在典型配置中,Master节点由以下几个核心组件组成: 1. API Server(api-server):提供了集群状态的REST接口,是集群管理的入口点。 2....
1. **多主节点配置**: 在高可用部署中,通常会有三个或更多主节点,每个节点都运行着Kubernetes的控制平面组件。这可以确保即使一个主节点出现问题,其他节点仍然能够接管工作。 2. **etcd集群**: etcd是Kubernetes...
Kubernetes作为业界领先的容器编排系统,其高可用性(HA)对于生产环境至关重要。这里我们将详细探讨如何利用k8s-v.1.14.2版本来搭建一个完整的集群,并重点介绍kubeadmin的高可用安装包和相关文档笔记。 首先,...
在构建生产环境中的高可用Kubernetes集群时,Go-sealos是一个值得考虑的工具。它是一个用Go语言编写的轻量级解决方案,专注于提供简洁、高效且可自定义的Kubernetes集群部署体验。sealos的目标是避免传统安装过程中...
POSTGRESQL PATRONI HA ON KUBERNETES 在当今的云计算环境中,数据库的高可用性变得至关重要。PostgreSQL,作为一个强大且开源的关系型数据库系统,已经成为了许多企业的首选。为了确保数据的安全性和服务的连续性...
在大数据处理领域,Apache Flink 是一款强大的流处理框架,其高可用性(High Availability, HA)配置对于保证系统的稳定性和连续性至关重要。本篇将深入探讨 Flink 的高可用配置,尤其是基于 Flink 1.11 版本的 ha-...
Stolon的云原生设计使其能在各种云环境和Kubernetes部署中无缝工作,提供跨多个可用区的高可用性。 通过使用stolon-chart,IT专业人员可以快速、高效地在Kubernetes环境中搭建和管理具备高可用性的PostgreSQL集群...
通过以上步骤和知识点,你可以使用KubeKey 2.2.1成功部署一个高可用的Kubernetes 1.22.10集群。详细文档笔记将更深入地讲解每个步骤,帮助你理解和解决可能出现的问题。在实际操作过程中,务必参考这些文档,确保每...