当前位置: 首页 > news >正文

【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0

目录

一、 Kubernetes 的概述

二、服务器配置

2.1 服务器部署规划

2.2服务器初始化配置

三、安装Docker/kubeadm/kubelet【所有节点】

3.1 安装Docker

3.2 添加阿里云YUM软件源

3.3 安装kubeadm,kubelet和kubectl

四、部署Kubernetes Master

五、部署Kubernetes Node

六、部署容器网络(CNI)

七、测试kubernetes集群


一、 Kubernetes 的概述


Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。

Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。

中文官网:Kubernetes 架构

二、服务器配置


2.1 服务器部署规划

角色

IP

配置

组件

k8s-master1

192.168.2.130

4c/8G/100G

apiServer , controller, schedule, etcd

k8s-node1

192.168.2.131

4c/6G/100G

kubelet , kube-proxy, docker ,etcd

k8s-node2

192.168.2.132

4c/6G/100G

kubelet , kube-proxy, docker ,etcd

2.2服务器初始化配置

# 所有节点都要配置#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时# 关闭swap:
swapoff -a  # 临时
vim /etc/fstab  # 永久禁用,打开/etc/fstab注释掉swap那一行。设置主机名:
hostnamectl set-hostname <hostname>#在master添加hosts:
cat >> /etc/hosts << EOF
192.168.2.130 k8s-master1
192.168.2.131 k8s-node1
192.168.2.132 k8s-node2
EOF# 免密
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub k8s-node1
ssh-copy-id -i .ssh/id_rsa.pub k8s-node2# 将桥接的IPv4流量传递到iptables的链:
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效## 时间同步
yum install ntpdate -y
ntpdate  cn.pool.ntp.org1)crontab -e* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org2)重启crond服务:
service crond restart# 基础命令 
yum install  bash-completion  lrzsz  tree  vim  wget  net-tools zip unzip -y

三、安装Docker/kubeadm/kubelet【所有节点】


3.1 安装Docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

配置镜像下载加速器:

mkdir  -p /etc/docker/
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com"] 
}
EOFsystemctl restart docker
docker info

3.2 添加阿里云YUM软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.3 安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.19.0 kubeadm-1.19.0 kubectl-1.19.0
systemctl enable kubelet

四、部署Kubernetes Master


在192.168.2.130(Master)执行。

kubeadm init \--apiserver-advertise-address=192.168.2.130 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.19.0 \--pod-network-cidr=10.244.0.0/16 \--ignore-preflight-errors=all
  • --apiserver-advertise-address 集群通告地址
  • --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
  • --kubernetes-version K8s版本,与上面安装的一致
  • --service-cidr 集群内部虚拟网络,Pod统一访问入口
  • --pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致

或者使用配置文件引导:

vi kubeadm.conf
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.19.0
imageRepository: registry.aliyuncs.com/google_containers 
networking:podSubnet: 10.244.0.0/16 serviceSubnet: 10.96.0.0/12 kubeadm init --config kubeadm.conf --ignore-preflight-errors=all  

拷贝kubectl使用的连接k8s认证文件到默认路径:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
## 执行添加节点
kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   2m   v1.19.0

五、部署Kubernetes Node


在192.168.2.131/132(Node)执行。

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

kubeadm join 192.168.2.130:6443 --token y5of4a.b9g9atwa6mzprag0 \--discovery-token-ca-cert-hash sha256:4538525e80edd27056cdb6b2e1d75373cf91ef1ff21b8bd7437551d64b9ed281 

六、部署容器网络(CNI)


Calico是一个纯三层的数据中心网络方案,Calico支持广泛的平台,包括Kubernetes、OpenStack等。

Calico 在每一个计算节点利用 Linux Kernel 实现了一个高效的虚拟路由器( vRouter) 来负责数据转发,而每个 vRouter 通过 BGP 协议负责把自己上运行的 workload 的路由信息向整个 Calico 网络内传播。

此外,Calico 项目还实现了 Kubernetes 网络策略,提供ACL功能。

 wget  --no-check-certificate   https://docs.projectcalico.org/v3.14/manifests/calico.yaml

下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init指定的一样

修改完后应用清单:

kubectl apply -f calico.yaml
kubectl get pods -n kube-system

节点查看

七、测试kubernetes集群


  • 验证Pod工作
  • 验证Pod网络通信
  • 验证DNS解析

在Kubernetes集群中创建一个pod,验证是否正常运行:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

访问地址:http://NodeIP:Port

相关文章:

【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0

目录 一、 Kubernetes 的概述 二、服务器配置 2.1 服务器部署规划 2.2服务器初始化配置 三、安装Docker/kubeadm/kubelet【所有节点】 3.1 安装Docker 3.2 添加阿里云YUM软件源 3.3 安装kubeadm&#xff0c;kubelet和kubectl 四、部署Kubernetes Master 五、部署Kube…...

Android 开发环境搭建的步骤

本文将为您详细讲解 Android 开发环境搭建的步骤。搭建 Android 开发环境需要准备一些软件和工具&#xff0c;以下是一些基础步骤&#xff1a; 1. 安装 Java Development Kit (JDK) 首先&#xff0c;您需要安装 Java Development Kit (JDK)。JDK 是 Android 开发的基础&#xf…...

六、继承(一)

1 继承的引入 以往我们想分别实现描述学生、老师的类&#xff0c;可能会这样子做&#xff1a; class Student {string _name;string _number;int _tel;int id;string _address;int _age; }; class Teacher {string _name;int _level;int _tel;int id;string _address;int _ag…...

数字化转型导师鹏:政府数字化转型政务服务类案例研究

政府数字化转型政务服务类案例研究 课程背景&#xff1a; 很多地方政府存在以下问题&#xff1a; 不清楚标杆省政府数字化转型的政务服务类成功案例 不清楚地级市政府数字化转型的政务服务类成功案例 不清楚县区级政府数字化转型的政务服务类成功案例 课程特色&#x…...

解决ODOO12 恢复数据库提示内存不够报错

1. 现象 点击 ‘restore database’ 控制台报错&#xff1a; 2. 解决措施 a. 进入启动脚本的文件夹 cd odoo/odoo-12.0/输入命令 ./odoo-bin --addons-pathaddons --databaseodoo --db_userodoo --db_passwordodoo --db_hostlocalhost --db_port5432 -i INITb. 刷新页面…...

关于数据提交上传服务端的数据类型以及项目打包上线的流程

1 请求头的类型&#xff1a; content-type&#xff1b; 01: application/json 数据以json格式请求&#xff1a;{"key":"value"} 02: application/x-www.form-urlencoded from表单的数据格式 name"zs"&age12 03 mutipart/form-data…...

儿童悬吊训练系统:改善脑性麻痹儿童平衡感与运动能力的有效途径

脑性麻痹&#xff08;CP&#xff09;是一种运动障碍&#xff0c;常常由于早期的运动皮层损伤而引起。这种损伤可能导致姿势、操纵技能和行走能力的差异。平衡控制不良是 CP 患儿面临的一项主要挑战&#xff0c;它可能导致动作控制异常以及步态问题&#xff0c;从而影响日常活动…...

ElasticSearch之文档的存储

写在前面 本文看下文档的存储相关内容。 1&#xff1a;如何确定文档存储在哪个分片&#xff1f; 我们需要确保文档均匀分布在所有的分片中&#xff0c;避免某些部分机器空闲&#xff0c;部分机器繁忙的情况出现&#xff0c;想要实现均匀分布我们可以考虑如下的几种分片路由算…...

在Redhat 7 Linux上安装llama.cpp [ 错误stdatomic.h: No such file or directory]

前期准备 在github上下载llama.cpp或克隆。 GitHub - ggerganov/llama.cpp: LLM inference in C/C ​ git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp 执行make命令编译llama.cpp make 在huggingface里下载量化了的 gguf格式的llama2模型。 https:/…...

linux 常用 命令行HTTP客户端

在Linux环境中&#xff0c;命令行HTTP客户端是一种用于发送HTTP请求的工具&#xff0c;它们通常用于测试网站、服务器或API的响应。这些客户端支持各种HTTP方法&#xff0c;如GET、POST、PUT、DELETE等&#xff0c;并允许用户设置请求头、发送数据等。以下是一些常用的命令行HT…...

深入理解@Param注解:用于参数映射的利器

摘要&#xff1a;Param注解在Java开发中被广泛应用&#xff0c;它可以优雅地解决方法参数与SQL语句中占位符的映射问题&#xff0c;提高代码的可读性和可维护性。本文将深入探讨Param注解的背景、使用方法、解决的问题、映射原理&#xff0c;并对使用与不使用Param注解的情况进…...

OCP Secure boot必要特性

三点必需要求&#xff1a; The platform components must: 1. Provide a mechanism for securely anchoring a root of trust public key. // 提供一种用于安全地锚定信任根公钥的机制。 2. Verify the device firmware digital signature using the anchored public key /…...

全新攻击面管理平台

首页大屏 内测阶段&#xff0c;免费试用一个月 有兴趣体验的师傅&#xff0c;来长亭云图极速版群里找我 py...

在VMware中安装CentOS 7并配置Docker

VMware安装CentOS 7 一、介绍 该文章介绍如何使用启动U盘在虚拟机里面安装系统&#xff0c;虚拟机版本为VMware Workstation 16 pro&#xff0c;Linux版本为CentOS Linux release 7.9.2009 (Core)。 二、安装 1、创建虚拟机 点击创建新的虚拟机 选择典型就可以了&#xf…...

Leetcoder Day37| 动态规划part04 背包问题

01背包理论基础 面试掌握01背包&#xff0c;完全背包和重背包就够用了。 背包问题的理论基础重中之重是01背包&#xff0c;一定要理解透&#xff01; 01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品…...

突破编程_C++_面试(STL 编程 vector )

面试题 1 &#xff1a;std::vector 的底层存储机制是什么&#xff1f; std::vector 的底层存储机制是一个动态数组&#xff0c;它内部通过一片连续的内存空间来存储元素。当这个连续的内存空间不足以容纳新元素时&#xff0c;std::vector 会自动申请一块更大的内存空间&#x…...

【报名指南】2024年第九届数维杯数学建模挑战赛报名全流程图解

1.官方报名链接&#xff1a; 2024年第九届数维杯大学生数学建模挑战赛http://www.nmmcm.org.cn/match_detail/32 2.报名流程&#xff08;电脑与手机报名操作流程一致&#xff09; 参赛对象为在校专科生、本科生、研究生&#xff0c;每组参赛人数为1-3人&#xff08;指导老师不…...

C#,哈夫曼编码(Huffman Code)压缩(Compress )与解压缩(Decompress)算法与源代码

David A. Huffman 1 哈夫曼编码简史&#xff08;Huffman code&#xff09; 1951年&#xff0c;哈夫曼和他在MIT信息论的同学需要选择是完成学期报告还是期末考试。导师Robert M. Fano给他们的学期报告的题目是&#xff0c;寻找最有效的二进制编码。由于无法证明哪个已有编码是…...

JS 对象数组排序方法测试

输出 一.Array.prototype.sort() 1.默认排序 sort() sort() 方法就地对数组的元素进行排序&#xff0c;并返回对相同数组的引用。默认排序是将元素转换为字符串&#xff0c;然后按照它们的 UTF-16 码元值升序排序。 由于它取决于具体实现&#xff0c;因此无法保证排序的时…...

【计算机考研】408学到什么程度才能考130?

408考130要比考研数学考130难的多 我想大部分考过408的考生都是这么认为的。408的难点在于他涉及的范围太广了&#xff0c;首先如果你要备考408&#xff0c;你要准备四门课程&#xff0c;分别是数据结构&#xff0c;计算机组成原理&#xff0c;操作系统和计算机网络。 这四门…...

3步终结磁盘焦虑:Windows Cleaner让系统性能提升200%的实战指南

3步终结磁盘焦虑&#xff1a;Windows Cleaner让系统性能提升200%的实战指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 现象诊断&#xff1a;当C盘爆红成为工…...

LN2407 PWM/PFM 控制 DC-DC 降压稳压器

■ 产品概述 LN2407 是一款由基准电压源、振荡电路、比较器、PWM/PFM 控制电路等构成的 CMOS 降压 DC/DC 调整器。利用 PWM/PFM 自动切换控制电路达到可调占空比&#xff0c;具有全输入电压范围&#xff08;2.0&#xff0d;6V&#xff09;内的低纹波、高效率和大输出电流等特点…...

鸿蒙物联网开发教程-第八章 网络请求1

第八章 网络请求 8.1 网络请求概述 鸿蒙应用中的网络请求主要使用fetch API或@ohos.net.http模块进行网络通信。网络请求用于: 获取远程数据 上传数据到服务器 与物联网平台通信 调用第三方API 8.2 HTTP请求 8.2.1 使用fetch API // 发送GET请求fetch(‘https://api.e…...

手把手教你用Matlab复现电池SOH预测:从NASA/牛津公开数据集到麻雀算法优化BP神经网络

基于NASA/牛津电池数据的SOH预测实战&#xff1a;Matlab特征工程与麻雀算法优化全解析 锂电池健康状态&#xff08;SOH&#xff09;预测是新能源领域的热门研究方向&#xff0c;但许多初学者在复现论文成果时常常陷入"有数据不会用"的困境。本文将手把手带你用Matlab…...

ONNX Runtime性能优化:InferenceSession.run函数的高效使用技巧

1. ONNX Runtime与InferenceSession.run函数基础 ONNX Runtime是一个高性能的推理引擎&#xff0c;专门用于部署ONNX格式的机器学习模型。在实际应用中&#xff0c;模型的推理性能往往直接影响整个系统的响应速度和资源利用率。而InferenceSession.run函数正是这个过程中的核心…...

YimMenu:终极免费的GTA V模组菜单完全指南与安全防护教程

YimMenu&#xff1a;终极免费的GTA V模组菜单完全指南与安全防护教程 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/Y…...

2026年4月怎么部署OpenClaw?本地简单流程:部署与大模型API、Skill配置教程

2026年4月怎么部署OpenClaw&#xff1f;本地简单流程&#xff1a;部署与大模型API、Skill配置教程。OpenClaw作为2026年主流的AI自动化助理平台&#xff0c;可通过阿里云轻量服务器实现724小时稳定运行&#xff0c;并快速接入钉钉&#xff0c;让AI在企业群聊、个人工作流中自动…...

终极Fuel测试指南:使用MockWebServer编写可靠的Kotlin网络测试

终极Fuel测试指南&#xff1a;使用MockWebServer编写可靠的Kotlin网络测试 【免费下载链接】fuel The easiest HTTP networking library for Kotlin/Android 项目地址: https://gitcode.com/gh_mirrors/fu/fuel Fuel是Kotlin平台最简单易用的HTTP网络库&#xff0c;专为…...

League Akari:英雄联盟玩家的终极自动化工具箱完整指南

League Akari&#xff1a;英雄联盟玩家的终极自动化工具箱完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款专为《英…...

从零构建ZigBee开发环境:IAR for 8051 10.30.1实战指南

1. 为什么选择IAR for 8051开发ZigBee&#xff1f; 刚接触ZigBee开发的朋友们可能都有这样的困惑&#xff1a;市面上有那么多开发工具&#xff0c;为什么要用IAR for 8051&#xff1f;这个问题我十年前刚开始做智能家居时就遇到过。当时为了给一个智能灯泡项目选型&#xff0c;…...