安装前准备工作

  • 时间同步
yum  install  ntp  ntpdate -y
systemctl  start ntpd
systemctl  enable  ntpd

  • 基本常用的命令的安装
yum  clean  all
yum  -y install   psmisc gcc gcc-c++ texinfo wget unzip zip gcc libticonv-devel  libcurl-devel curl nmap iotop dstat tree mlocate ntpdate openssh-clients  net-tools vim unzip zip wget ftp ntsysv nmap curl lrzsz  sysstat  libselinux-python   pcre pcre-devel zlib zlib-devel openssl openssl-devel readline-devel bzip2   mysql   mysql-devel httpd-devel python-devel python-pip python-setuptools   lsof   nscd bind-utils telnet rsync tcpdump expect  nc    ntp  lftp   bash-completion

  • 关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld
  • 关闭swap 分区
swapoff -a 
sed -i  '/swap/d' /etc/fstab
mount  -a 
  • 关闭 selinux
setenforce  0 
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/sysconfig/selinux 
sed -i "s/^SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config  

  • k8s 安装内核参数调整
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf

安装docker-ce-18.06.1

yum remove docker  docker-common  docker-selinux  docker-engine 
yum install -y yum-utils device-mapper-persistent-data lvm2             
yum-config-manager --add-repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum  repolist  
yum  install  docker-ce-18.06.1.ce-3.el7  -y 
mkdir  -p  /etc/docker
cat  > /etc/docker/daemon.json <<EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    },
 
    "oom-score-adjust": -1000,
    "registry-mirrors": ["http://f1361db2.m.daocloud.io"],
    "storage-driver": "overlay2",
    "storage-opts":["overlay2.override_kernel_check=true"],
    "live-restore": true
}
EOF


systemctl enable docker && systemctl start docker

安装kubectl kubeadmin kubelete 等1.15的版本

 cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
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-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
systemctl enable kubelet

安装k8s 1.15版本的master

  1. 第一种安装方式
masterIP=$(ip addr show | grep  ens | grep inet   |  awk -F '/' '{print $1}' |  awk  '{print $2}')
kubeadm init \
--apiserver-advertise-address=${masterIP} \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.15.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
  1. 第二种安装方式
kubeadm config print init-defaults  > kubeadm-init-config.yaml
kubeadm init --config kubeadm-init-config.yaml

安装flannel 网络组件

wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yaml
kubectl  create  -f  kube-flannel.yaml

node 节点加入集群

  1. 第一种方式: 安装前的准备工作和docker 与 kubeadm 等都安装和配置好后,根据master 安装后生成的kubeadm join 命令语句执行即可

  2. 第二种方式

    1. 生成配置文件
      kubeadm config print join-defaults > kubeadm-join-config.yaml
      
    2. 修改配置文件kubeadm-join-config.yaml
      • apiServerEndpoint:连接apiserver的地址,即master的api地址,这里可以改为IP:6443,如果master集群高可用部署的话,这里需要改为集群vip地址
      • token及tlsBootstrapToken:连接master使用的token,这里需要与master上的InitConfiguration中的token配置一致
      • name:node节点的名称,如果使用主机名,需要确保master节点可以解析该主机名。否则的话可直接使用ip地址
    3. 把node 节点加入集群
      kubeadm join --config kubeadm-join-config.yaml
      

证书过期问题

详细处理步骤文档链接

清理

kubeadm  reset  
rm  /etc/kubernetes/* -rf 
rm  ~/.kube/* -rf
rm  /var/lib/etcd/* -rf
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
Logo

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

更多推荐