一:简介

1.什么是k8s?

k8s是一个docker容器管理工具

它是一个全新的基于容器技术的分布式架构领先方案,是开源的容器集群管理系统。

在docker的基础上,为容器化的应用提供部署运行,资源调度,服务发现和动态伸缩等一系列完整功能

2.----k8s的优势:

a,容器编排

b,轻量级

c,开源

d,弹性伸缩

e,负载均衡

二:k8s的核心功能

1.自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。

弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量

服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。

滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

 
2.核心概念
(1)master
                    k8s集群的管理节点,负责管理集群,提供集群的资源数据的访问入口
(2)Node
                    node是k8s集群架构中运行pod的服务节点
(3)Pod
                    运行于Node节点上,若干相关容器的组合,pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间,IP地址和端口,能够通过localhost进行通信
 
三:k8s的应用场景
k8s最适合跑微服务架构
 
四:搭建前的准备工作(所有服务器)
1.准备三台linux服务器,每台服务器配置2G内存和2CPU
角色                    主机名                  IP地址
Master                master                  192.168.175.3
Node                   node1                  192.168.175.250
Node                   node2                  192.168.175.251
 
2.安装vim  
命令:yum -y install vim
 
3.更改hosts文件添加主机名与IP映射关系
命令:vim /etc/hosts
192.168.175.3     master
192.168.175.250   node1
192.168.175.251   node2
 
4.关闭防火墙和selinux 
命令:iptables -F              #清除防火墙规则
命令:systemctl stop firewalld              #关闭防火墙
命令:setenforce 0              #关闭selinux
 
四:Kubernetes搭建
1.在各个节点上面安装k8s组件
配置master为etcd和master节点:
命令:[root@master ~]# yum install -y kubernetes etcd flannel ntp
命令:[root@node1 ~]# yum install -y kubernetes etcd flannel ntp
命令:[root@node2 ~]# yum install -y kubernetes etcd flannel ntp
 
2.(1)配置etcd
命令:[root@master ~]# vim /etc/etcd/etcd.conf                  #修改以下配置
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.175.3:2379"
ETCD_NAME="etcd"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.175.3:2379"

(2)启动服务

命令:[root@master ~]# systemctl start etcd

命令:[root@master ~]# systemctl status etcd
命令:[root@master ~]# systemctl enable etcd

注意:etcd 通讯使用 2379 端口

(3)查看状态:

命令:[root@master ~]# systemctl enable etcd

(4)检查 etcd 集群成员列表,这里只有一台

命令:[root@master ~]# etcdctl member list

3.配置master服务器
(1)配置master配置文件
命令:[root@master ~]# vim /etc/kubernetes/config                    #修改以下配置文件

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

(2)配置apiserver配置文件

命令:[root@master ~]# vim /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.175.3:2379"
KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"

(3)配置 kube-scheduler 配置文件
命令:[root@master ~]# vim /etc/kubernetes/scheduler

KUBE_SCHEDULER_ARGS="0.0.0.0"

4.(1) 配置 etcd,指定容器云中 docker 的 IP 网段

命令:[root@master ~]# etcdctl mkdir /k8s/network

命令:[root@master ~]# etcdctl set /k8s/network/config '{"Network": "10.255.0.0/16"}'

命令:[root@master ~]# etcdctl get /k8s/network/config

(2)设置flanneld服务

命令:[root@master ~]# vim /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://192.168.175.3:2379"
FLANNEL_ETCD_PREFIX="/k8s/network"
FLANNEL_OPTIONS="--iface=ens33"                           #设置自己的通信物理网卡

命令:[root@master ~]# systemctl restart flanneld         #重启服务

(3)检查所有配置

命令:[root@master ~]# cat /run/flannel/subnet.env
FLANNEL_NETWORK=10.255.0.0/16
FLANNEL_SUBNET=10.255.94.1/24
FLANNEL_MTU=1472
FLANNEL_IPMASQ=false

命令:[root@master ~]# cat /run/flannel/docker

DOCKER_OPT_BIP="--bip=10.255.94.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=true"
DOCKER_OPT_MTU="--mtu=1472"
DOCKER_NETWORK_OPTIONS=" --bip=10.255.94.1/24 --ip-masq=true --mtu=1472"

5. 启动master上4个服务
命令:[root@master ~]# systemctl restart kube-apiserver kube-controller-manager kube-scheduler flanneld

命令:[root@master ~]# systemctl status kube-apiserver kube-controller-manager kube-scheduler flanneld

命令:[root@master ~]# systemctl enable kube-apiserver kube-controller-manager kube-scheduler flanneld

6. 配置minion节点服务器
注意:minion各节点配置相同,这边已node1为例

(1)配置flanneld服务

命令:[root@node1 ~]# vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.175.3:2379"
FLANNEL_ETCD_PREFIX="/k8s/network"
FLANNEL_OPTIONS="--iface=ens33"

(2)命令:[root@node1 ~]# vim  /etc/kubernetes/config

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

(3)命令:[root@node1 ~]# vim /etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=node1"
KUBELET_API_SERVER="--api-servers=http://192.168.175.3:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

(4)启动node1服务

命令:[root@node1 ~]# systemctl restart flanneld kube-proxy kubelet docker
命令:[root@node1 ~]# systemctl enable flanneld kube-proxy kubelet docker
命令:[root@node1 ~]# systemctl status flanneld kube-proxy kubelet dock

7.查看服务是否安装成功(在master上查看)

命令:[root@master ~]# kubectl get nodes

NAME      STATUS    AGE
node1     Ready     2h
node2     Ready     25s

k8s的简介以及搭建的更多相关文章

  1. .net core i上 K8S(一)集群搭建

    1.前言 以前搭建集群都是使用nginx反向代理,但现在我们有了更好的选择——K8S.我不打算一上来就讲K8S的知识点,因为知识点还是比较多,我打算先从搭建K8S集群讲起,我也是在搭建集群的过程中熟悉 ...

  2. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  3. K8S之集群搭建

    转自声明 ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建 1.K8S环境搭建的几种方式 搭建K8S环境有几种常见的方式如下: (1)Minikube Minikube是一 ...

  4. k8s之DNS服务器搭建

    一.导读 在使用k8s部署springboot+redis简单应用这篇文章中,spring boot连接redis是直接使用的IP连接,那么可不可以直接使用服务名称进行连接呢?答案是可以的,这就是k8 ...

  5. Mosquitto搭建Android推送服务(二)Mosquitto简介及搭建

    文章钢要: 1.了解Mosquitto服务器 2.在Liunx中搭建Mosquitto服务器 3.设置Mosquitto集群 一.Mosquitto简介 一款实现了消息推送协议 MQTT v3.1 的 ...

  6. Exchange Server简介与搭建

    一.Exchange Server简介Exchange Server 是微软公司的一套电子邮件服务组件,是个消息与协作系统. 简单而言,Exchange server可以被用来构架应用于企业.学校的邮 ...

  7. [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)

    dashboard最终效果 多了执行sh的窗口 heapster+influxdb+grafana搭建 整个架构是 dashboard去检测 hepster service服务, heapster通过 ...

  8. k8s入门简介

    1.docker的三种编排工具 Docker的第一类编排工具: a.docker compose(docker原生):只能对一个主机上的容器进行编排,无法编排多个主机上的容器; b.docker sw ...

  9. Ribbon 框架简介及搭建

    2019独角兽企业重金招聘Python工程师标准>>> Ribbon简介 1.  负载均衡框架,支持可插拔式的负载均衡规则 2.  支持多种协议,如HTTP.UDP等 3.  提供负 ...

随机推荐

  1. oracle函数 last_day(d1)

    [功能]:返回日期d1所在月份最后一天的日期. [参数]:d1,日期型 [返回]:日期 [示例]select sysdate,last_day(sysdate)  hz from dual; 返回:2 ...

  2. 实时计算轻松上手,阿里云DataWorks Stream Studio正式发布

    Stream Studio是DataWorks旗下重磅推出的全新子产品.已于2019年4月18日正式对外开放使用.Stream Studi是一站式流计算开发平台,基于阿里巴巴实时计算引擎Flink构建 ...

  3. HZOI20190714 T1序列

    什么沙雕题啊……考察的是啥啊,分类咋搞啊……愁死我了…… 先把作者的正解放出来: 序列因为选出的一段是一个等比序列的子序列,我们分为两种情况:1. q=1,相当于找一个最长每个数都相等的子串,这个扫一 ...

  4. Careers/Staffing Index

    Careers/Staffing Index     Not having data governance can hurt your business. Download this eBook to ...

  5. mysql数据库之单表查询

    单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...

  6. hdu 3805 Triangle Conjecture

    Problem - 3805 题意是给出边的长度的,求出边长相等的三角形,输出任意一种答案.边长是1~n的数,每个只能用一次. 其实比较容易可以看出,无论我们怎么操作,只要保持边长总和都是相邻整数就是 ...

  7. poj 1066 Treasure Hunt (Geometry + BFS)

    1066 -- Treasure Hunt 题意是,在一个金字塔中有一个宝藏,金字塔里面有很多的墙,要穿过墙壁才能进入到宝藏所在的地方.可是因为某些原因,只能在两个墙壁的交点连线的中点穿过墙壁.问最少 ...

  8. FtpService [windows] 配置

    ---恢复内容开始--- 1. 启动FtpService 2. 增加ftp用户 1) 复制ftpd.bat,重命名为adduser.bat 2) 把set MAIN_CLASS=org.apache. ...

  9. UVA 1025 "A Spy in the Metro " (DAG上的动态规划?? or 背包问题??)

    传送门 参考资料: [1]:算法竞赛入门经典:第九章 DAG上的动态规划 题意: Algorithm城市的地铁有 n 个站台,编号为 1~n,共有 M1+M2 辆列车驶过: 其中 M1 辆列车从 1 ...

  10. Redis - 命令行工具

    使用Redis内置的命令行工具 redis-cli一些便捷的命令: 1.执行单条命令 平时在访问 Redis 服务器,一般都会使用 redis-cli 进入交互模式,然后一问一答来读写服务器,这种情况 ...