k8s 加入节点 centos7
######基础配置 所有节点 ##################################################### ##################################################### 所有节点运行 ###########添加hosts hostnamectl --static set-hostname node$(ip addr |grep global |grep $(route |grep default |awk '{print $NF}') |head -n1 |awk '{print $2}' |cut -d '/' -f1 |cut -d '.' -f4) ####修改计算机名后需重启 ##### for ip in 192.168.3.{223,224,225} ;do node_str="node$(echo ${ip}|cut -d '.' -f4)";[ $(grep -c "${node_str}" /etc/hosts) -eq 0 ] && echo "${ip} ${node_str} " >>/etc/hosts;done [ $(grep -c ' k8smaster' /etc/hosts) -eq 0 ] && echo "192.168.3.207 k8smaster" >>/etc/hosts tail /etc/hosts ##################################################### ##################################################### 所有节点运行 systemctl stop firewalld systemctl disable firewalld setenforce 0 #sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/sysconfig/selinux sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config ####### swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab free -g cat >/etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF modprobe br_netfilter sysctl -p /etc/sysctl.d/k8s.conf cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 EOF chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4 ##################################################### #####################################################安装docker 所有节点执行 yum install -y yum-utils device-mapper-persistent-data lvm2 curl -s -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 查看指定版本 yum list docker-ce --showduplicates |grep 17 # 安装指定版本 yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch systemctl enable docker ##修改配置文件 vim /usr/lib/systemd/system/docker.service #ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --registry-mirror=https://ms3cfraz.mirror.aliyuncs.com #启动docker \cp /usr/lib/systemd/system/docker.service{,.bak} sed -i 's#^ExecStart=.*#ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --registry-mirror=https://ms3cfraz.mirror.aliyuncs.com#g' /usr/lib/systemd/system/docker.service grep ExecStart /usr/lib/systemd/system/docker.service # systemctl daemon-reload systemctl restart docker ##################################################### #####################################################kubectl kubeadm 所有节点执行 echo ' [kubernetes] name=Kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg enabled=1 ' >/etc/yum.repos.d/kubernetes.repo [ ! -e rpm-package-key.gpg ] && wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg rpm --import rpm-package-key.gpg yum list kubeadm --showduplicates |grep "1.10" yum install -y kubernetes-cni-0.6.0 kubeadm-1.10.0 kubectl-1.10.0 kubelet-1.10.0 systemctl enable kubelet.service \cp /etc/sysctl.d/k8s.conf{,.bak} [ $(grep -c 'vm.swappiness=0' /etc/sysctl.d/k8s.conf) -eq 0 ] && echo 'vm.swappiness=0' >>/etc/sysctl.d/k8s.conf sysctl -p /etc/sysctl.d/k8s.conf \cp /etc/systemd/system/kubelet.service.d/10-kubeadm.conf{,.bak} ### ####修改这一行 sed -i 's#^Environment="KUBELET_CGROUP_ARGS=.*#Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"#g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf ####添加这一行 echo 'Environment="KUBELET_EXTRA_ARGS=--v=2 --fail-swap-on=false --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/k8sth/pause-amd64:3.0"' >>/etc/systemd/system/kubelet.service.d/10-kubeadm.conf grep Environment /etc/systemd/system/kubelet.service.d/10-kubeadm.conf ##################################################### ##################################################### 命令补全 所有节点执行 yum install -y bash-completion source /usr/share/bash-completion/bash_completion source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ~/.bashrc systemctl daemon-reload && systemctl restart kubelet ##################################################### ##################################################### 查询加入节点的token 只在主节点 #####查询token [root@node223 ~]# kubeadm token list TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS b99a00.a144ef80536d4344 <forever> <never> authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token #####如果没有也可以自己创建一个token 永久的 kubeadm token create --ttl 0 #####查询discovery-token-ca-cert-hash [root@node223 ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' d2eb9e317e6d844e9b2f55a62c09a40792a3a9f37e05e1f161ad4d87a3b2df7a ##################################################### ##################################################### 加入节点 在要加入的节点上运行 kubeadm join k8smaster:6443 --token b99a00.a144ef80536d4344 --discovery-token-ca-cert-hash sha256:d2eb9e317e6d844e9b2f55a62c09a40792a3a9f37e05e1f161ad4d87a3b2df7a