kubeadm一键部署K8S流程

-架构设计:
k8s部署:(master+node1+node2)
master.com:192.168.17.144
node1.com:192.168.17.146
node2.com:192.168.17.148

master上部署:
etcd(数据库)、kube-apiserver、kube-controller-manager、kubectl、kubeade、
kubelet、kube-proxy、flannel(这个是用于服务节点通讯)

node上部署:
kubectl、kubelet、kube-proxy、flannel、docker


三台机器上同时部署:
vim /etc/hosts
192.168.17.144 master.com
192.168.17.146 node1.com
192.168.17.148 node2.com

完成后ping域名测试连通

如果在正实的外网环境上,例如阿里云ECS上要放以下端口
master:TCP:6443 2379 2380 60080 60081
node:UDP端口全部要开放

设置防火墙(三台机器上同时部署):
systemctl stop firewalld NetworkManager
systemctl disable firewalld NetworkManager

sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
getenforce 0

iptables -F
iptables -X
iptables -Z

iptables -P FORWARD ACCEPT

禁用swap功能(三台机器上同时部署)
swapoff -a
#防止开机挂载swap分区,命令意思就是行首加上注释
sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab

yum源配置(三台机器上同时部署)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i ‘aliyuncs/d’ /etc/yum.repo.d/*.repo
yum clean all && yum makecache fast

ntp时间服务器配置(三台机器上同时部署)
yum install chrony -y
systemctl start chronyd
systemctl enable chronyd

改配置文件 加入一行
vim /etc/chrony.conf
server ntp.aliyun.com iburst
hwclock -w

修改linux内核参数,因为用的是iptables转发数据
vim /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.max_map_count=262144

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

安装docker环境(三台机器上同时部署)
yum remove docker docker-common docker-selinux docker-engine -y
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum list docker-ce --showduplicates

yum install docker-ce-19.03.15 docker-ce-cli-19.03.15 -y

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
{
“registry-mirrors” : [“https://ms9g1x6x.mirror.aliyuncs.com”],
“exec-opts”:[“native.cgroupdriver=systemd”]
}

systemctl start docker && systemctlenable docker

安装k8s的初始化工具kubeadm命令(三台机器上同时部署)
curl -o /etc/yum.repos.d/Centos-7.repo http://mirror.aliyun.com/repo/Centos-7
curl -o /etc/yum.repos.d/docker.repo http://mirror.aliyun.com/docker-ce/linux/centos/docker-ce.repo

vim /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpd

yum clean all && yum makecache

yum list kubeadm --showduplicates

yum install kubelet-1.19.3 kubeadm-1.19.3 kubectl-1.19.3 ipvsadm

查看kubeadm版本
kubeadm version
开机启动
systemctl enable kubelet
systemctl enable docker

初始化k8s master主节点(只在主节点master上执行)
kubeadm init
–apiserver-advertise-address=192.168.17.144
–image-repository registry-aliyuncs.com/google_containers
–kubernetes-version v1.19.3
–service-cidr=192.168.17.0/24 \ #k8s服务发现网段地址
–pod-network-cidr=192.168.100.0/24 \ #设置pod后的运行网段地址
–service-dns-domain=cluster.local
–ignore-preflight-errors=Swap
–ignore-preflight-errors=NumCPU

根据初始化的最后信息,会有三行,复制后只在master上执行一下:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

netstat -tunlp 查看端口是否都开了

kubectl get nodes -o wide #查看节点信息

根据初始化的最后信息,会有三行token信息,复制到各node节点上执行一下:
kubeadm join 192.168.17.144:6443 --token … sha256:asfasfasfasfasff4a6f4a6f4asdf4

kubectl get nodes -owide #再查看节点信息

在master上安装flannel网络插件

下载
git clone --depth 1 https://github.com/coreos/flannel.git

改配置文件(网段和前面的设置的pod网段对应上):
vim /root/flannel-master/Documentation/kube-flannel.yml
net-conf.json |
{
“network”:“192.168.100.0/24”,
“Backend”:{“type”:“vxlan”}
}

接着改第二个地方:
使的跨主机容器通讯,指定用哪块网卡指定:
containers:

  • name:kube-flannel
    #image: flannelcni/flannel:v0.19.2 for ppc64le and mips64le (docker…)
    image: docker.io/rancher/mirrored-flannelcni-flannel:v0.19.2
    commang:
  • /opt/bin/flanneld
    args:
  • –ip-masq
  • –kube-subnet-mgr
  • –iface=ens33

k8s命令补全:
yum install bash-completion -y
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo “source <(kubectl completion bash)” >> ~/.bashrc

验证
kubectl get nodes -o wide

创建pod
/root/flannel-master/Documentation/当前目录位置
kubectl create -f ./kube-flannel.yml

/root/flannel-master/Documentation/当前目录位置
建立一个nginx
kubectl run linux0024-pod-1-nginx --image=nginx:1.14.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android屏幕像素密度

有时需要为视图属性指定大小尺寸值&#xff08;通常以像素为单位&#xff0c;有时也用点、毫米或英寸&#xff09;。一些常见的属性包括文字大小&#xff08;text size&#xff09;、边距&#xff08;margin&#xff09;以及内边距&#xff08;padding&#xff09;。文字大小指…

美容店预约小程序制作教程详解

现在&#xff0c;制作一个专属于美容店的预约小程序不再需要编程经验&#xff0c;通过乔拓云网提供的后台管理系统&#xff0c;你可以轻松地完成整个制作过程。下面&#xff0c;我将为你详细介绍如何DIY一个美容店预约小程序。 首先&#xff0c;登录乔拓云网的后台管理系统&…

html学习5(表单)

1、表单是一个包含表单元素的区域&#xff0c;用于收集用户的输入信息。 2、表单元素是允许用户在表单中输入内容&#xff0c;比如&#xff1a;文本域&#xff08;textarea&#xff09;、下拉列表&#xff08;select&#xff09;、单选框&#xff08;radio-buttons&#xff09…

#rust taur运行报错#

场景:在window11系统上运行 tauri桌面莹应用&#xff0c;提示错误。 Visual Studio 2022 生成工具 安装的sdk11 , rust运行模式是stable-x86_64-pc-window-gnu&#xff0c; 运行npm run tauir dev 一致失败&#xff0c;失败信息如下 原因&#xff1a;1&#xff1a;在window11系…

推理加速 --- torch.compile

推理加速-- torch.compile 一、背景介绍1.2 首次推理速度慢1.3 推理多次之后&#xff0c;又会出现一次速度特别慢的情况&#xff0c;感觉好像是重新优化 二、如何使用三、其他设置3.1 mode 设置3.2 backend3.3 fullgraph3.4 dynamic 参考资料 一、背景介绍 PyTorch 2.0 官宣了…

银行网络安全体系发展及趋势思考

随着数字经济的快速发展&#xff0c;我国银行业务服务模式与技术架构发生了深刻变革。尤其在数字化转型背景下&#xff0c;网络安全作为保障银行业务稳定连续运行的基础&#xff0c;正面临更大的挑战。 银行网络安全体系与银行技术、业务架构密切相关&#xff0c;先后经历了分…

vue使用mqtt服务端实现即时通讯

npm install mqtt3.0.0注意要指定下载3.0.0版本 // 引入MQTT const mqtt require(mqtt/dist/mqtt.js) // 声明client data(){return {client: null} } //方法 //连接服务器connect() {let options {username: "xxx",password: "xxxx",cleanSession : fa…

二阶段web基础与http协议

dns与域名 网络是基于tcp/ip协议进行通信和连接的 应用层-----传输层-----网络层-----数据链路层-----物理层 ip地址&#xff0c;每一台主机都有一个唯一的地址标识&#xff08;固定的ip地址&#xff09; 1.区分用户和计算机 2.通信 ip地址的问题在于32位二进制数组成的&…

触发器实现海豚调度失败企业微信自动告警

原理 触发器监控工作流实例表&#xff0c;当工作流实例表中的状态更新后&#xff0c;针对状态为失败的任务进行企业微信告警。 发送企业微信消息函数 # 必须在pg的主机上线安装requests模块 pip install requests # 以postgres用户登陆psql客户端到etl数据库 psql etl -U po…

ClickHouse的安装启动

安装步骤 1.关闭防火墙 2.修改资源限制配置文件 2.1 路径&#xff1a;/etc/security/limits.conf 在末尾添加&#xff1a; * soft nofile 65536 #任何用户可以打开的最大的文件描述符数量&#xff0c;默认1024 这里的设置会限制tcp连接数 * hard nofile 65536 * soft nproc…

express学习笔记3 - 三大件

便于统一管理router&#xff0c;创建 router 文件夹&#xff0c;创建 router/index.js&#xff1a; const express require(express)// 注册路由 const router express.Router() router.get(/,function(req,res){res.send(让我们开始express之旅) }) /*** 集中处理404请求的…

使用矢量数据库打造全新的搜索引擎

在技术层面上&#xff0c;矢量数据库采用了一种名为“矢量索引”的技术&#xff0c;这是一种组织和搜索矢量数据的方法&#xff0c;可以快速找到相似矢量。其中关键的一环是“距离函数”的概念&#xff0c;它可以衡量两个矢量的相似程度。 1.矢量数据库简介 矢量数据库是专门…

抖音短视频seo矩阵系统源码开发部署技术分享

抖音短视频的SEO矩阵系统是一个非常重要的部分&#xff0c;它可以帮助视频更好地被搜索引擎识别和推荐。以下是一些关于开发和部署抖音短视频SEO矩阵系统的技术分享&#xff1a; 一、 抖音短视频SEO矩阵系统的技术分享&#xff1a; 关键词研究&#xff1a;在开发抖音短视频SEO矩…

限流式保护器在古建筑电气火灾中的应用

安科瑞 华楠 【摘要】针对文物古建筑本身火灾危险性大&#xff0c;并且其内部电气问题较多&#xff0c;增加了火灾危险性的特点&#xff0c;提出了预防电气火灾的措施。 【关键词】古建筑&#xff1b;电气防火&#xff1b;限流式保护器&#xff1b; 文物古建筑是中华民族历史文…

纯nginx制作文件上传下载服务器

什么是webdav webdav 是一组超文本传输协议的技术集合&#xff0c;有利于用户键协同编辑和管理存储在万维网服务器文档。同时来说就是&#xff0c;webdav可以让用户直接存储&#xff0c;下载&#xff0c;编辑文件&#xff0c;操作文件需要进行用户认证 基于nginx快速搭建webdav…

《MySQL 实战 45 讲》课程学习笔记(一)

基础架构&#xff1a;一条 SQL 查询语句是如何执行的&#xff1f; MySQL 的基本架构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层 包括连接器、查询缓存、分析器、优化器、执行器&#xff1b;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&…

idea模块的pom.xml被划横线,不识别的解决办法

目录 问题&#xff1a; 解决办法&#xff1a; 1.打开设置 2. 取消勾选 3.点击确认 4.解决 问题提出&#xff1a; 写shi山的过程中&#xff0c;给模块取错名字了&#xff0c;改名的时候不知道点到了什么&#xff0c;一个模块的pom.xml变成灰色了&#xff0…

记RT-Thread rt_timer_start函数的问题

我使用的RT-Thread版本为4.0.3。 我看了5.0.1的代码&#xff0c;此问已经被修复。 在4.0.3版本中的rt_timer_start函数源码如下&#xff1a; rt_err_t rt_timer_start(rt_timer_t timer) {unsigned int row_lvl;rt_list_t *timer_list;register rt_base_t level;rt_list_t *r…

Rust调试【三】

Local Debug: vscode CodeLLDB extension memory leak analysis: Rust and Valgrind FFI Memory wrapping: Foreign Function Interface FFI panic handling: Panic handling

排序算法(冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序)

&#x1f355;博客主页&#xff1a;️自信不孤单 &#x1f36c;文章专栏&#xff1a;数据结构与算法 &#x1f35a;代码仓库&#xff1a;破浪晓梦 &#x1f36d;欢迎关注&#xff1a;欢迎大家点赞收藏关注 文章目录 &#x1f353;冒泡排序概念算法步骤动图演示代码 &#x1f34…