172.16.240.128
172.16.240.129
172.16.240.130
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=f1ce2db9-5a1c-4bae-8df0-6a8048b6e568 DEVICE=ens33 ONBOOT=yes IPADDR=172.16.240.128 NETMASK=255.255.255.0 GATEWAY=172.16.240.2 DNS1=8.8.8.83、配置hostname(master/node)
[root@node01 ~]# cat /etc/hosts 172.16.240.128 node01 172.16.240.129 node02 172.16.240.130 node03 172.16.240.131 node044、配置阿里云镜像
cat <5、关闭selinx(master/node)/etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
setenforce 0 # 临时关闭 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭6、关闭防火墙(master/node)
systemctl stop firewalld systemctl disable firewalld7、关闭swap分区(master/node)
swapoff -a # 临时关闭;关闭swap主要是为了性能考虑 free # 可以通过这个命令查看swap是否关闭了 sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久关闭8、加载 ipvs 模块
lsmod | grep ip_vs modprobe ip_vs lsmod | grep ip_vs modprobe ip_vs_rr modprobe ip_vs_wrr modprobe ip_vs_sh modprobe nf_conntrack_ipv4 lsmod | grep ip_vs tee /etc/modules-load.d/k8s-ipvs.conf <<-'EOF'9、开启 forward
iptables -P FORWARD ACCEPT sed -i '/ExecStart/a ExecStartPost=/sbin/iptables -P FORWARD ACCEPT' /usr/lib/systemd/system/docker.service systemctl daemon-reload10、安装docker
安装docker 18.09.9 yum -y install docker-ce-18.09.911、启动docker 和 设置开机启动
[root@node01 ~]# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [root@node01 ~]# systemctl start docker [root@node01 ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@node01 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES12、重载配置
systemctl daemon-reload13、安装k8s命令工具(master/node)
yum install -y kubelet-1.18.1-0 kubeadm-1.18.1-0 kubectl-1.18.1-0查看安装情况
[root@node01 ~]# yum list installed | grep kube cri-tools.x86_64 1.23.0-0 @kubernetes kubeadm.x86_64 1.18.1-0 @kubernetes kubectl.x86_64 1.18.1-0 @kubernetes kubelet.x86_64 1.18.1-0 @kubernetes kubernetes-cni.x86_64 0.8.7-0 @kubernetes14、配置kubelet,为kubernetes添加阿里云YUM软件源(master/node)
tee /etc/sysconfig/kubelet <<-EOF KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1" EOF15、创建主节点(master)
kubeadm init --apiserver-advertise-address=172.16.240.128 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.1 --pod-network-cidr=10.244.0.0/16展示以下表示成功
[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Creating the "cluster-info" ConfigMap in the "kube-public" namespace
[kubelet-finalize] Updating "/etc/kubernetes/kubelet.conf" to point to a rotatable kubelet client certificate and key
[addons] Applied essential addon: CoreDNS
[addons] Applied essential addon: kube-proxy
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 172.16.240.128:6443 --token fokxrg.2dv3fegs1c631o4s
--discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483
16、根据提示执行命令
[root@node01 ~]# mkdir -p $HOME/.kube [root@node01 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [root@node01 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看节点
[root@node01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node01 NotReady master 2m4s v1.18.117、安装flannel
[root@node01 ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml18、执行join命令增加节点
[root@node02 ~]# kubeadm join 172.16.240.128:6443 --token vx46p8.xb72qbk4i4o4ge2z --discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483
报错发现token过期,重新生成token命令
[root@node01 .kube]# kubeadm token create --print-join-command19、在node02,node03节点运行命令添加节点
[root@node02 ~]# kubeadm join 172.16.240.128:6443 --token vx46p8.xb72qbk4i4o4ge2z --discovery-token-ca-cert-hash sha256:7ea20f1e18c408c26bc514007f99592de379fff1784ff09db6a46433b7110483
命令:
init之后没有token或忘记 kubeadm token create --print-join-command 重启kubelet systemctl daemon-reload systemctl restart kubelet node节点kubeadm join失败 kubeadm -y reset kubeadm join 删除 kubectl delete -f ***.yaml 生效 kubectl apply -f ***.yaml



