安装前设置
关闭防火墙
1 2
| systemctl disabled firewalld systemctl stop firewall
|
关闭SELinux
1 2 3
| setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config reboot
|
内核优化(防止kubeadm init报错)
1 2
| echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
|
禁用swap交换分区(可以不禁用,官方建议禁用)
1
| swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
|
安装Kubeadm、Kubelet、Kubectl
配置yum源
1 2 3 4 5 6 7
| cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes Repository baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 EOF
|
安装
安装最新版本去掉版本号即可
1
| yum -y install kubelet-1.14.0 kubeadm-1.14.0 kubectl-1.14.0 --disableexcludes=kubernetes
|
kubectl补全
1
| echo "source <(kubectl completion bash)" >> ~/.bashrc && source ~/.bashrc
|
设置kubelet忽略交换分区(已禁用swap可跳过此步)
1
| sed -i '/KUBELET_EXTRA_ARGS=/ s/$/"--fail-swap-on=false"/' /etc/sysconfig/kubelet
|
设置服务开机自启
1
| systemctl enable kubelet && systemctl enable docker
|
生成默认初始化参数文件
1 2 3 4 5 6 7 8 9 10
| kubeadm config print init-defaults > init.default.yaml
cat <<EOF > init-config.yaml apiVersion: kubeadm.k8s.io/v1beta1 imageRepository: registry.aliyuncs.com/google_containers kind: ClusterConfiguration kubernetesVersion: v1.14.0 networking: podSubnet: "192.168.0.0/16" EOF
|
下载Kubernetes镜像
1
| kubeadm config images pull --config=init-config.yaml
|
运行kubeadm init安装master
1
| kubeadm init --config=init-config.yaml --ignore-preflight-errors=swap | grep "kubeadm join" > node-join.txt
|
根据提示执行命令
1 2 3
| mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
|
移除master污点
master节点在默认情况下并不参与工作负载,如果希望master工作或安转单节点k8s集群,需要移除master污点,使其成为一个node工作节点.
1
| kubectl taint nodes --all node-role.kubernetes.io/master-
|
安装weave网络插件
此次使用weave网络插件,详情可参考官方文档
1
| kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
|
node节点加入集群
node节点安装前设置
[^2]:参考上方master安装前设置
安装kubeadm,kubelet
1
| yum -y install kubelet-1.14.0 kubeadm-1.14.0 --disableexcludes=kubernetes
|
获取token
默认master节点token一天后过期,或者忘记加入节点token,可以手动生成
1
| kubeadm token create --print-join-command --ttl 0
|
加入节点
1
| kubeadm join 182.10.1.161:6443 --token jcs77d.l64dq5la17l5hivr --discovery-token-ca-cert-hash sha256:80b8d22d30b07526dd8dadc91414dfb1fd17467e7b8c4dc0199831f710c72294 --ignore-preflight-errors=swap
|
查看节点状态(master)
1
| kubectl get po --all-namespaces -w
|