安装配置docker
v1.9.0版本推荐使用docker v1.12,
v1.11, v1.13, 17.03也可以使用,再高版本的docker可能无法正常使用。
测试发现17.09无法正常使用,不能使用资源限制(内存CPU)
安装docker
# 卸载安装指定版本docker-ce yum remove -y docker-ce docker-ce-selinux container-selinux yum install -y --setopt=obsoletes=0 \ docker-ce-17.03.1.ce-1.el7.centos \ docker-ce-selinux-17.03.1.ce-1.el7.centos
修改docker配置使用systemd
在/etc/docker/daemon.json文件添加如下配置
centos7安装的docker12不能添加此参数,否则会无法启动
{
"exec-opts": ["native.cgroupdriver=systemd"] } # 如果使用了加速器配置格式如下 { "registry-mirrors": ["https://tfhzn46h.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"] }
启动docker
systemctl enable docker && systemctl restart docker
安装 kubeadm, kubelet 和 kubectl
如下的安装方法,选择其中一个即可。
翻墙安装
需要翻墙才能正常安装,如果不能翻墙,可以使用阿里云或其他云提供的容器海外构建功能,下载好包。
启动容器,之后从容器中把文件获取出来安装即可。
# 安装依赖 yum install -y ebtables socat # 在能翻墙的机器上下载rpm包 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF yum install -y yum-utils k8s_version=$(yum info kubelet | grep Version | awk -F ':' '{print $2}' | tr -d ' ') mkdir k8s-$k8s_version && cd k8s-$k8s_version yumdownloader kubelet kubeadm kubectl kubernetes-cni # 打包下载到要安装的机器上 cd .. && tar cvzf k8s-${k8s_version}.tgz k8s-$k8s_version/ # 安装 tar xf k8s-*.tgz && cd k8s-* && yum localinstall -y *.rpm
使用阿里镜像安装
# 配置源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF # 安装 yum install -y kubelet kubeadm kubectl
二进制安装方法(不推荐)
此需要自己安装kubernetes-cni
# 下载安装 version=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubectl wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubeadm wget https://storage.googleapis.com/kubernetes-release/release/$version/bin/linux/amd64/kubelet chmod +x kubectl kubeadm kubelet mv kubectl kubeadm kubelet /usr/local/bin
实验所用
kubeadm
相关文件已经上传到了百度网盘
链接:https://pan.baidu.com/s/1pl7YYUYZsPd98J0DhNLWEQ 密码:40na
配置系统相关参数
# 临时禁用selinux # 永久关闭 修改/etc/sysconfig/selinux文件设置 sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux setenforce 0 # 临时关闭swap # 永久关闭 注释/etc/fstab文件里swap相关的行 swapoff -a # 开启forward # Docker从1.13版本开始调整了默认的防火墙规则 # 禁用了iptables filter表中FOWARD链 # 这样会引起Kubernetes集群中跨Node的Pod无法通信 iptables -P FORWARD ACCEPT # 配置转发相关参数,否则可能会出错 cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 vm.swappiness=0 EOF sysctl --system