容器编排工具比较
docker compose 单机编排工具
docker swarm 集群编排
kubernetes
k8s的职责
自动化容器的部署和复制
随时扩展或收缩容器规模
容器分组Group,并且提供容器间的负载均衡
实时监控,及时故障发现,自动替换
k8s基本概念
Pod
POD是'容器'的容器,可以包含多个'Container'
POD是K8s最小可部署单元,一个POD就是一个进程
POD内部容器网络互通,每个POD都有独立虚拟IP
POD都是部署完整的应用或模块
POD 【Pause 、user container1 、user container2】
Pause 1.提供一个共享的网络空间 2.为当前POD提供一个共享的Volumes(共享存储卷)
Container(容器)
label(标签)
说明性标签:在进行部署的时候在哪些pod操作,相当于每一个pod别名
replication controller (复制控制器)
pod数量进行监控
service (服务)
node (节点)
Kubernetes Master(Kubernetes主节点)
kubeket kube-proxy docker
国内安装K8S的四种途径
使用kubeadmin通过离线镜像安装
使用阿里公有云平台k8s
通过yum官方仓库安装,但是版本比较太古老
二进制包的形式进行安装,kubeasz(github)
1.设置主机名和时区
timedatectl set-timezone Asia/Shanghai
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
2.添加hosts网络主机配置,三台虚拟机都要设置
vim /etc/hosts
192.168.163.132 master
192.168.163.133 node1
192.168.163.137 node2
3.关闭防火墙,三台虚拟机都要设置,生产环境跳过这一步
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
4.将镜像包上传至服务器每个节点
mkdir /usr/local/k8s-install
cd /usr/local/k8s-install
XFTP上传安装文件
ls
kubernetes-1.14
cd kubernetes-1.14
ls
flannel-dashboard.tar.gz kube114-rpm.tar.gz docker-ce-18.09.tar.gz k8s-114-images.tar.gz等等
5.按每个centos上安装docker
tar -zxvf docker-ce-18.09.tar.gz
cd docker
yum localinstall -y *.rpm
systemctl start docker
systemctl enable docker
6.确保从cgroups均在同一个从groupfs
docker info | grep cgroup
Cgroup Driver:cgroupfs
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF
systemctl daemon-reload && systemctl restart docker
7.安装kubeadm
kubeadm是集群部署工具
cd /usr/local/k8s-install
cd kubernetes-1.14
tar -zxvf kube114-rpm.tar.gz
cd kube114-rpm
yum localinstall -y *.rpm
8.关闭交换区
swapoff -a
vi /etc/fstab
9.配置网桥
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
10.通过镜像安装k8s
cd /usr/local/k8s-install
cd kubernetes-1.14
docker load -i k8s-114-images.tar.gz
docker load -i flannel-dashboard.tar.gz
11.master主服务器配置
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16
会看到
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
在master上紧接着执行上面三行
以及会看到
kubeadm join 192.168.0.132:6443 --token aoeout.********* --discovery-token-unsaf-skip-ca-verification
在其他节点上执行这段话
kubectl get nodes
kubectl get pod --all-namespaces
设置全局变量
安装flannel网络组件
kubectl create -f kube-flannel.yaml
kubeadm token list
查看token
kubeadm/kubelet/kubectl区别
kubeadm是kubernetes集群快速构建工具
kubelet运行在所有节点上,负责启动POD和容器,以系统服务形式出现
kubectl是kubernetes命令行工具,提供指令
启动节点命令:
systemctl start kubelet
systemctl enable kubelet