Kubernetes容器化部署

本文介绍如何部署Kubernetes,由于基础设施环境多样,本文部署情况仅仅针对裸机或虚拟机环境,暂不支持公有云如GCE,AWS,DigitOcean环境,也不支持直接与虚拟化系统如ESXi进行部署。

部署方式

Kubernetes部署方式分为两种,二进制方式或容器化方式

  1. 二进制:直接部署所有组件到主机
  2. 容器化:所有组件在容器内方式运行

容器部署Kubernetes

一、依赖

二、下载安装包

下载k8s_install_imagesmasterslave机器,解压安装包,赋予setup.sh可执行权限

root@k8s-master:/home/ubuntu# tar xzf k8s_install_images.tar.gz 
root@k8s-master:/home/ubuntu# ls
k8s_install_images  k8s_install_images.tar.gz
root@k8s-master:/home/ubuntu# cd k8s_install_images
root@k8s-master:/home/ubuntu/k8s_install_images# ls
16.04-xenial  flannel.yaml  images  setup.sh
root@k8s-master:/home/ubuntu/k8s_install_images# chmod +x setup.sh 
root@k8s-master:/home/ubuntu/k8s_install_images# 

file:///2.png

执行./setup.shsetup.sh会自动安装kubectlkubernetes-cnikubeletkubeadm组件

并且会自动导入docker镜像

使用docker images查看master机器k8s组件镜像信息

使用kubeadm初始化master节点,需要定义pod私有地址范围(不要和主机私有地址范围冲突)

root@k8s-master:/home/ubuntu/# kubeadm init --pod-network-cidr=10.244.0.0/16

重要:记录kubeadm join --token=信息,因为slave需要该条指令加入集群

创建flannel网络容器

root@k8s-master:/home/ubuntu/k8s_install_images# kubectl apply -f flannel.yaml

使用kubectl查看kubernetes组件运行情况

kubectl get pods --all-namespaces

kubernetes集群添加slave节点

下载k8s_install_images安装包,解压,执行setup.sh同上,安装完kubeadmkubectlkubelet等组件后执行master节点初始化后输出的kubeadm join指令

kubeadm join --token=5ac10b.060d697903aae36d 192.168.3.48

master节点查看集群情况