引言 本文主要介绍在腾讯云不同局域网下,进行的K8S集群的操作。 核心点 iptables:做内外网映射关联 前提 成功配置安装Docker

1.基础配置

1.【master、node】docker配置

  1. vim /etc/docker/daemon
  1. {
  2. "registry-mirrors": ["https://uv1sqx0d.mirror.aliyuncs.com"],
  3. "exec-opts": ["native.cgroupdriver=systemd"]
  4. }
  1. systemctl daemon-reload && systemctl restart docker
  1. systemctl status docker.service

daemon.json

2.【master、node】关闭防火墙、swap

1. 关闭防火墙【master、node】

  1. ufw disable
  2. ufw status

image.png

2. 关闭swap【master、node】

方式1 使用“swapoff -a”

  1. swapoff -a

image.png
方式2 注释文件值—>vim /etc/fstab—>【注释】/swap.img

  1. vim /etc/fstab

image.png

2.网络配置

分类 内网 外网 地区 备注
master 10.0.16.16 124.223.77.184 腾讯云-上海 【确保开放端口】6443
node1 10.0.0.17 42.193.53.45 腾讯云-成都

1.设置hostname

1.【master】设置hostname

  1. hostnamectl set-hostname master

2.【node】设置hostname

  1. hostnamectl set-hostname node1

2.设置hosts

说明 这很关键,一定要配置对!!!

1.【master+node1】设置hosts

  1. cat >> /etc/hosts << EOF
  2. 10.0.16.16 master
  3. 10.0.0.17 node1
  4. EOF

2.【master+node1】验证配置

  1. cat /etc/host

image.png

3.【master】配置内核转发参数

1.【master】配置内核转发参数

  1. cat >>/etc/sysctl.d/k8s.conf<<EOF
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. net.ipv4.ip_forward = 1
  5. EOF

2.验证配置

  1. cat /etc/sysctl.d/k8s.conf

image.png

4.【master+node】iptables配置“内网映射外网”

1.【master+node】iptables配置“内网映射外网”

  1. iptables -t nat -A OUTPUT -d 10.0.16.16 -j DNAT --to-destination 124.223.77.184
  2. iptables -t nat -A OUTPUT -d 10.0.0.17 -j DNAT --to-destination 42.193.53.45

2.验证配置

【说明】使用ping 内网ip—>进行验证

  • 【master —>node1】

    1. ping 10.0.0.17

    image.png

  • 【 node1—>master】

    1. ping 10.0.16.16

    image.png

    3.【master+node】k8s基础组件安装

1.更新Ubuntu的软件源

1.添加kubernetes源

向/etc/apt/sourece中添加“kubernetes的源【deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
】”。
说明 推荐使用“阿里源(速度快)”

  1. deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
  2. deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
  3. deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
  4. deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
  5. deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
  6. deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
  7. deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
  8. deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
  9. deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  10. deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  11. deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main

2.kubernetes组件安装

我们需要进行安装的组件为kubeadm、kubectl、kubelet。

  1. apt-get update && apt-get install -y kubeadm kubectl kubelet

【完全卸载】 apt-get –purge remove kubeadm kubectl kubelet

3.kubelet开机自启

将kubelet设置为“开机自启”:

  1. #【step5】设置:开机自启动,并启动服务
  2. systemctl enable kubelet && systemctl start kubelet

4.【master】k8s集群搭建

说明 在“kubeadm init”前,一定要进行“kubeadm reset”等相关操作,你可以执行【附件:master_kubeadmInit.sh】进行“一键搭建k8s集群”。
【附件】master_kubeadmInit.sh
kubeadmToken.sh

1.kubeadm init

  1. kubeadm init --apiserver-advertise-address=10.0.16.16 \
  2. --image-repository registry.aliyuncs.com/google_containers \
  3. --pod-network-cidr=10.244.0.0/16

image.png

1.init成功的标志

image.png

2.基础配置

此处根据kubeadm init成功的提示进行“基础配置”:
image.png

  1. mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config && export KUBECONFIG=/etc/kubernetes/admin.conf

image.png

3.网络插件安装

2.腾讯云-(不同局域网下)安装K8S集群 - 图12

  1. wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  2. kubectl apply -f kube-flannel.yml

image.png

4.【node】关联添加node

说明 在“kubeadm join”前,一定要进行“kubeadm reset”等相关操作,你可以执行【附件:相关shell脚本】进行操作。
【附件】node_rm.sh 【node中,先执行:first】
node_kubeadmReset.sh 【node中,最后执行:last】

1.node join到集群中【node】

image.png

2.验证是否添加成功【master】

  1. kubelet get nodes

image.png