一.准备环境
1.三台centos7的环境(内存4g 内核4核)
2.关掉防火墙 setenforce 交换分区(三台都要执行)
3.改主机名 添加域名解析
三台虚拟机 定义一个master 剩下两个node
我的136是master 137,138是node
[root@k8s-master ~]# hostname k8s-master 136
[root@k8s-master ~]# hostname k8s-node1 137
[root@k8s-master ~]# hostname k8s-node2 138
解析 三台都添加
[root@k8s-master ~]# vim /etc/hosts
192.168.27.136 k8s-master
192.168.27.137 k8s-node1
192.168.27.138 k8s-node2
二.开始安装部署
1.安装指定docker (三台都做)
先安装docker源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.3.ce-3.el7
docker做镜像加速
[root@k8s-master ~]# systemctl start docker
[root@k8s-master ~]# mv daemon.json /etc/docker/
[root@k8s-master ~]# systemctl restart docker
2.安装指定k8s版本 (三台都做)
先上传k8s的源
[root@k8s-master ~]# ls
anaconda-ks.cfg k8s.repo
[root@k8s-master ~]# mv k8s.repo /etc/yum.repos.d/
[root@k8s-master ~]# yum -y install kubectl-1.17.0 kubelet-1.17.0 kubeadm-1.17.0
在master做初始化
kubeadm init --apiserver-advertise-address=192.168.27.136 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.0 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
初始化完 显示
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 192.168.27.136:6443 --token ljmx3r.4qz7crecs293i40o \
--discovery-token-ca-cert-hash sha256:c8ee59187da37c636033a9406ea5259159652eac97c17ed2a5af1f4701b3f625
表示成功 按照它的提示依次执行下
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
在两个node节点添加
kubeadm join 192.168.27.136:6443 --token ljmx3r.4qz7crecs293i40o \
--discovery-token-ca-cert-hash sha256:c8ee59187da37c636033a9406ea5259159652eac97c17ed2a5af1f4701b3f625
显示这个为成功
Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
在master查看
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master NotReady master 5m17s v1.17.0
k8s-node1 NotReady <none> 101s v1.17.0
k8s-node2 NotReady <none> 98s v1.17.0
显示没有准备好 是因为没有安装网络插件
在master安装网络插件
先上传 kube-flannel.yml
[root@k8s-master k8s-v1.17.0]# kubectl apply -f kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds-amd64 created
daemonset.apps/kube-flannel-ds-arm64 created
daemonset.apps/kube-flannel-ds-arm created
daemonset.apps/kube-flannel-ds-ppc64le created
daemonset.apps/kube-flannel-ds-s390x created
然后再查看 如果都变成Running说明已经准备好