|
2019-05-17
# 0.进入root权限,便于后面的命令 # 设置root的密码,已有可以跳过 sudo passwd root # 进入root su root # 1.关闭swap分区 swapoff -a # 2.确保三个节点的时区一致 timedatectl # 3.网络问题 sudo modprobe br_netfilter cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo vi /etc/sysctl.d/10-network-security.conf ## 添加以下两行配置 net.ipv4.conf.default.rp_filter=1 net.ipv4.conf.all.rp_filter=1 sudo sysctl --system # 4.安装 docker apt-get install docker.io #调整cgroup驱动 sudo vi /etc/docker/daemon.json ## 添加以下配置,也可以考虑将镜像源也加一下 { "exec-opts": ["native.cgroupdriver=systemd"], } systemd enable docker systemd start docker sudo systemctl daemon-reload sudo systemctl restart docker # 5.安装 k8s组件 apt-get update && apt-get install -y apt-transport-https curl curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl && sudo apt-mark hold kubelet kubeadm kubectl # 6. 启动main节点 # 172.16.0.0/16 必须和 云服务器的私有网络(IPv4 CIDR)不一样 # 我的私有网络是 172.17.0.0/16 kubeadm init --pod-network-cidr 172.16.0.0/16 --apiserver-advertise-address=172.17.0.19 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers # 7. 退出root模式,并将配置文件加入 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown 500:500 $HOME/.kube/config # 8. 配置k8s网络 # 默认情况下 master节点不能部署非system类型的pod,这里通过taint来允许这样的行为 kubectl taint nodes --all node-role.kubernetes.io/master- # 从 https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 下载为flannel.yaml # 将 # net-conf.json: | # { # "Network": "10.244.0.0/16", # "Backend": { # "Type": "vxlan" # } # } # 中的10.244.0.0/16改为172.16.0.0/16 kubectl apply -f flannel.yaml kubectl get nodes # 如果 发现主节点是Ready,证明配置成功 # NAME STATUS ROLES AGE VERSION # vm-0-19-ubuntu Ready control-plane,master 15m v1.23.3
kubeadm join 172.17.0.19:6443 --token rneqy1.mn1viwqrwgj56vrt --discovery-token-ca-cert-hash sha256:0353c937fe38ee836203d0720255a8168136a44e335e3cf5ff1abc7e49d0a872 # 添加节点之后在主节点运行kubectl get nodes发现Ready的新节点就说明
重启:
# 所有节点在kubeadm reset 之后还需要以下几行命令 echo y | kubeadm reset rm -f /etc/kubernetes/manifests/* rm -rf /var/lib/etcd/* ip link set cni0 down ip link delete cni0 systemctl restart containerd && systemctl restart kubelet
编辑:航网科技 来源:腾讯云 本文版权归原作者所有 转载请注明出处
微信扫一扫咨询客服
全国免费服务热线
0755-36300002