一、环境准备

  • 操作系统:centos7.5
  •  

    k8s:1.12.1

二、步骤:

主要根据官方文档进行安装

2.1安装前准备

  • 一台或多台运行linux的物理机或虚拟机,本文使用centos7.5minimal
  • 2G内存2核cpu
  • 集群中所有机器网络联通
  • 每台机器的唯一主机名称、mac地址、product_uuid
  • 指定的端口开放
  • 关闭swap

2.2 安装运行时(docker)

这里可以根据官方文档进行安装docker-ce

  • 卸载旧版本docker:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 安装docker依赖包

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  • 添加docker源

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker-ce

$ sudo yum install docker-ce

如果要安装指定版本的docker,可以先查询:

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable

然后安装指定版本

$ sudo yum install docker-ce-<VERSION STRING>

至此docker安装完毕,启动docker

systemctl start docker
开机自动启动
systemctl enable docker

安装Installing kubeadm, kubelet and kubectl

这个三个组件集群中的每台机器都要安装

国外的源被墙了,这里使用阿里的源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF


# Set SELinux in permissive mode (effectively disabling it)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

systemctl enable kubelet && systemctl start kubelet

如果不关闭防火墙后续会提示firewalld is active,所以这里把防火墙也关了
systemctl  stop firewalld
systemctl disable firewalld

官方文档说在rhel/centos上由于iptables的原因可能会导致traffic 路由错误,所以做如下设置:

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

master节点上kubelet 使用的cgroup驱动配置

这里我们用的是docker,无需额外配置

使用kubeadm创建集群

kubeadm目前仍然处于beta阶段(2018-10-22),在2018会打到GA状态

待续

 

 

 

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐