引言 本文主要介绍在腾讯云不同局域网下,进行的K8S集群的操作。 核心点 iptables:做内外网映射关联 前提 成功配置安装Docker
1.基础配置
1.【master、node】docker配置
vim /etc/docker/daemon
{
"registry-mirrors": ["https://uv1sqx0d.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl daemon-reload && systemctl restart docker
systemctl status docker.service
2.【master、node】关闭防火墙、swap
1. 关闭防火墙【master、node】
ufw disable
ufw status
2. 关闭swap【master、node】
方式1 使用“swapoff -a”
swapoff -a
方式2 注释文件值—>vim /etc/fstab—>【注释】/swap.img
vim /etc/fstab
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
hostnamectl set-hostname master
2.【node】设置hostname
hostnamectl set-hostname node1
2.设置hosts
1.【master+node1】设置hosts
cat >> /etc/hosts << EOF
10.0.16.16 master
10.0.0.17 node1
EOF
2.【master+node1】验证配置
cat /etc/host
3.【master】配置内核转发参数
1.【master】配置内核转发参数
cat >>/etc/sysctl.d/k8s.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
2.验证配置
cat /etc/sysctl.d/k8s.conf
4.【master+node】iptables配置“内网映射外网”
1.【master+node】iptables配置“内网映射外网”
iptables -t nat -A OUTPUT -d 10.0.16.16 -j DNAT --to-destination 124.223.77.184
iptables -t nat -A OUTPUT -d 10.0.0.17 -j DNAT --to-destination 42.193.53.45
2.验证配置
【说明】使用ping 内网ip—>进行验证
1.更新Ubuntu的软件源
1.添加kubernetes源
向/etc/apt/sourece中添加“kubernetes的源【deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
】”。
说明 推荐使用“阿里源(速度快)”
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
2.kubernetes组件安装
我们需要进行安装的组件为kubeadm、kubectl、kubelet。
apt-get update && apt-get install -y kubeadm kubectl kubelet
【完全卸载】 apt-get –purge remove kubeadm kubectl kubelet
3.kubelet开机自启
将kubelet设置为“开机自启”:
#【step5】设置:开机自启动,并启动服务
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
kubeadm init --apiserver-advertise-address=10.0.16.16 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
1.init成功的标志
2.基础配置
此处根据kubeadm init成功的提示进行“基础配置”:
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
3.网络插件安装
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
4.【node】关联添加node
说明 在“kubeadm join”前,一定要进行“kubeadm reset”等相关操作,你可以执行【附件:相关shell脚本】进行操作。
【附件】node_rm.sh 【node中,先执行:first】
node_kubeadmReset.sh 【node中,最后执行:last】
1.node join到集群中【node】
2.验证是否添加成功【master】
kubelet get nodes