Kubernetes入门-集群安装
Kubernetes是谷歌开源的容器集群编排平台,是一个完备的分布式系统支撑平台,为容器化应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,具有强大的故障发现和自我修复机制、服务滚动升级和在线扩容能力,可扩展资源自动调度机制以及多粒度的资源配额管理能力。
Kubernetes目前以77%的市场份额独占容器编排平台市场鳌头。目前所有的主要云服务提供商(亚马逊、微软、Google、IBM等)都将其作为部署云原生应用的解决方案。Kubernetes已经在大量企业中落地,并广泛的运用在生产环境中。
作为容器化的主流运行和编排管理平台,Kubernetes的重要性毋庸置疑,以下相关内容只是本人的相关笔记,仅作参考,欢迎业内各路大神指点。
下面是K8S架构简图:

可以看出,K8S架构分Master+Node两部分,其中Master节点作为管理节点,主要提供管理用户相关操作,Node节点作为应用部署节点,实现业务功能,被Master节点管理控制和调度。通过Master和Node节点的各大组件,不难看出,要安装K8S集群,需要分别安装如下组件:
Master节点:
| 组件名称 | 组件说明 |
| etcd | 非关系型数据库,用于存储相关信息 |
| kube-apiserver | 核心通信组件,其他组件通过它实现通信 |
| kube-controller-manager | 集群内部管理中心,通过各种manager实现集群管理 |
| kube-scheduler | 负责相关调度,比如node上pod的调度 |
Node节点:
| 组件名称 | 组件说明 |
| kube-proxy | 负责网络通信,相当与代理,实现请求到pod的转发 |
| kubelet | node节点核心组件,作为Master节点任务的执行者 |
安装环境如下:
| 操作系统 | 节点角色 | 节点IP |
| centOS7.2 X64 | Master | 120.27.15.116 |
| centOS7.2 X64 | node | 39.108.85.46 |
安装过程如下:
step1、安装etcd,这个不属于k8s的东东,直接通过yum install etcd 安装即可
[root@alta-sz kubernetes]# yum install etcd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package etcd.x86_64 :3.2.-.el7 will be installed
--> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Installing:
etcd x86_64 3.2.-.el7 extras 9.3 M Transaction Summary
========================================================================================================================================================================
Install Package Total download size: 9.3 M
Installed size: M
Is this ok [y/d/N]: y
Downloading packages:
etcd-3.2.-.el7.x86_64.rpm | 9.3 MB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : etcd-3.2.-.el7.x86_64 /
Verifying : etcd-3.2.-.el7.x86_64 / Installed:
etcd.x86_64 :3.2.-.el7 Complete!
安装完进行配置:
vi /etc/etcd/etcd.conf
[root@alta-sz etcd]# vi /etc/etcd/etcd.conf #[Member]
#ETCD_CORS=""
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_WAL_DIR=""
#ETCD_LISTEN_PEER_URLS="http://localhost:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
#ETCD_MAX_SNAPSHOTS=""
#ETCD_MAX_WALS=""
ETCD_NAME="master"
#ETCD_SNAPSHOT_COUNT=""
#ETCD_HEARTBEAT_INTERVAL=""
#ETCD_ELECTION_TIMEOUT=""
#ETCD_QUOTA_BACKEND_BYTES=""
#ETCD_MAX_REQUEST_BYTES=""
#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s" #
#[Clustering]
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://120.27.15.116:2379,http://120.27.15.116:4001"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
#ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_STRICT_RECONFIG_CHECK="true"
#ETCD_ENABLE_V2="true"
#
#[Proxy]
#ETCD_PROXY="off"
#ETCD_PROXY_FAILURE_WAIT=""
#ETCD_PROXY_REFRESH_INTERVAL=""
#ETCD_PROXY_DIAL_TIMEOUT=""
#ETCD_PROXY_WRITE_TIMEOUT=""
#ETCD_PROXY_READ_TIMEOUT=""
#
#[Security]
#ETCD_CERT_FILE=""
#ETCD_KEY_FILE=""
#ETCD_CLIENT_CERT_AUTH="false"
#ETCD_TRUSTED_CA_FILE=""
#ETCD_AUTO_TLS="false"
#ETCD_PEER_CERT_FILE=""
#ETCD_PEER_KEY_FILE=""
#ETCD_PEER_CLIENT_CERT_AUTH="false"
#ETCD_PEER_TRUSTED_CA_FILE=""
#ETCD_PEER_AUTO_TLS="false"
#
#[Logging]
#ETCD_DEBUG="false"
#ETCD_LOG_PACKAGE_LEVELS=""
#ETCD_LOG_OUTPUT="default"
#
#[Unsafe]
#ETCD_FORCE_NEW_CLUSTER="false"
#
#[Version]
#ETCD_VERSION="false"
#ETCD_AUTO_COMPACTION_RETENTION=""
#
#[Profiling]
#ETCD_ENABLE_PPROF="false"
#ETCD_METRICS="basic"
#
#[Auth]
#ETCD_AUTH_TOKEN="simple"
启动etcd,然后测试:
systemctl enable etcd
systemctl start etcd
分别存入一个值{test/key1:123}进行测试
etcdctl set test/key1 123
etcd get test/key1
[root@alta-sz etcd]# etcdctl set test/key1 [root@alta-sz etcd]# etcdctl get test/key1 [root@alta-sz etcd]#
[root@alta-sz etcd]#
[root@alta-sz etcd]#
[root@alta-sz etcd]# etcdctl -C http://localhost:2379 cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://localhost:2379
cluster is healthy
以上说明etcd安装成功了!
step2、Master节点安装Kubernetes
执行:yum install kubernetes -y
[root@alta-sz k8s]# yum install kubernetes -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package kubernetes.x86_64 :1.5.-0.7.git269f928.el7 will be installed
--> Processing Dependency: kubernetes-node = 1.5.-0.7.git269f928.el7 for package: kubernetes-1.5.-0.7.git269f928.el7.x86_64
--> Processing Dependency: kubernetes-master = 1.5.-0.7.git269f928.el7 for package: kubernetes-1.5.-0.7.git269f928.el7.x86_64
--> Running transaction check
---> Package kubernetes-master.x86_64 :1.5.-0.7.git269f928.el7 will be installed
--> Processing Dependency: kubernetes-client = 1.5.-0.7.git269f928.el7 for package: kubernetes-master-1.5.-0.7.git269f928.el7.x86_64
---> Package kubernetes-node.x86_64 :1.5.-0.7.git269f928.el7 will be installed
--> Processing Dependency: socat for package: kubernetes-node-1.5.-0.7.git269f928.el7.x86_64
--> Processing Dependency: conntrack-tools for package: kubernetes-node-1.5.-0.7.git269f928.el7.x86_64
--> Running transaction check
---> Package conntrack-tools.x86_64 :1.4.-.el7_3 will be installed
--> Processing Dependency: libnetfilter_cttimeout.so.(LIBNETFILTER_CTTIMEOUT_1.)(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
--> Processing Dependency: libnetfilter_cttimeout.so.(LIBNETFILTER_CTTIMEOUT_1.)(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
--> Processing Dependency: libnetfilter_cthelper.so.(LIBNETFILTER_CTHELPER_1.)(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
--> Processing Dependency: libnetfilter_queue.so.()(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
--> Processing Dependency: libnetfilter_cttimeout.so.()(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
--> Processing Dependency: libnetfilter_cthelper.so.()(64bit) for package: conntrack-tools-1.4.-.el7_3.x86_64
---> Package kubernetes-client.x86_64 :1.5.-0.7.git269f928.el7 will be installed
---> Package socat.x86_64 :1.7.3.2-.el7 will be installed
--> Running transaction check
---> Package libnetfilter_cthelper.x86_64 :1.0.-.el7 will be installed
---> Package libnetfilter_cttimeout.x86_64 :1.0.-.el7 will be installed
---> Package libnetfilter_queue.x86_64 :1.0.-.el7_2 will be installed
--> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Installing:
kubernetes x86_64 1.5.-0.7.git269f928.el7 extras k
Installing for dependencies:
conntrack-tools x86_64 1.4.-.el7_3 base k
kubernetes-client x86_64 1.5.-0.7.git269f928.el7 extras M
kubernetes-master x86_64 1.5.-0.7.git269f928.el7 extras M
kubernetes-node x86_64 1.5.-0.7.git269f928.el7 extras M
libnetfilter_cthelper x86_64 1.0.-.el7 base k
libnetfilter_cttimeout x86_64 1.0.-.el7 base k
libnetfilter_queue x86_64 1.0.-.el7_2 base k
socat x86_64 1.7.3.2-.el7 base k Transaction Summary
========================================================================================================================================================================
Install Package (+ Dependent packages) Total download size: M
Installed size: M
Downloading packages:
(/): kubernetes-1.5.-0.7.git269f928.el7.x86_64.rpm | kB ::
(/): conntrack-tools-1.4.-.el7_3.x86_64.rpm | kB ::
(/): kubernetes-client-1.5.-0.7.git269f928.el7.x86_64.rpm | MB ::
(/): libnetfilter_cttimeout-1.0.-.el7.x86_64.rpm | kB ::
(/): libnetfilter_cthelper-1.0.-.el7.x86_64.rpm | kB ::
(/): libnetfilter_queue-1.0.-.el7_2.x86_64.rpm | kB ::
(/): kubernetes-node-1.5.-0.7.git269f928.el7.x86_64.rpm | MB ::
(/): socat-1.7.3.2-.el7.x86_64.rpm | kB ::
(/): kubernetes-master-1.5.-0.7.git269f928.el7.x86_64.rpm | MB ::
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total MB/s | MB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : kubernetes-client-1.5.-0.7.git269f928.el7.x86_64 /
Installing : kubernetes-master-1.5.-0.7.git269f928.el7.x86_64 /
Installing : socat-1.7.3.2-.el7.x86_64 /
Installing : libnetfilter_cthelper-1.0.-.el7.x86_64 /
Installing : libnetfilter_queue-1.0.-.el7_2.x86_64 /
Installing : libnetfilter_cttimeout-1.0.-.el7.x86_64 /
Installing : conntrack-tools-1.4.-.el7_3.x86_64 /
Installing : kubernetes-node-1.5.-0.7.git269f928.el7.x86_64 /
Installing : kubernetes-1.5.-0.7.git269f928.el7.x86_64 /
Verifying : libnetfilter_cttimeout-1.0.-.el7.x86_64 /
Verifying : libnetfilter_queue-1.0.-.el7_2.x86_64 /
Verifying : kubernetes-node-1.5.-0.7.git269f928.el7.x86_64 /
Verifying : kubernetes-client-1.5.-0.7.git269f928.el7.x86_64 /
Verifying : kubernetes-master-1.5.-0.7.git269f928.el7.x86_64 /
Verifying : libnetfilter_cthelper-1.0.-.el7.x86_64 /
Verifying : conntrack-tools-1.4.-.el7_3.x86_64 /
Verifying : socat-1.7.3.2-.el7.x86_64 /
Verifying : kubernetes-1.5.-0.7.git269f928.el7.x86_64 / Installed:
kubernetes.x86_64 :1.5.-0.7.git269f928.el7 Dependency Installed:
conntrack-tools.x86_64 :1.4.-.el7_3 kubernetes-client.x86_64 :1.5.-0.7.git269f928.el7 kubernetes-master.x86_64 :1.5.-0.7.git269f928.el7
kubernetes-node.x86_64 :1.5.-0.7.git269f928.el7 libnetfilter_cthelper.x86_64 :1.0.-.el7 libnetfilter_cttimeout.x86_64 :1.0.-.el7
libnetfilter_queue.x86_64 :1.0.-.el7_2 socat.x86_64 :1.7.3.2-.el7 Complete!
安装完成可以分别查看如下目录文件:

step3、配置Master节点,Master节点需要配置config、apiserver、controller-manager、schduler
1、config配置:vi /etc/kubernetes/config 主要配置其中的参数KUBE_MASTER

2、apiserver配置:vi /etc/kubernetes/apiserver
参数说明:
KUBE_API_ADDRESS:ApiServer监听IP地址,配置为0.0.0.0,监听所有
KUBE_API_PORT:ApIServer监听端口
KUBE_ETCD_SERVERS:ETCD存储服务器IP+PORT

3、controller-manager配置:保持默认即可

4、schduler配置:保持默认即可

step4、启动Master节点
启动apiserver:
systemctl enable kube-apiserver.service
systemctl start kube-apiserver.service
启动controller-manager:
systemctl enable kube-controller-manager.service
systemctl start kube-controller-manager.service
启动scheduler:
systemctl enable kube-scheduler.service
systemctl start kube-scheduler.service

至此,Master节点就安装完成了,下面继续Node节点的安装。
step5、安装Node节点
yum install kubernetes -y 安装和Master的步骤相同
step6、配置Node节点、Node节点需要配置config、kubelet、proxy
1、配置config:vi /etc/kubernetes/config

2、配置kubelet:vi /etc/kubernetes/kublet

3、配置proxy:保持默认即可

step7、启动Node节点
启动kubelet:
systemctl enable kubelet.service
systemctl startkubelet.service
启动proxy:
systemctl enable kube-proxy.service
systemctl startkube-proxy.service

step8、测试验证
到Master节点执行:kubectl get nodes 如下,node节点成功加入到Master。

一个简单的Kubernetes集群就搭建起来了。
Kubernetes入门-集群安装的更多相关文章
- Kubernetes(k8s)集群安装
一:简介 二:基础环境安装 1.系统环境 os Role ip Memory Centos 7 master01 192.168.25.30 4G Centos 7 node01 192.168.25 ...
- kubernetes(k8s)集群安装calico
添加hosts解析 cat /etc/hosts 10.39.7.51 k8s-master-51 10.39.7.57 k8s-master-57 10.39.7.52 k8s-master-52 ...
- kubernetes rabbitmq 集群安装配置
生成secret来保存relang-cookie: secret.yml文件: apiVersion: v1kind: Secretmetadata: name: rabbit-cookietype: ...
- Kubernetes 深入学习(一) —— 入门和集群安装部署
一.简介 1.Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S. Ku ...
- k8s入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- k8s 入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- K8s集群安装--最新版 Kubernetes 1.14.1
K8s集群安装--最新版 Kubernetes 1.14.1 前言 网上有很多关于k8s安装的文章,但是我参照一些文章安装时碰到了不少坑.今天终于安装好了,故将一些关键点写下来与大家共享. 我安装是基 ...
- Kubernetes集群安装(自己搭过,已搭好)
k8s安装目录 1. 组件版本 && 集群环境 组件版本 etcd 集群 && k8s master 机器 && k8s node 机器 集群环境变量 ...
- [转帖]K8s集群安装--最新版 Kubernetes 1.14.1
K8s集群安装--最新版 Kubernetes 1.14.1 http://www.cnblogs.com/jieky/p/10679998.html 原作者写的比较简单 大略流程和跳转的多一些 改天 ...
随机推荐
- Web前端 css实现元素垂直居中的常用方法
方法1:table-cell html结构: 1 2 3 <div class="box box1"> <span>垂直居中</spa ...
- openlayers4 入门开发系列之船讯篇
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- android Fragment中使用Toolbar
在Activity中可以直接使用 setSupportActionBar(toolbar); 就可以重写 onCreateOptionsMenu 和 onOptionsItemSelected 方法: ...
- Accesss数据库的DBhelper类(带分页)
首先配置web.config,使配置文件连接access数据库: <connectionStrings> <add name="DBConnection" con ...
- 关于Python中读取写入文件并进行文件与用户交互的操作
一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...
- mysql性能优化之数据库级别优化--优化sql语句
一 优化SELECT语句 1.1 WHERE子句优化 本文暂时只讨论可以处理WHERE子句的优化,下面的一些实例使用SELECT语句,但是相同的优化同样适用DELETE和UPDATE语句中的WHER ...
- Entity Framework 异常: 'OFFSET' 附近有语法错误。\r\n在 FETCH 语句中选项 NEXT 的用法无效。
在使用 EF 的时候,突然发现更新后在服务器中运行出错,异常信息主要包含以下信息: 'OFFSET' 附近有语法错误.\r\n在 FETCH 语句中选项 NEXT 的用法无效.\r\n关键字 'AS' ...
- 使用 线性规划 解决 数字 排序问题, +Leapms模型
问题 将如下一组数字从大到小排序. {10, 20, -32, 177, 0, -11.5, 19, 7, 6.2, -6.28, -2.71, 44} 解决办法 建立数学模型,给出各个数字的次序值. ...
- SpringBoot系列——Spring-Data-JPA(究极进化版) 自动生成单表基础增、删、改、查接口
前言 我们在之前的实现了springboot与data-jpa的增.删.改.查简单使用(请戳:SpringBoot系列——Spring-Data-JPA),并实现了升级版(请戳:SpringBoot系 ...
- DS标签控件文本解析格式
DS标签控件使用DSL文本渲染引擎,支持DSL引擎代码.目前支持代码如下: <b>粗体</b> 以粗体显示 <i>斜体</i> 以斜体显示 <u& ...