一. 修改机器的hostname及hosts文件。
hostnamectl set-hostname k8s-master #主
hostnamectl set-hostname k8s-node1 #node1节点
#下面命令一起负责在两机器都执行一遍
cat>>/etc/hosts<<EOF
10.211.55.3 k8s-master
10.211.55.4 k8s-node1
EOF
#查看执行效果
cat /etc/hosts
二. 关闭防火墙和关闭SELinux
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭SELinux
vi /etc/sysconfig/selinux
setenforce 0 #临时更改,不需要重启。
三. 设置系统参数
设置允许路由转发,不对bridge的数据进行处理
#创建文件
vi /etc/sysctl.d/k8s.conf
#内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
#执行文件
sysctl -p /etc/sysctl.d/k8s.conf
如果提示没有那个文件和目录就执行下面
modprobe br_netfilter
kube-proxy开启ipvs的前置条件
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#! /bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
#更改权限
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash
#执行文件命令
/etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
所有节点关闭swap
swapoff -a #临时关闭
vi /etc/fstab #永久关闭
#注释掉以下字段
/dev/mapper/cl-swap swap swap defaults 0 0
清空yum缓存
yum clean all
设置yum安装源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0r
epo_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
安装
yum install -y kubelet kubeadm kubectl
kubelet设置开机启动(注意:先不启动,现在启动的话会报错)
systemctl start kubelet
查看版本
kubelet --version
四. 安装初始环境
master初始化
#kubernetes-version 为当前master服务器安装的版本,apiserver-advertise-address当前master的ip
kubeadm init --kubernetes-version=1.22.2 \
--apiserver-advertise-address=10.211.55.3 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
如果报错则大部分时docker驱动问题,修改docker配置
vi /etc/docker/daemon.json
#添加以下内容
"exec-opts": [ "native.cgroupdriver=systemd" ]
配置好重启docker
systemctl restart docker
重启kube
kubeadm reset
重启后再执行上面的初始化。
初始化完成得到相应的配置提示
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
一步步执行上面3行,下面的在副机中需要
kubeadm join 10.211.55.3:6443 --token oa0b8p.1a1fqr9vtdo2xvku \ --discovery-token-ca-cert-hash sha256:e7a0aa4ced4e30f64d89d9755022c4c2c8ba8d25a1555857332cf45ce38d370b
五. 安装Calico
在master上安装
mkdir K8S
cd K8S
wget --no-check-certificate https://docs.projectcalico.org/manifests/calico.yaml
sed -i 's/192.168.0.0/10.244.0.0/g' calico.yaml
kubectl apply -f calico.yaml
查看POD
kubectl get pod --all-namespaces
#Calico所有的pod都处于run状态之后再走下面
至此Master的节点安装好,安装Slave节点。
1.让所有子节点加入注册,就是之前安装好的那个。
kubeadm join 10.211.55.3:6443 --token oa0b8p.1a1fqr9vtdo2xvku \ --discovery-token-ca-cert-hash sha256:e7a0aa4ced4e30f64d89d9755022c4c2c8ba8d25a1555857332cf45ce38d370b
如果忘了上面init时的join执行下面代码
kubeadm token create --print-join-command
节点执行注册完毕后查看Master的节点
kubectl get nodes
至此安装完成。特别注意,slave节点服务器也要安装docker.之后才进行注册节点。
k8s命令学习总结:
systemctl start kubelet #启动kubelet
kubeadm reset #kubeadm重启
kubectl get pod --all-namespaces #查看所有pod
kubectl get nodes #查看注册的节点
kubectl delete nodes k8s-node1 #删除节点:最后一个是节点名称