kubernetes(k8s)第三部分之部署

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群 Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群 阅读详情

环境,所有主机火墙关闭,selinux为diaable

K8s-master

172.25.37.11

服务(Etcd,apiserver,

controller-manager,

Scheduler)

私有镜像仓库:registry

K8s-node1

172.25.37.12

Proxy,kubelet

K8s-node2

172.25.37.13

Proxy,kubelet

一、准备工作

Master节点网络配置必须有网关,没有网关kube-apiserver服务起不来,至于原因,我了不了解,作为新手这个坑我找了好久才找到解决方法。

【1】所有节点/etc/hosts作解析:

172.25.37.11    etcd  k8s-master registry

172.25.37.12    k8s-node1

172.25.37.13    k8s-node2

所有节点设置主机名:

[root@server1 ~]# hostnamectl set-hostaname --static k8s-master

[root@server2 ~]# hostnamectl set-hostaname --static k8s-node1

[root@server3 ~]# hostnamectl set-hostaname --static k8s-node2

【2】让桥接的虚拟机上网:

真机:

[root@random hadoop]# iptables -t nat -I POSTROUTING -s 172.25.37.0/24 -j MASQUERADE

用真机ping mirrors.aliyun.com ,ping通后你可以看到一个IP地址,将这个IP地址写到虚拟机/etc/hosts文件里,并指向mirrors.aliyun.com

虚拟机:

[root@k8s-master ~]# route add default gw 172.25.37.250

【3】配置yum源

[root@k8s-master~]# wget  http://mirrors.aliyun.com/repo/Centos-7.repo

我们获取到的配置文件Centos-7.repo打开后有个$releasever,这个是yum变量,我们需要替换掉,否则源没法使用,使用如下命令替换$releasever:

[root@k8s-master ~]# sed -i 's/$releasever/7/g' /etc/yum.repos.d/Centos-7.repo

[root@k8s-master ~]# yum clean all

[root@k8s-master ~]# yum repolist

[root@k8s-master ~]#scp  /etc/yum.repos.d/Centos-7.repo  root@172.25.37.12:/etc/yum.repo.d/

[root@k8s-master ~]#scp  /etc/yum.repos.d/Centos-7.repo  root@172.25.37.13:/etc/yum.repo.d/

 

二、安装软件并配置master

【1】安装软件

[root@k8s-master yum.repos.d]# yum install -y kubernetes etcd

【2】修该apiserver 文件,该文件在/etc/kubernetes目录底下。

[root@k8s-master ~]# cat /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_API_PORT="--port=8080"

KUBE_ETCD_SERVERS="--etcd-servers=http://etcd:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"

KUBE_API_ARGS=""

【3】配置/etc/etcd/etcd.conf文件

[root@k8s-master ~]# cat /etc/etcd/etcd.conf 
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="default"
ETCD_ADVERTISE_CLIENT_URLS="http://etcd:2379"

【4】配置config文件

[root@k8s-master ~]# cat  /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://k8s-master:8080"

【5】开启服务

[root@k8s-master ~]# for service in {etcd,kube-apiserver,kube-controller-manager,kube-scheduler} ; \
> do systemctl start $service ; \
> done

 三、配置Node节点

【1】安装软件

[root@k8s-node1 ~]# yum install -y kubernetes docker

【2】配置kubelet

[root@k8s-node1 ~]# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_HOSTNAME="--hostname-override=k8s-node1"
注:k8s-node2将上面的k8s-node1替换即可
KUBELET_API_SERVER="--api-servers=http://k8s-master:8080"
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"
KUBELET_ARGS=""

【3】配置config

[root@k8s-node1 ~]# vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://k8s-master:8080"

【4】开启服务

[root@k8s-node1 ~]# systemctl start kubelet

[root@k8s-node1 ~]# systemctl start kube-proxy

其他node节点 配置与k83-node1类似。然后启动kubelet 和 kube-proxy 服务

【5】在master节点查看node

[root@k8s-master ~]# kubectl get nodes

NAME        STATUS    AGE

K8s-node1   Ready     6m

K8s-node2   Ready     6s

四、配置Flannel

【1】说明

Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。

在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配。这样导致的一个问题是,不同节点上容器可能获得相同的内外IP地址。并使这些容器之间能够之间通过IP地址相互找到,也就是相互ping通。
Flannel的设计目的就是为集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得“同属一个内网”且”不重复的”IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。

详细信息参考:http://dockone.io/article/618

【2】在所有节点上面安装flannel

[root@k8s-master ~]# yum install -y flannel

【3】在所有节点配置flanneld

[root@k8s-master ~]# cat /etc/sysconfig/flanneld 
FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"
# For address range assignment
FLANNEL_ETCD_PREFIX="/atomic.io/network"
# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

【4】配置etcd中flanneld的key

这一步只需要在master节点进行:

[root@k8s-master ~]# etcdctl mk /atomic.io/network/config '{ "Network": "10.0.0.0/16" }'

【5】所有节点启动flanneld

[root@k8s-master ~]# systemctl start flanneld

K8s-master重新启动kube-apiserver,kube-controller-manager,kube-scheduler,docker。

K8s-node节点重启kube-proxy,kubelet,docker


【Kubernetes】以LOL的视角打开K8s LOL和K8s都上手之后,其实我觉得相比较起来,LOL的上手难度要高多了,这么多个英雄,每个英雄有不同的机制和技能,这些可比K8s的内容多多了,所以如果大家LOL都能上手的话,上手K8s肯定不会是问题的! 阅读详情

相关推荐

K8S:Rancher管理 Kubernetes 集群

本文对Rancher介绍:Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,确保集群的安全性,能够管理 k8s 集群。 对对Rancher安装以及配置、登录进入平台后如何操作进行介绍

Katie_ff的博客 5831

Kubernetes部署及Dashboard部署

时间记录:2019-7-2 Kubernetes(K8s) 是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。 官方文档 笔者安装部署遇到了一些问题在这里记录下。 安装参考 安装环境准备: 虚拟机三台:192.168.141.129、192.168.141.130、192.168.131 系统:centos7,每个处理器分配至少2个 设置主机名 hostnamectl set-hostn...

KaffeeVenus 372

数据仓库建模的步骤-从需求分析到模型优化的全面指南

数据仓库建模是一个系统化的过程,旨在设计和构建一个高效、可扩展的数据存储和分析环境。它的目标是将来自不同源系统的数据整合到一个统一的、面向主题的、随时间变化的数据集合中,以支持企业的决策制定过程。数据仓库建模不仅仅是创建表格和定义关系,它更是一门艺术,需要平衡业务需求、技术限制和未来的可扩展性。提供快速的查询性能支持复杂的分析需求适应业务的变化和增长保持数据的一致性和准确性接下来,让我们深入探讨数据仓库建模的每个主要步骤。

一个8年大数据开发工程师的碎碎念 2101

The connection to the server localhost:8080 was refused

最近在学习安装Kubernetes集群的时候,安装完执行sudo kubectl get nodes命令出现这个报错。下面是解决方法。 Master节点出现这个报错 首先需要检查Master安装完Kubernetes后是否执行了下面命令,有时在普通用户下使用sudo执行了下面命令,但是到root根目录确发现没有相应的文件夹和文件,暂不知为何,所以最好在root用户下执行下面命令: mkdir -p $HOME/.kube #root用户下执行不需要加sudo sudo cp -i /etc/kubernet

志趣 9054

基于STM32的无人机智能避障与路径规划系统设计

本文详细介绍了基于STM32的无人机智能避障与路径规划系统设计,涵盖硬件选型、传感器组合、软件架构及算法实现。通过多传感器数据融合和改进的VFH+算法,系统在复杂环境中实现92%以上的避障成功率。STM32微控制器的实时性和低功耗特性为无人机自主导航提供了可靠保障,适用于工业巡检、仓储物流等场景。

blockchain9miner的博客 877

李宏毅机器学习笔记第17周_概述领域自适应(Domain Adaptation)

Domain Adaptation

peaunt1的博客 1105

K8S:K8S部署常见错误及解决方法

本文主要讲解K8S在二进制部署和kubeadm部署时常见的错误以及排查思路

云计算之路 6513

OpenClaw 完整部署教程

版本:OpenClaw 2026.2.13更新日期:2026-02-26适用系统:Linux (Ubuntu/Debian/CentOS)

qq_39436086的博客 2318

kubelet.service启动失败

kubelet.service启动失败 故障怕排查

Hcucg的博客 7370

正点原子RK3588 Android 12镜像构建实战:从环境配置到烧录验证全指南

本文提供了一份基于正点原子RK3588开发板的Android 12镜像构建全流程实战指南。内容涵盖从Ubuntu环境配置、SDK获取、编译内核与系统,到最终镜像打包与烧录验证的完整步骤,并分享了内核驱动定制与系统优化技巧,旨在帮助开发者高效完成瑞芯微RK3588平台的系统定制工作。

grass的博客 811

AI Agent Harness Engineering 的“热插拔”能力:模块化设计思路

本文我会结合我在大厂做AI Agent平台的实战经验,从核心概念、架构设计、代码实现、落地实战多个维度,给大家详细讲解AI Agent Harness Engineering的核心能力——热插拔的模块化设计思路。我们会从问题根源出发,一步步搭建一个完整的支持热插拔的Agent Harness框架,包含组件抽象、注册中心、生命周期管理、配置驱动、容错机制等核心模块。

AI天才研究院 503

【博客558】k8s node为什么需要关闭selinux与swap

Kubernetes 云原生的实现目的是将运行实例紧密包装到尽可能接近 100%: 所有的部署、运行环境应该与 CPU 以及内存限定在一个可控的空间内。所以如果调度程序发送一个 Pod 到某一台节点机器,它不应该使用 Swap。如果使用swap,则其实node的pod使用内存总和可能超过了node的内存,这样其实就达不到资源的严格限制和管理的目的

qq_43684922的博客 4167

MAX30102心率血氧传感器原理图设计,已量产(e-Health传感器)

在最近的便携健康监测设备项目中,我们采用了集成算法的 MAX30102 心率血氧模块 —— 这类带内置 MCU 算法的传感器能直接输出心率 / 血氧数值,大幅降低了主控资源占用。但硬件电路的稳定性直接决定了 PPG 信号的采集精度,下面结合实际项目里的原理图,拆解下这个模块的设计细节。

不脱发的程序猿 1281

转 kubernetes(k8s)第三部分之部署

环境,所有主机防火墙关闭,selinux为disabled 一、准备工作 Master节点网络配置必须有网关,没有网关kube-apiserver服务起不来,至于原因,我了不了解,作为新手这个坑我找了好久才找到解决方法。 【1】所有节点/etc/hosts作解析: 172.25.37.11 etcd k8s-master registry 172.25.37.12 k8...

monkey的专栏 359

WOFOST作物模型(1):PCSE环境配置

get_summary_output() 方法通常用于在 PCSE 模拟过程结束后,获取模拟结果的摘要信息,例如模拟期间的总产量、总水分需求等。它可以提供对模拟结果的快速总结,方便用户进行后续的分析和处理。用.get_output来获取过程参数,并将这些参数转为dataframe显示。用run_till_terminate()代表终止。安装好之后,打开jupyter notebook。也可以指定运行时间,并获取最后一天的参数。首先还是打开之前建好的gee虚拟环境。

所有专家都曾始于新手 681

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

K8s(Kubernetes)简介及安装部署

前言: k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。 k8s最初是在Google公司内部使用了10多年的技术,它的前身是叫做Borg(博格),直到2015年才被Google公司捐赠为开源项目。 如果之前我们有接触过OpenStack,那么应该知道管理VM虚拟机资源可以用OpenStack。那么管理容器所对应的开源平台是什么呢?k8s就是其中之一,在k8s之...

lvjianzhaoa的博客 4万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Kubernetes K8S 基于 Docker 安装部署

在 Docker 容器技术被炒得热火朝天之时,大家发现,如果想要将 Docker 应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对 Docker 及容器进行更高级更灵活的管理。就在这个时候,K8S 出现了。K8S,就是基于容器的集群管理平台,它的全称,是 Kubernetes。 本次主题将会为你分享: K8S 起源 K8S 集群 为什...

GitChat 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

K8S(Kubernetes)概念、原理及部署过程

目录: 云计算概念和原理 云计算分类 什么是K8S K8S部署 云计算概念和原理 What 云计算是将硬件服务器、网络设备、网络资源、操作系统、应用程序统一的管理和调度,将所有的资源统一的按需分配,租户可以根据自己的需求来按需购买和使用 云计算重点强调的是资源池、租户概念,资源池中资源可以分配或者租用给租户(企业内部、互联网用户),可以根据需求直接去购买或者租用,对于租户来讲,不需要关...

番茄炒蛋君的博客 1万+

Kubernetes(k8s)实战:Kubernetes(k8s)部署Springboot项目

在集群中,pod之间可以通过service 的name进行访问,不仅仅是ip,这就意味着,service中不仅帮我们做了负载均衡,而且做了dns处理。如上,加上hostNetwork: true,就会在nacos上注册的ip端口,会映射成宿主机的ip和端口。如果在同一个k8s集群下,这样部署是没问题的,但是不同k8s集群下,微服务之间就互相不可访问了。我们发现,搭建成功了,用浏览器访问192.168.56.101:30493,发现访问成功了!访问:http://localhost:8080/k8s。

秃了也弱了 5751

一、kubernetes k8s

k8s的全称:kubernetes k8sk8s的版本:1.301.20------------用的最多的版本,1.18-1.211.24------------>k8s的镜像不再使用docker,containerd。

2401_87896172的博客 3657

k8s kubernetes

(Container Runtime Interface): 容器运行时接口,用来运行容器,k8s通过这个接口去兼容不同的容器,目前主要的CRI有CRI-O和containered,dockershim在k8s的1.24版本后从kubelet中剥离出来,主要由docker维护(不是亲儿子k8s也不会管了):containerd由docker开发,是docker用来操作runc的handler,与docker平级,docker生成的images等资源与containerd生成的images等资源不共享。

六月长安的博客 2735

什么是Kubernetes(K8s)?

更新时间: 2024-02-02 16:41:38内容Kubernetes(通常简称为K8s)是一款用于自动部署、扩缩和管理容器化应用程序的开源容器编排平台。Kubernetes已发展为现代企业实现敏捷开发、快速迭代、资源优化及灵活扩展的关键技术组件之一。它拥有庞大的开源社区和丰富的生态系统。围绕Kubernetes已经形成了众多工具、插件和解决方案,其使企业能够实现更高的资源利用率、更优的业务连续性和稳定性、更快的创新速度。为什么需要。

weixin_46575696的博客 2419

【云原生】详解Kubernetes、详解k8s,什么是k8s,k8s有什么用;k8s集群是什么、有什么用?

Kubernetes 是Google开源的分布式容器管理平台,是为了更方便的在服务器中管理我们的容器化应用。Kubernetes 简称 K8S,为什么会有这个称号?因为K和S是 Kubernetes 首字母和尾字母,而K和S中间有八个字母,所以简称 K8S,加上 Kubernetes比较绕口,所以一般使用简称 K8S。Kubernetes 即是一款容器编排工具,也是一个全新的基于容器技术的分布式架构方案,在基于Docker的基础上,可以提供从 一系列服务,提高了容器集群管理的便捷性。大家可以先看一下,下面一

点赞的都能无bug通过! 3977

【Kubernetes】k8s 部署指南

介绍了 k8s 在 windows 环境的安装,以及如何使用 k8s 来部署一个 Go web 应用

weixin_62533201的博客 2514

Kubernetes(K8S)原理

本质上讲, k8s创建一个pod后,每个Pod中至少存在两个容器,一个是用户自定义的容器,另一个是k8s自动创建的名称为pause-amd64的容器(配置IP), 实际上Pod的IP是配置在pause容器上的。stateful的实现要依赖于存储volume,例如一个Pod挂载一个独立的存储,该Pod宕机后,自动创建一个新的Pod,新Pod一样会去挂载存储获取数据,这就相当于新Pod继承的原有Pod的所有数据及状态。用于让构建业务集群的多个Pod间通过名称通信,而不是借助IP,来保证服务的有状态性。

weixin_57466446的博客 1859

Kubernetes 部署教程 ( Rocky 部署 k8s ) ( Linux 部署 k8s ) ( k8s 部署教程 )

Kubernetes k8s Rocky 搭建 Kubernetes Rocky 搭建 k8s Linux 搭建 Kubernetes Linux 搭建 k8s

开发。小白 的博客 2614
上一篇: kubernetes(k8s)第二部分之核心概念
下一篇: kubernetes(k8s)第四部分之配置本地镜像仓库
random_w
博客等级 码龄9年 130粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值