服务器:轻量级阿里云+轻量级腾讯云

系统要求:OS7 (我使用的是7.6 命令:cat /etc/centos-release)

本内容适用于已经对整个搭建过程有一定了解的人来看,每一步没有做很多解释,但是里面包含着很多的细节,有一点遗漏就搭建不起来。希望可以自己先按照网上别的教程随便搭建几次,了解流程了,然后再看这篇,肯定会对你有帮助的。

注意:

本人还有一台青云服务器,以这样的方式搭建起来网络是ping不通的,可能是之前设置过VPC网络的问题,配置没有删干净,目前还没有解决。

网络排错命令:

监听flannel网卡: tcpdump -i flannel.1 -nvvv icmp

监听eth0网卡: tcpdump -i eth0 -s0 -nnn udp and port 8472

可以ping目标地址来看监听结果

我的结果是

划红线的过程。比如matser ping node-pod-IP 子节点收到了ping ,也做出了响应,但是master没有接收到。(水平有限暂时还不知道原因)

所有公网IP或其它中文描述都需要填写自己的,请仔细查看,不能光复制就完事了

基础环境

设置hostname

hostnamectl set-hostname xxxx

配置hosts

公网 hostname

echo "IP 自定义hostname" >> /etc/hosts

安装Docker

安装命令yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install wgetyum makecachewget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpmyum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpmyum install docker-ce docker-ce-cli containerd.io

启动:systemctl enable docker --now

如果已经有docker注意版本,低版本需要修改(具体需不需要可以先改了,如果docker重启启动不起来,就说明不需要,删掉即可)

修改docker驱动:

vim /usr/lib/systemd/system/docker.service

在ExecStart命令结尾添加 --exec-opt native.cgroupdriver=systemd

systemctl daemon-reloadsystemctl restart docker

安装K8S

以下一些命令参考自网上的一些安装教程

cat > k8s.conf <<EOF
#开启网桥模式
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#开启转发
net.ipv4.ip_forward = 1
##关闭ipv6
net.ipv6.conf.all.disable_ipv6=1
EOF
cp k8s.conf /etc/sysctl.d/k8s.conf
sysctl -p /etc/sysctl.d/k8s.confsetenforce 0
swapoff -a
# 设置系统时区为 中国/上海
timedatectl set-timezone Asia/Shanghai
# 将当前的UTC时间写入硬件时钟
timedatectl set-local-rtc 0
# 重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond
systemctl stop postfix && systemctl disable postfix
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.d
cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
[Journal]
# 持久化
Storage=persistent
# 压缩历史日志
Compress=yes
SysnIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000
# 最大占用空间 10G
SystemMaxUse=10G
# 单日志文件最大 200M
SystemMaxFileSize=200M
# 日志保存时间 2 周
MaxRetentionSec=2week
# 不将日志转发到 syslog
ForwardToSyslog=no
EOF
systemctl restart systemd-journald
modprobe br_netfiltercat > /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
EOFchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4swapoff -a
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=1
repo_gpgcheck=1
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-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetessystemctl enable --now kubelet

如果上述install报错

https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes

修改/etc/yum.repos.d/kubernetes.repo

repo_gpgcheck=0

修改配置文件

vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf 在$KUBELET_EXTRA_ARGS添加--node-ip=节点公网IP(空格分割)

开放端口(来自网络)

10250/10260 TCP端口:给kube-schedule、kube-controll,kube-proxy、kubelet等使用6443 TCP端口:给kube-apiserver使用2379 2380 2381 TCP商品:ETCD使用8472 UDP端口:vxlan使用端口

设置虚拟网卡

方法1

cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF
BOOTPROTO=static
DEVICE=eth0:1
IPADDR=公网IP
PREFIX=32
TYPE=Ethernet
USERCTL=no
ONBOOT=yes
EOFsystemctl restart network
# 查看
ip addr

方法2

sudo ifconfig eth0:1 公网IP
不需要重启

安装ipvs(主节点+子节点)

yum install ipvsadm

以上master和node都需要执行


以下master执行↓

配置kubeadm

kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: v1.20.13
apiServer:certSANs:- aliyun-master- 公网- 内网- 10.96.0.1
controlPlaneEndpoint: 公网:6443
networking:podSubnet: 10.244.0.0/16serviceSubnet: 10.96.0.0/12
---
apiVersion: kubeproxy-config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:SupportIPVSProxyMode: true
mode: ipvs

安装

kubeadm init --config=kubeadm-config.yaml 

初始化成功后master执行生成的命令

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/configkubeadm join xx.xx.xx.xx:6443 --token dfijdth \--discovery-token-ca-cert-hash dfsdfsdfsdfg9a460f44b118050091245c1d

修改apiserver配置文件

vim /etc/kubernetes/manifests/kube-apiserver.yamlspec:containers:- command:- kube-apiserver- --advertise-address=公网IP- --bind-address=0.0.0.0

安装网络插件flannel

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

修改配置文件 对比修改缺什么补充什么

containers:- name: kube-flannelimage: quay.io/coreos/flannel:v0.15.1command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgr- --public-ip=$(PUBLIC_IP)- --iface=eth0# env下env:- name: PUBLIC_IPvalueFrom:          fieldRef:          fieldPath: status.podIP 

安装flannel

kubectl apply -f kube-flannel.yml

开启ipvs转发模式

kubectl edit configmaps -n kube-system kube-proxy
kind: KubeProxyConfigurationmetricsBindAddress: ""mode: "ipvs"  # 填入`ipvs`nodePortAddresses: null

最后再加入node节点就可以了

令牌
kubeadm token create --print-join-command

在此分享几个学习的网站

Kubernetes教程 | Kuboard

最后验证效果

查看ipvs

查看node

查看pod

ping node上部署的nginx podip

任意节点访问service nodePort暴露的nginx端口都可以访问成功

Kubernetes多运营商云服务器部署(kubeadm+ipvs+flannel)相关推荐

  1. Centos7云服务器部署SpringBoot项目(手动配置环境篇)

    文章目录 前言 一.部署Tomcat服务器 1.安装JDK1.8 2.安装与启动tomcat 配置安全组(8080端口) 二.安装JDK8 三.Mysql5.7安装 1.下载mysql 2.启动MyS ...

  2. 搭建前后端分离主流项目完整步骤——在线教育系统(阿里云服务器部署上线)

    前言: 需要源码评论或私我 项目技术栈如下图所示: 本次博客分前后端+部署服务器三个步骤来写 先来看看实现效果: 在线教育系统完整三步骤 前言: 一.后端技术栈 1.ssm+mysql: (1)map ...

  3. 阿里云服务器部署个人网盘服务

    阿里云服务器部署个人网盘服务 相关资源: kiftd : https://github.com/KOHGYLW/kiftd 1.安装JAVA运行环境 yum install java-11-openj ...

  4. 项目部署之PHPEMS在线模拟考试系统(亲测有效,含php源码)在阿里云服务器部署

    PHPEMS在线模拟考试系统阿里云服务器部署 相信好多人都在找这个源码哈,小编也是一样,也有一个很大的梦想,就是能把我们这些英雄豪杰集中在一起,比如说这个在线考试系统就可以实现,可以在上面把所有的运维 ...

  5. 云服务器部署项目:vue-cli 部署服务配置

    云服务器部署项目:vue-cli 部署服务配置 ​ 单页面应用应该放到nginx或者apache.tomcat等web代理服务器中,同时要根据自己服务器的项目路径更改vue的路由地址. ​ 如果说项目 ...

  6. win系统的阿里云服务器部署IDEASpringBoot项目保姆级教程

    win系统的阿里云服务器部署SpringBoot项目保姆级教程 前言 配置阿里云服务器 配置环境 环境配置中的坑 还有别的坑的话,私信我我补充......毕竟配置是最基本的,还想咋样... jar包导 ...

  7. 国内常用公共DNS服务器、各省运营商DNS服务器汇总

    不知道大家有没有过网络是正常的,QQ可以正常登录.游戏也可以正常玩,但是网页无论如何都打不开.这就是电脑网络设置的DNS服务器有问题,不是其故障就是不工作了. 换了DNS服务器成功解决问题.下边给大家 ...

  8. 阿里云轻量云服务器部署java项目

    阿里云轻量云服务器部署java项目 前言:阿里云最新推出了轻量云服务器,说是可以简化配置.看重他是因为带宽明显提升.就继续照着ecs服务器的方式安装了一系列环境.系统是阿里云的Centos7.3.JD ...

  9. php项目部署在腾讯云服务器,腾讯云服务器部署

    腾讯云服务器部署,我们以CentOS系统为例进行说明,其它系统类同 # 一键安装PHP运行环境 我们使用 oneinstack 一键安装包进行安装,oneinstack的官网地址是:https://o ...

最新文章

  1. 在android手机上运行PHP
  2. 高级Android开发面试汇总
  3. xposed框架在分机安装失败_免root用Xposed框架!安卓用户一定要学会
  4. 如何优化android内存,Android内存优化
  5. 使用python对文档的所有词组统计
  6. python编程软件哪个好-python IDE有哪些?哪个好用?
  7. struts2标签库使用小结
  8. 安装惠普M1136打印机一直处于“新设备已连接”状态怎么办?
  9. VS Code 字体推荐
  10. 基于pytorch的OCR识别库
  11. 城市园区NB-IoT智慧井盖解决方案
  12. 2021下半年中小学教资考试教育知识与能力试题(中学)——主观题
  13. 偏微分方程 基础知识(线性偏微分方程+常系数线性偏微分方程) | 偏微分方程(一)
  14. matter的通用设备类型
  15. 戴尔灵越7590 i7版安装manjaro踩坑及部分驱动问题解决
  16. 使用晨曦记账本,根据需要设置记账表格行数
  17. lazada铺货模式的选品_Lazada铺货模式是什么意思?怎么做?
  18. 【苏格拉底言行录】 第三卷
  19. error: the following arguments are required
  20. php韩文编码,PHP中GBK和UTF8编码处理(中文,韩文)

热门文章

  1. 生成世界地图并在地图上画圆圈
  2. 手把手教写拖拽布局插件(拖拽功能篇)
  3. 后台管理系统Login 页面(部分)
  4. 电子商务订单处理及发货流程
  5. 无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)
  6. m苹果放n篮子_算法交流:666苹果放篮子【2.6基本算法之动态规划】-09
  7. 微信公众号(一键互粉)增粉平台的源码分享
  8. java获取发送时间间隔工具类,1秒前,1分钟前,1小时前...
  9. 使用GHOST镜像文件在VMWARE WROKSTATION上安装系统(图)
  10. AP微观和宏观经济学考察重点分析