kubernetes介绍
容器编排部署工具:
docker三剑客:
(1)docker machine
(2)docker compose
(3)docker swarm
mesos+marathon:
(1)mesos作用于分布式计算过程中,对计算机资源进行管理和分配
(2)marathon基于mesos的私有PaaS,实现了服务发现和负载均衡、为部署提供REST API服务、授权和SSL、配置约束等功能。
(3)mesos和Marathon的关系:mesos如操作系统的内核,负责资源调度,marathon类比服务管理系统,用来管理应用的状态信息。marathon将应用程序部署为长时间运行的mesos任务。
kubernetes
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
kubernetes功能
• k8s能方便地管理跨机器运行容器化的应用
• 提供应用部署、维护、扩展机制
• 集群管理、安全防护、准入机制、 应用支撑、服务注册、服务发现、智能负载均衡、故障发现、自我修 复、服务滚动升级、在线扩容、资源配额管理
• 使用Docker对应用程序包装、实例化、运行
• 以集群的方式运行、管理跨机器的容器
• 解决Docker跨机器容器之间的通讯问题
• k8s的自我修复机制使得容器集群总是运行在用户期望的状态
k8s集群的安装部署
基本条件:
1 ) 集群中所有机器之间网络互通。
2 ) 可以访问外网,需要拉取镜像。
3 ) 禁止swap分区,可选。
4 ) 集群中所有机器时间同步
k8s-master与k8s-node配置:
[root@k8s-master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.55 k8s-master
192.168.16.44 k8s-node01
[root@k8s-master ~]# systemctl stop firewalld
[root@k8s-master ~]# sed -i '/SELINUX= /cSELINUX=disabled' /etc/selinux/config
[root@k8s-master ~]# setenforce 0
[root@k8s-master ~]# swapoff -a #临时
[root@k8s-master ~]# free -m
total used free shared buff/cache available
Mem: 5805 196 5468 11 140 5407
Swap: 0 0 0
[root@k8s-master ~]# sed -i '/\/dev\/mapper\/centos-swap/ s/^/#/' /etc/fstab
# 永久
[root@k8s-master ~]# vim /etc/fstab
[root@k8s-master ~]# yum install bash-completion wget tree psmisc net-tools vim lrzsz dos2unix -y
[root@k8s-master ~]# cat >> /etc/sysctl.d/k8s.conf << EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> vm.swappiness = 0
> EOF
[root@k8s-master ~]# modprobe br_netfilter
[root@k8s-master ~]# lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 1 br_netfilter
[root@k8s-master ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
[root@k8s-master ~]# yum -y install ipset ipvsadm
[root@k8s-master ~]# cat > /etc/sysconfig/modules/ipvs.modules <<EOF
> #!/bin/bash
> modprobe -- ip_vs
> modprobe -- ip_vs_rr
> modprobe -- ip_vs_wrr
> modprobe -- ip_vs_sh
> modprobe -- nf_conntrack_ipv4
> EOF
[root@k8s-master ~]# chmod 75