参考:

k8s官方安装引导

docker官方安装引导

机器信息 

主机名IP地址作用操作系统
debian192.168.1.240masterDebian10
debian1192.168.1.241nodeDebian10
debian2192.168.1.242nodeDebian10

所有主机操作

  • 修改/etc/hostname,设置好主机名
  • 修改/etc/hosts,将自己的主机名和IP地址添加进去
  • 所有主机配置好SSH免密码登陆。
  • 配置阿里云debian apt镜像、docker-ec镜像、kubernetes镜像
  • 安装 kubeadm、kubelet 和 kubectl
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
#这一步没做
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
  • 关闭防火墙
root@debian:~# ufw disable
root@debian:~# ufw status
Status: inactive
  •  永久禁用交换分区
vi /etc/fstab
#注释掉下面swap这段
#/dev/mapper/debian--vg-swap_1 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
  •  确保 br_netfilter 模块被加载。这一操作可以通过运行 lsmod | grep br_netfilter 来完成。若要显式加载该模块,可执行 sudo modprobe br_netfilter 
  • 为了让你的 Linux 节点上的 iptables 能够正确地查看桥接流量,你需要确保在你的 sysctl 配置中将 net.bridge.bridge-nf-call-iptables 设置为 1。例如:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sudo sysctl --system
  • 设置NTP时间同步 

Master(192.168.1.240)主机操作 

  •  设置NTP时间同步
mkdir -p $HOME/.kube 
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • kubeadm init

--apiserver-advertise-address : API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。

kubeadm init  --apiserver-advertise-address=192.168.1.240 \
 --image-repository registry.aliyuncs.com/google_containers \
 --kubernetes-version v1.20.4 \
 --service-cidr=10.96.0.0/12 \
 --pod-network-cidr=10.244.0.0/16

注:出现docker版本问题:卸载所有机器之前装的docker最新版,按错误提示安装的是19.03的.官网uninstall docker

 

复制出来后面节点加入k8s集群用.

  • 使用kubectl工具:
mkdir -p $HOME/.kube 
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装Pod网络插件(CNI)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 添加节点如集群(在debian1、debian2即192.168.1.241、192.168.1.242上执行)
kubeadm join 192.168.1.240:6443 --token 2egw0w.q07z7vomqfzgzwuj \
    --discovery-token-ca-cert-hash sha256:5e110728aeb90291895842bd2ef3e85d632a3e675ef1409f817b89c870d9d585
  • master机器上查看集群节点状态
kubectl get nodes
  • 集群测试在Kubernetes集群中创建一个pod,验证是否正常运行:
kubectl create deployment nginx --image=nginx 
kubectl expose deployment nginx --port=80 --type=NodePort 
kubectl get pod,svc

 

根据任意一台的ip:暴露端口访问如下完成

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐