一、关闭防火墙服务
centos 7系统中
#systemctl disable firewalld
#systemctl stop firewalld
在主机上禁用SELinux,让容器可以读取主机文件系统:
#setenforce 0
或者修改系统文件/etc/sysconfig/selinux,将SELINUX=enforcing修改成SELINUX=disabled,然后重启linux。
二、使用kubeadm工具快速安装Kubernetes集群
1.安装kubeadm和相关工具
首先配置yum源,运行yum install命令安装:
#yum install -y docker kubelet kubeadm kubectl kubernetes-cni
启动docker和kubelet服务,并设置为开机自动启动:
#systemctl enable docker && systemctl start docker
#systemctl enable kubelet &&systemctl start kubelet
2.下载Kubernetes的相关镜像
修改docker配置文件,获取镜像加速服务,即在OPTIONS中加入--registry-mirror参数,重启docker服务。
需要下载的镜像:
#docker pull pause-amd
#docker pull etcd-amd
#docker pull kube-apiserver-amd
#docker pull kube-scheduler-amd
#docker pull kube-controller-manager-amd
#docker pull kube-proxy-amd
#docker pull dnsmasq-metrics-amd
#docker pull k8s-dns-kube-dns-amd
#docker pull k8s-dns-dnsmasq-nany-amd
#docker pull k8s-dns-sidecar-amd
#docker pull kube-disvovery-amd
#docker pull exechealthz-amd
3.kubeadn init安装Master
#kubeadm init --kubernetes-version=1.8.0
执行完后会出现admin.config配置文件和kubeadm join --token
可以复制配置文件到普通用户的home目录下:
#sudo cp /etc/kubernetes/admin.conf $HOME/admin.conf
#sudo chown $(id -u):$(id -g) $HOME/admin.conf
#export KUBECONFIG=$HOME/adminconf
完成了Master节点上Kubernetes软件的安装,但集群内还没有可用的工作Node,并缺乏容器的网络配置。
4.安装Node,加入集群
在Node主机上安装相关工具,执行:
#yum install -y docker kubelet kubeadm kubectl kubernetes-cni
#systemctl enable docker && systemctl start docker
#systemctl enable kubelet &&systemctl start kubelet
执行kubeadm join命令,加入集群:
#kubeadm join --token
token值来源于kubeadm安装Master过程中的最后一行字,Master节点也安装了kubelet,在默认情况下不参与工作负载。在Node节点上配置admin.conf文件,也可以使用kubectl工具查询资源对象。
5.安装网络插件
通过kubectl get nodes命令,Master节点为NotReady状态,是因为没有安装网络插件。可以根据提示安装插件
#kubectl apply -f http://
或则选择安装calico网络插件
6.验证集群安装完成
验证集群的相关Pod是否都正常创建并运行:
#kubectl get pods --all-namespaces
如果有错误状态的Pod,可以执行kubectl --namespaces=kube-system describe pod podname来查看错误原因,可能是镜像没有下载下来。
如果安装失败可以执行kubeadm reset将主机回复原状,重新执行kubeadm init 命令再次进行安装。