通过kubeadm安装部署
环境:
192.168.248.140 | centos7 | master |
---|---|---|
192.168.248.141 | centos7 | node1 |
192.168.248.142 | centos7 | node2 |
1、关闭防火墙和selinux(三台设备)
1 | systemctl stop firewalld |
2、永久关闭交换分区(三台设备)
对于k8s而言,它的想法是将实例紧密包装到尽可能接近100%。所有的部署应该与CPU/内存限制固定在一起。所以如果调度程序发送一个pod到一台机器,他不应该使用交换。所以关闭swap主要是为了性能考虑。
1 | swapoff -a |
3、修改主机名(三台设备)
1 | hostnamectl --static set-hostname master |
4、设置主机名的映射(三台设备)
1 | vim /etc/hosts #添加以下内容并ping测试 |
5、安装docker(三台设备)
参考我的另一篇有关docker的文章。
6、安装kubelet、kubeadm、kubectl(三台设备)
1 | cat>>/etc/yum.repos.d/kubrenetes.repo<<EOF |
此时我们查看一下kubectl版本(kubelet version),后面会用到这个版本号。
7、安装基础镜像(三台设备,这个的话需要翻墙)
1 | docker pull mirrorgooglecontainers/kube-apiserver:v1.14.1 |
8、初始化master
这里根据K8s版本初始化,并将api声明ip修改为master-ip。这里的pod网络因为我后面用的是flannel网络,所以这里必须是10.244.0.0/16
1 | kubeadm init --kubernetes-version=v1.14.1 --apiserver-advertise-address 192.168.248.140 --pod-network-cidr=10.244.0.0/16 |
如果成功的话,如图:
记得将* kubeadm join*这条命令记下,后面加入节点会用。
9、设置环境变量(master)
1 | mkdir -p $HOME/.kube |
10、配置kubectl并验证
1 | echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile |
11、设置系统参数(master)
1 | sysctl net.bridge.bridge-nf-call-iptables=1 |
12、安装flannel网络(master)
有两种方法:
- 方法一:
1 | kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml |
- 方法二:
1 | vim kube-flannel.yaml |
13、node加入集群
通过上面master初始化后生成的join命令输入:
如果说清屏了,没找到,可重新生成:
1 | kubeadm token create --print-join-command |
最后我们可以通过kubectl get nodes查看加入的节点信息。
此时是因为每个节点都需要启动若干组件,这些节点都是在pod中运行,我们可以通过kubectl get pod --all-namespaces查看哪些组件没有处于running状态。