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入门-集群安装的更多相关文章

  1. Kubernetes(k8s)集群安装

    一:简介 二:基础环境安装 1.系统环境 os Role ip Memory Centos 7 master01 192.168.25.30 4G Centos 7 node01 192.168.25 ...

  2. 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 ...

  3. kubernetes rabbitmq 集群安装配置

    生成secret来保存relang-cookie: secret.yml文件: apiVersion: v1kind: Secretmetadata: name: rabbit-cookietype: ...

  4. Kubernetes 深入学习(一) —— 入门和集群安装部署

    一.简介 1.Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S. Ku ...

  5. k8s入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  6. k8s 入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  7. K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 前言 网上有很多关于k8s安装的文章,但是我参照一些文章安装时碰到了不少坑.今天终于安装好了,故将一些关键点写下来与大家共享. 我安装是基 ...

  8. Kubernetes集群安装(自己搭过,已搭好)

    k8s安装目录 1. 组件版本 && 集群环境 组件版本 etcd 集群 && k8s master 机器 && k8s node 机器 集群环境变量 ...

  9. [转帖]K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 http://www.cnblogs.com/jieky/p/10679998.html 原作者写的比较简单 大略流程和跳转的多一些 改天 ...

随机推荐

  1. 【开发记录】如何在B/S项目中使用中国天气的实时天气功能

    好久没有更新我的博客了,正好手头有一个比较合适的项目经验可以分享出来,就是这个如何使用中国天气的天气预报功能,也正好做个项目经验记录. 功能需求 这个功能需求比较简单,就是想在网页端显示实时天气数据. ...

  2. python 生成 1900-2100 的二十四节气文件

    [学习笔记] 转载 #!/usr/bin/python3.7# -*- coding:utf-8 -*- '''整体思路1:根据公式算出节气日期 1900 年到 2100  200 年的时间2:特殊的 ...

  3. python3 字符编码与转码的理解

    额...上通识课讲到了NLP12条,感觉讲的挺好的,照着抄一条先... 1,没有两个人是一样的 没有两个人的人生经验会完全一样,所以没有两个人的信念,价值和规条系统会是一样. 因此没有两个人对同一件事 ...

  4. 巧妙地使用typora编辑有道云笔记

    设置方法 找到有道云笔记本地保存路径: 找到有道云笔记的保存的路径:启动有道云 - 设置 - 有道云笔记(本地文件) - 打开文件夹 使用typora打开有道云笔记目录: typora 菜单栏 - O ...

  5. spring boot 2.0 集成 shiro 和 pac4j cas单点登录

    新开的项目,果断使用  spring boot  最新版本  2.0.3 ,免得后期升级坑太多,前期把雷先排了. 由于对 shiro 比较熟,故使用 shiro 来做权限控制.同时已经存在了 cas  ...

  6. 搭建微服务器:express+https+api代理

    概述 最近打算玩一下service worker,但是service worker只能在https下跑,所以查资料自己用纯express搭建了一个微服务器,把过程记录下来,供以后开发时参考,相信对其他 ...

  7. Xapian索引-文档检索过程分析之匹配百分比

    本文属于文档检索过程分析的一部分,重点分析文档匹配百分比(percent)的计算过程. 1 percent是什么? 我们之前分析的检索demo: Xapian::Query term_one = Xa ...

  8. Castle Windsor 的动态代理类如何获取实际类型

    问题 在实际开发过程当中我们可能会针对某些类型使用动态代理技术(AOP),注入了一些拦截器进行处理,但是一旦某个类型被动态代理了,那么就会生成一个代理类.这个时候在该类内部使用 GetType() 方 ...

  9. DotNetCore跨平台~组件化时代来了

    回到目录 进行dotnetcore之后,各种对象都是基于DI进行生产的,这就有了对象的生命周期一说,早在autofac里也有相关知识点,这与Microsoft.Extensions.Dependenc ...

  10. MIPI DSI之DBI DPI含义和区别(3-1)

    一.MIPI MIPI(Mobile Industry Processor Interface/移动工业处理器接口)是2003年由ARM.Nokia.ST 等公司成立联盟并为移动应用处理器制定的一个开 ...