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 原作者写的比较简单 大略流程和跳转的多一些 改天 ...
随机推荐
- if条件、while循环、for循环 相关练习
1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! while True: name = input('请输入用户名:') psw = inpu ...
- C# 设置Excel中的数字字符串格式
在Excel中,数字字符串用不同格式表示,可代表不同数据意义.例如在财务报表里需要用特定的数字字符串格式来反映金额信息.货币币种.数据精确程度.增减趋势等等.下面分享如何通过C#编程来设置Excel表 ...
- 4.熟悉App Inventor 2编程界面
以下图片来自 https://www.17coding.net/的 俄罗斯方块开发笔记 的 第二章 开发与测试环境 .感谢金老师的分享. 建议大家打开上面第二章的链接,认真阅读.
- 分享 Xamarin.android 关于使用SQLiteOpenHelper的小白经验
关于使用SQLiteOpenHelper的使用,对于小白的我,百度啦相当多的大神的介绍,均未能让我这新手(零基础)成功学会,参考了http://www.cnblogs.com/yaozhenfa/p/ ...
- ORA-39127: 调用 "WMSYS"."LT_EXPORT_PKG"."SCHEMA_INFO_EXP" 时发生意外错误
expdp 告警提示: Export: Release 11.2.0.4.0 - Production on 星期日 4月 28 12:14:51 2019....ORA-39127: 调用 &quo ...
- php7连接mysql测试代码
php7连接mysql测试代码 <?php $mysqli = new mysqli("localhost", "root", "passwor ...
- Ambari自定义Service
一.Ambari基本架构 img016.jpg Ambari Server 会读取 Stack 和 Service 的配置文件.当用 Ambari 创建服务的时候,Ambari Server 传送 ...
- AI应用开发实战 - 手写识别应用入门
AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...
- 关于inet_addr() 函数
inet_addr() 将一个字符串格式的ip地址转换成一个uint32_t数字格式 但是需要注意的是, 这个函数的返回值在大小端机器上是不同的 例如输入一个"192.168.0.1&quo ...
- spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
由于项目将原有的 Date类型的字段改造为 LocalDate,LocalDateTime,LocalTime 类型, 发现 spring 对项目的时间格式无法自动转换,故需手动配置下. 在sp ...