内容简介:一:简介1.什么是k8s?k8s是一个docker容器管理工具
一:简介
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组件
命令:[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的简介以及搭建》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【Cocos2d-x】开发基础-Cocos简介与环境搭建
- Flutter入门学习:Flutter简介以及在macOS上搭建Flutter开发环境
- Lua Web快速开发指南(2) - cf的运行机制简介与基于httpd库的开发环境搭建
- Transformers 简介(上)
- Python 简介
- Istio简介
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java EE WEB开发与项目实战
李俊青 / 华中科技大学出版社 / 2011-11 / 59.80元
本书采用工程案例的形式,将日常Java EE项目开发所涉及的技术要点进行了解析,系统介绍了Apache的安装、Tomcat的安装、虚拟主机的配置、开发工具的搭配使用、验证码的使用、过滤器的使用、密码的加密与解密、JavaMail邮件发送、Web在线编辑器的使用、文件上传、数据库连接池、Ajax与Servlet的身份认证、Struts框架的应用、JSF框架的应用、Spring框架的应用、Hibern......一起来看看 《Java EE WEB开发与项目实战》 这本书的介绍吧!