ubuntu18.04搭建 kubernetes(k8s)集群
下面使用kubeadm来创建k8s cluster
1. 所有主机节点上都需要安装docker
参考官方文档: https://docs.docker.com/install/linux/docker-ce/ubuntu/
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
2. config /etc/hosts,config every node and hostname
10.100.0.128 k8s-master
10.100.0.29 k8s-node1
修改主机名,规划好master和node
修改/etc/hostname文件来永久修改hostname
3. 在所有节点上安装 kubectl
# curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl # curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt #获取当前稳定版本 # curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubectl #版本号根据需要可自行修改 # chmod +x ./kubectl # sudo mv ./kubectl /usr/local/bin/kubectl # source <(kubectl completion bash)
###ubuntu版本如果支持快捷安装可以执行以下命令来安装###
# sudo snap install kubectl --classi
4. 在所有节点上安装 kubelet kubeadm
# apt-get update && apt-get install -y apt-transport-https # curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - # cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF # apt-get update # apt-get install -y kubelet kubeadm
5. 初始化master节点
pod网络插件是必要安装,以便pod可以相互通信. 清提前确认自己需要使用的pod网络插件,以Flannel为例,为了使Flannel正常工作,执行kubeadm init命令时需要增加--pod-network-cidr=10.244.0.0/16参数
# kubeadm init --pod-network-cidr=10.244.0.0/16
use tocken: qjm4v2.8mqfbjrtjpf2xmq2
output:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
# mkdir -p $HOME/.kube # sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 10.100.0.128:6443 --token qjm4v2.8mqfbjrtjpf2xmq2 \
--discovery-token-ca-cert-hash sha256:65131ae78527130dfd6ccf0b6be6e86d2089c4d07856d7f318cede1ce84fb0ef
6. 安装pod插件
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
7. 添加工作节点
- SSH到node
- 切换到roo用户
- 执行添加node命令:
# kubeadm join --token <token> <master-ip>:<master-port>
参考文档:http://docs.kubernetes.org.cn/459.html
