『高级篇』docker之kubernetes基础集群部署(上)(33)

栏目: 编程工具 · 发布时间: 5年前

内容简介:这次继续集群的部署simple版本。ETCD保证了数据的存储,保证了数据的高可用,还有数据的一致性,它跟zookeeper类似。kubernetes需要存储很多东西,像它本身的节点信息,组件信息,还有通过kubernetes运行的pod,deployment,service等等。都需要持久化。etcd就是它的数据中心。生产环境中为了保证数据中心的高可用和数据的一致性,一般会部署最少三个节点。我们这里以学习为主就只在主节点部署一个实例。

这次继续集群的部署simple版本。

『高级篇』docker之kubernetes基础集群部署(上)(33)

基础集群部署 – kubernetes-simple

部署ETCD(主节点)

简介

ETCD保证了数据的存储,保证了数据的高可用,还有数据的一致性,它跟zookeeper类似。kubernetes需要存储很多东西,像它本身的节点信息,组件信息,还有通过kubernetes运行的pod,deployment,service等等。都需要持久化。etcd就是它的数据中心。生产环境中为了保证数据中心的高可用和数据的一致性,一般会部署最少三个节点。我们这里以学习为主就只在主节点部署一个实例。

如果你的环境已经有了etcd服务(不管是单点还是集群),可以忽略这一步。前提是你在生成配置的时候填写了自己的etcd endpoint哦~

部署

etcd的二进制文件和服务的配置我们都已经准备好,现在的目的就是把它做成系统服务并启动。(这个是要在主节点操作的,在server01上)

#把服务配置文件copy到系统服务目录
cp ~/kubernetes-starter/target/master-node/etcd.service /lib/systemd/system/
#enable服务
systemctl enable etcd.service
#创建工作目录(保存数据的地方)
mkdir -p /var/lib/etcd
# 启动服务
service etcd start
# 查看服务日志,看是否有错误信息,确保服务正常
journalctl -f -u etcd.service
# 查看在线的端口2379 2380 
netstat -ntlp

『高级篇』docker之kubernetes基础集群部署(上)(33)

查看etcd的配置

WorkingDirectory 工作目录配置文件存在这个路径下

ExecStart 执行的命令

name 名称

listen-client-urls 监听节点

advertise-client-urls 建议其他人访问的地址

data-dir 数据目录

vi /lib/systemd/system/etcd.service

『高级篇』docker之kubernetes基础集群部署(上)(33)

PS: 提示start etcd 已经启动

部署APIServer(主节点)

简介

kube-apiserver是Kubernetes最重要的核心组件之一,主要提供以下的功能

– 提供集群管理的REST API接口,包括认证授权(我们现在没有用到)数据校验以及集群状态变更等

– 提供其他模块之间的数据交互和通信的枢纽(其他模块通过API Server查询或修改数据,只有API Server才直接操作etcd)

生产环境为了保证apiserver的高可用一般会部署2+个节点,在上层做一个lb做负载均衡,比如haproxy。由于单节点和多节点在apiserver这一层说来没什么区别,所以我们学习部署一个节点就足够啦

部署

APIServer的部署方式也是通过系统服务。部署流程跟etcd完全一样,不再注释

cp kubernetes-starter/target/master-node/kube-apiserver.service /lib/systemd/system/
systemctl enable kube-apiserver.service
service kube-apiserver start
journalctl -f -u kube-apiserver

『高级篇』docker之kubernetes基础集群部署(上)(33)

重点配置说明

[Unit]

Description=Kubernetes API Server

[Service]

#可执行文件的位置

ExecStart=/home/michael/bin/kube-apiserver \

#非安全端口(8080)绑定的监听地址 这里表示监听所有地址

–insecure-bind-address=0.0.0.0 \

#不使用https

–kubelet-https=false \

#kubernetes集群的虚拟ip的地址范围

–service-cluster-ip-range=10.68.0.0/16 \

#service的nodeport的端口范围限制

–service-node-port-range=20000-40000 \

#很多地方都需要和etcd打交道,也是唯一可以直接操作etcd的模块

–etcd-servers=http://192.168.1.102:2379 \

『高级篇』docker之kubernetes基础集群部署(上)(33)

部署ControllerManager(主节点)

简介

Controller Manager由kube-controller-manager和cloud-controller-manager组成,是Kubernetes的大脑,它通过apiserver监控整个集群的状态,并确保集群处于预期的工作状态。

kube-controller-manager由一系列的控制器组成,像Replication Controller控制副本,Node Controller节点控制,Deployment Controller管理deployment等等

cloud-controller-manager在Kubernetes启用Cloud Provider的时候才需要,用来配合云服务提供商的控制

controller-manager、scheduler和apiserver 三者的功能紧密相关,一般运行在同一个机器上,我们可以把它们当做一个整体来看,所以保证了apiserver的高可用即是保证了三个模块的高可用。也可以同时启动多个controller-manager进程,但只有一个会被选举为leader提供服务。

部署

通过系统服务方式部署

cp ~/kubernetes-starter/target/master-node/kube-controller-manager.service /lib/systemd/system/
systemctl enable kube-controller-manager.service
service kube-controller-manager start
journalctl -f -u kube-controller-manager

重点配置说明

[Unit]

Description=Kubernetes Controller Manager

[Service]

ExecStart=/home/michael/bin/kube-controller-manager \

#对外服务的监听地址,这里表示只有本机的程序可以访问它

–address=127.0.0.1 \

#apiserver的url

–master=http://127.0.0.1:8080 \

#服务虚拟ip范围,同apiserver的配置

–service-cluster-ip-range=10.68.0.0/16 \

#pod的ip地址范围

–cluster-cidr=172.20.0.0/16 \

#下面两个表示不使用证书,用空值覆盖默认值

–cluster-signing-cert-file= \

–cluster-signing-key-file= \

『高级篇』docker之kubernetes基础集群部署(上)(33)

PS:下次继续把k8s的基础搭建完成。这个坑很大,注意自己的符号标点,我就是把端口签名的冒号写成了点。找了4个小时各种试才发现的。

『高级篇』docker之kubernetes基础集群部署(上)(33)

>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:

已是最新文章


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java编程思想

Java编程思想

[美] Bruce Eckel / 陈昊鹏、饶若楠 / 机械工业出版社 / 2005-9 / 95.00元

本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 从本书获得的各项大奖以及来自世界各地的读者评论中,不难看出这是一本经典之作。本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到......一起来看看 《Java编程思想》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具