在CentOS7上部署 Kubernetes集群

yum -y install  etcd docker  flannel kubenetes

一般会遇到没有k8s源的问题,先 yum update -y 看是否有效,如果还是没用就创建yum 源,再安装 kubenetes

如下操作:

创建yum源

vi  virt7-docker-common-release.repo

加入以下内容:

[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0

安装服务

执行以下命令,安装kubernetes

yum -y install --enablerepo=virt7-docker-common-release kubernetes 

接下来开始部署:

禁用防火墙

systemctl disable iptables-services firewalld
systemctl stop iptables-services firewalld

启动 etcd docker  flannel 服务:1、先启动etcd:systemctl enable etcd.servicesystemctl start etcd.service

2 配置Flannel

  master、node上均编辑/etc/sysconfig/flanneld,修改红色部分

[[email protected] ~]# vi /etc/sysconfig/flanneld


# Flanneld configuration options

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/atomic.io/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

3 配置etcd中关于flannel的key

  Flannel使用Etcd进行配置,来保证多个Flannel实例之间的配置一致性,所以需要在etcd上进行如下配置:(‘/atomic.io/network/config’这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)

[[email protected] ~]# etcdctl mk /atomic.io/network/config ‘{ "Network": "10.0.0.0/16" }‘
{ "Network": "10.0.0.0/16" }

4 启动

  启动Flannel之后,需要依次重启docker

  在master执行:

systemctl enable flanneld.service
systemctl start flanneld.service
service docker restart

  在node上执行:

systemctl enable flanneld.service
systemctl start flanneld.service
service docker restart

在master节点配置kubernetes服务

1.修改文件/etc/kubernetes/config(所有节点)

注意,master和slave主机都要修改 
指定master主机的ip,文件内容如下:

$ cat /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://master:8080"

1.修改配置文件/etc/etcd/etcd.conf,确保etcd监听所有地址。内容如下:

$ cat /etc/etcd/etcd.conf

ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

2.修改配置文件/etc/kubernetes/apiserver

cat /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--address=0.0.0.0"

KUBE_API_PORT="--port=8080"

KUBELET_PORT="--kubelet-port=10250"

KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota"

KUBE_API_ARGS=""

3.修改配置文件/etc/kubernetes/controller-manager,定义slave主机ip地址

KUBELET_ADDRESSES="--machines=master地址"
 

在master主机上,启动服务

执行如下命令,批量启动服务

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES
done

slave节点配置

注意:slave节点主机,同样要安装docker,flannel ,k8s

yum 安装kubernetes

yum -y install flannel docker
yum -y install --enablerepo=virt7-docker-common-release kubernetes

1.修改kubernetes配置文件,指定master。

$ cat /etc/kubernetes/config

KUBE_MASTER="--master=http://master:8080"

2.配置kubelet服务。

$ cat /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

KUBELET_HOSTNAME="--hostname-override=node自身"

KUBELET_API_SERVER="--api-servers=http://master:8080"

在slave主机上,启动服务

for SERVICES in kube-proxy kubelet docker flanneld; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES
done

验证

现在登陆master,确认slave的状态

$ kubectl get nodes

NAME           LABELS                                STATUS    AGE
10.16.93.182   kubernetes.io/hostname=node1   Ready     1h

这样就配置完成了
时间: 2024-10-09 22:42:46

在CentOS7上部署 Kubernetes集群的相关文章

Centos7上安装Kubernetes集群部署docker

一.安装前准备 1.操作系统详情 需要三台主机,都最小化安装 centos7.3,并update到最新 cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)  角色主机名IP Master      master192.168.1.14 node1    slave-1192.168.1.15 node2slave-2192.168.1.16 2.在每台主机上关闭firewalld改用iptables 输入以下命令,关闭fire

DevOps云原生应用:在centos上部署kubernetes集群(1)

本系列文档介绍使用二进制部署最新 kubernetes v1.14.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群.本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置.运行原理的人. 环境信息: OS 系统: Centos7.6 ( core ) kubernetes版本:v1.14.2 ETCD数据库:v3.3.13 Network插件:Flanneld 0.11.0 Docker 版本: 18.09.6-ce K8s插件

Centos7 上部署 redis集群

一.安装前看下redis5.0版本的新特性 先看一下 Redis 5 带来的更新内容: 新的流数据类型(Stream data type) https://redis.io/topics/streams-intro2.新的 Redis 模块 API:定时器.集群和字典 API(Timers, Cluster and Dictionary APIs) RDB 现在可存储 LFU 和 LRU 信息4.redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代

在CentOS7上部署Rabbitmq集群配置

概述 RabbitMQ是目前流行的开源消息队列系统.MQ(消息队列)是一种应用程序对应用程序的通信方法. RabbitMQ的结构图如图所示: 实现步骤 在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式.两台内存模式的节点无疑速度更快,因此通过客户端连接访问它们.但是客户端不可能分别连接两个内存节点,肯定是通过前端反向代理去轮询分发请求如果担心前端反向代理服务器故障,可以通过Keepalived软件做一个高可用架构.而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用.

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult

使用kubeadm部署kubernetes集群

使用kubeadm部署kubernetes集群 通过docker,我们可以在单个主机上快速部署各个应用,但是实际的生产环境里,不会单单存在一台主机,这就需要用到docker集群管理工具了,本文将简单介绍使用docker集群管理工具kubernetes进行集群部署. 1 环境规划与准备 本次搭建使用了三台主机,其环境信息如下:| 节点功能 | 主机名 | IP || ------|:------:|-------:|| master | master |192.168.1.11 || slave1

安装部署Kubernetes集群实战

kubernetes概述: Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制.Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本. 通过kubernetes可以实现的功能: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 我们的目

Shell脚本快速部署Kubernetes集群系统

本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本. 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog.51c

实战4节点Centos7.3 安装Kubernetes集群

Kubernetes集群安装部署 Kubernetes集群组件: -Master节点 - etcd 一个高可用的K/V键值对存储和服务发现系统 - kube-apiserver 提供kubernetes集群的API调用 - kube-controller-manager 确保集群服务 - kube-scheduler 调度容器,分配到Node -Minion节点 - flannel 实现夸主机的容器网络的通信 - kubelet 在Node节点上按照配置文件中定义的容器规格启动容器 - kube