k8s集群部署01

news2024/11/18 20:39:05

k8s集群部署01

  • Kubernetes简介
  • Kubernetes部署
    • 节点部署
    • 关于yum缓存提示满了,Rhel7换源解决
      • 报错
      • 解决
      • 过程
      • 配置文件内容—要自己看链接是否过期
    • 集群初始化
      • Kubernetes-kubectl命令出现错误【The connection to the server localhost:8080 was refused - did you specify the right host or port?

Kubernetes简介

  • 在这里插入图片描述
    在这里插入图片描述
  • 官方去掉了master和slaves
  • 在这里插入图片描述
  • 在这里插入图片描述
    在这里插入图片描述
  • k8s是一个管理工具,但越来越发展像一个操作系统
  • 网红直播——阿里云平台,有重要数据如医药行业,组建控制中心。
  • 在这里插入图片描述
  • 底层架构可以是物理机、虚拟机或者是云

Kubernetes部署

节点部署

  • 在这里插入图片描述
  • server3:空白,server1和2:已装好docker
  • server1和2干掉不用的网络
    在这里插入图片描述
    在这里插入图片描述
  • 卷、网络和容器都各有参数
    在这里插入图片描述
    在这里插入图片描述
  • 把不用的删除
    在这里插入图片描述
  • 删除容器
    在这里插入图片描述
  • 再次删除不用的卷
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 在sever3安装docker
  • 阿里云、腾讯云的docker版本其实很低,1.20都算很高了,最新的1.24
  • 三台机器docker版本最好保持一致
  • 将server2的yum源拷贝到3过去
    在这里插入图片描述
  • 用的是centos社区版
    在这里插入图片描述
  • e17比较低,18、19、20可以
    在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • k8s在1.24之前,每个节点上有Kubelet控制整个节点生命周期,通过gRPC的协议连接dockershim(这就是Kubelet内嵌的一个docker垫片),Docker一出世开辟了级联,也是武林盟主地位的,后面发展不好(一手好牌打的稀烂),而对于k8s而言这些都是多余的,两行命令行即可完成,只需要containerd就行,docker引擎一直挡在前面,通过其再调用别的。低级调用链。
  • 在这里插入图片描述
    在这里插入图片描述
  • 启动docker
    在这里插入图片描述
    在这里插入图片描述
  • 拷贝配置文件到server3
    在这里插入图片描述
    在这里插入图片描述
  • 看官网开始配置
    在这里插入图片描述
  • 三台机器都:关闭防火墙,禁掉swap交换分区,并防止开机自启
    在这里插入图片描述
    在这里插入图片描述
  • 网络、并允许iptables检查桥接流量
  • k8s和docker的默认驱动不一样,docker为cgroups,而k8s需要systemd
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 把配置文件拷贝到server2、3
    在这里插入图片描述
  • 在每个节点重启一下,并确认
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装kubeadm、kubelet和kubectl
  • 初始化集群:kubeadm
  • 在集群的每个节点上用来启动Pod和容器等:kubele
  • 用来与集群通信的命令行工具:kubectl
  • 登陆阿里云链接
  • 在这里插入图片描述
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

在这里插入图片描述

  • 在这里插入图片描述
    在这里插入图片描述
  • 不需要最新版,1.24及以上默认不支持docker(该种情况下只能配runtime)
    在这里插入图片描述
  • 生态环境需要稳定
  • 安装1.23.6版本的三个包
    在这里插入图片描述
    在这里插入图片描述
  • 启动kubelet,并设置开机自启
    在这里插入图片描述
  • 每个节点都一样
    在这里插入图片描述
    在这里插入图片描述

关于yum缓存提示满了,Rhel7换源解决

报错

在这里插入图片描述

解决

  • 解决:提示yum源缓存满了无法下载,我就先备份旧的,然后下载了一个新阿里云的源,清理旧缓存数据,缓存新数据,最后yum makecache

过程

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 完成
    在这里插入图片描述

配置文件内容—要自己看链接是否过期

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-7 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
        http://mirrors.aliyuncs.com/centos/7/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-7 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/7/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/7/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/7/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-7 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/7/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

集群初始化

  • 在这里插入图片描述
    在这里插入图片描述

  • 查看集群默认配置信息在这里插入图片描述

  • k8s的两种默认配置方式

  • 第一种是把k8s生成默认配置文件,把需要的东西做适当的修改一推就行,第二种是通过命令行的方式,但两种方式不能兼容。

  • 默认镜像仓库的位置,所以默认情况肯定拉取不了
    在这里插入图片描述

  • 通过参数指定镜像仓库,指向阿里云镜像站
    在这里插入图片描述

  • 当前最新匹配的是1.26.0,现在用的是1.23.0
    在这里插入图片描述

  • 指定k8s安装版本

  • 下载的k8s集群的镜像版本决定了真正k8s镜像版本
    在这里插入图片描述

  • 提前拉取镜像,以免初始化拉取的时候等待
    在这里插入图片描述

  • 下载完成,开始初始化

  • 并给容器Pod(最小的原子单位,和docker不一样)指定网络IP段,因为我们使用的是第三方Flannel组件

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 报错后修改虚拟机配置
    在这里插入图片描述

  • 拉取镜像过程会非常快
    在这里插入图片描述

  • 表示想在普通用户上操作:
    在普通用户下创建一个目录,把etc下面的证书拷贝过来,通过这个证书用管理员的身份去连接,拷贝到部署目录中,继而去组建

  • 超级用户直接复制一个变量就行
    在这里插入图片描述

  • Pod还没有运行起来,组建没有就绪在这里插入图片描述
    在这里插入图片描述

  • 1.24的时候master就没有了

  • 链接: link

  • k8s v.1.17版本上运行在这里插入图片描述

  • 链接: link

  • 在这里插入图片描述

  • 内含两个镜像

  • 通过kubectl做一些修改和运行
    在这里插入图片描述

  • 若有警告不需要管,是让1.25之后找到替换掉

  • 清单里面定义的是对资源的期望状态
    在这里插入图片描述

  • 每个节点都会部署kube-flannel-ds-bkl4v
    在这里插入图片描述

  • 在这里插入图片描述

  • 补齐功能
    在这里插入图片描述
    在这里插入图片描述

  • 下载镜像之后运行
    在这里插入图片描述

  • 全部为running状态
    在这里插入图片描述

  • 节点为ready状态
    在这里插入图片描述

  • 这时完成了主控节点部署

  • 寻找master的join信息,join的token默认有效期24小时
    在这里插入图片描述
    在这里插入图片描述

  • 如果超过24小时需要扩容其他节点,需要再kubeadm token create创建token,然后替换该命令里的token就行

  • 使用参数自动打印
    在这里插入图片描述

  • 若过期敲回车运行
    在这里插入图片描述

  • kubeadm token create --print-join-command

  • 这里都增大server2和3的内存以免后面报错
    在这里插入图片描述

  • 关闭SELinux在这里插入图片描述
    在这里插入图片描述

  • 关闭防火墙在这里插入图片描述

  • 记得设置开机自启服务
    在这里插入图片描述

systemctl enable --now kubelet.service
systemctl disable firewalld --now
getenforce
sysctl -w net.ipv4.ip_forward=1

#重新生成token
kubeadm token create --print-join-command
systemctl status kubelet
  • 发现服务已经起来了
    在这里插入图片描述
  • 将server2和3部署好
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Kubernetes-kubectl命令出现错误【The connection to the server localhost:8080 was refused - did you specify the right host or port?

  • 解决:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
  • 节点flannel还未加载完,代理没有跑完
    在这里插入图片描述
  • 查看节点情况
kubectl get pod -A
kubectl get pod -A -o wide
  • 在这里插入图片描述
  • 查看镜像部署下载情况在这里插入图片描述
  • 一个三个节点的k8s就部署好了
    在这里插入图片描述
  • 来跑一个镜像,master不会参与调度,会分配给2和3
    在这里插入图片描述
  • running才是下载好的镜像,才能运行
  • 查看镜像
kubectl get pod -A
kubectl get pod -A -o wide
kubectl describe pod demo
  • 是一个集群,只要在一个节点上操作就行
    在这里插入图片描述

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

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

相关文章

git chrry pickup

git chrry pickup目录概述需求&#xff1a;设计思路实现思路分析1.java2.转移分支3.git merge4.cherry pick.切换到 master 分支Cherry pick 操作参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;…

基于MVC的在线影票售卖系统/基于ASP.NET的电影院售票系统

摘 要 随着电影院规模的不断扩大&#xff0c;人流数量的急剧增加&#xff0c;有关电影院的各种信息量也在不断成倍增长。面对庞大的信息量&#xff0c;就需要有在线影票售卖系统来提高电影院工作的效率。通过这样的系统&#xff0c;我们可以做到信息的规范管理和快速查询&…

副业项目分享,旧衣回收项目怎么做

大家好&#xff0c;我是蝶衣王的小编&#xff0c;今天分享一个简单的项目 我们每个家庭都有多余的旧衣服。许多人会直接把它们扔进垃圾桶。然而&#xff0c;这里隐藏着巨大的商机。说到这里&#xff0c;每个人都应该想到&#xff1a;旧衣服的回收。 事实上&#xff0c;目前国…

《位图布隆过滤器》

【一】位图的概念 位图&#xff0c;就是用每一个比特位来存放某种状态&#xff0c;适用于海量数据&#xff0c;整数&#xff0c;数据无重复的场景&#xff0c;通常是用来判断某个数据存不存在的。例如&#xff1a;10个整数本应该存放四十个字节&#xff0c;此时用位图只需要十…

Ajax(JavaWebAjax、源生Ajax、跨域)

1.JavaWeb - Ajax 概念&#xff1a;AJAX&#xff08;Asynchronous Java JavaScript And Xml &#xff09;&#xff1a;异步的JavaScript和Xml AJAX作用&#xff1a; 与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据。 使用…

2022-12-28-面试题整理

1. Spring中Bean创建完成后执行指定代码的几种实现方式 实现ApplicationListener接口 实现ApplicationListener接口并实现方法onApplicationEvent()方法&#xff0c;Bean在创建完成后会执行onApplicationEvent()方法 Component public class DoByApplicationListener impleme…

Java操作redis数据库之读取csv文件

csv文件 要想对某个文件进行具体操作&#xff0c;首先要了解这个文件的结构。csv 全称“Comma-Separated Values”&#xff0c;是一种逗号分隔值格式的文件&#xff0c;是一种用来存储数据的纯文本格式文件。CSV 文件由任意数目的记录组成&#xff0c;记录间以某种换行符分隔&…

FPGA再入门——UART IP核调用

我的工作偏向硬件设计与调试&#xff0c;但是经过几年的发展&#xff0c;发觉不会调程序发展真的很受限制。最近越来越被这种限制折磨的很难受&#xff0c;所以开始学习调调程序。其实&#xff0c;本科与研究生阶段都有过做写代码的经历&#xff0c;算是入过门。但是&#xff0…

[3]ESP32连接MQTT服务端

MQTT库&#xff1a;PubSubClient 连接MQTT服务端 #include <Arduino.h> #include <WiFi.h> #include <PubSubClient.h>const char *ssid "613专属"; const char *password "613613613"; const char *mqttServer "test.ranye-…

CDGA|持续投入开展数据治理工作可以从这四大方向着手

数字化转型趋势下&#xff0c;外部监管以及内部数据使用都对数据治理提出更高效、更准确、更完备、更合规的要求&#xff0c;企业如何抓住新形势下的要求&#xff0c;开展自身数据治理工作&#xff1f; 纵观数据治理的发展历程&#xff0c;剖析数据治理的建设路径&#xff0c;持…

3. 中断向量是( )。 ————计算机组成原理

中断向量是&#xff08; &#xff09; A.子程序入口地址 B.中断向量表的首地址 C.终端服务程序入口地址 D.终端服务入口地址的地址 答案&#xff1a; C 知识点&#xff1a; 终端的概念&#xff1a; 1 机器出现了一些紧急事务&#xff0c;CPU不得不停下当前正在执行的程序&…

SQL经典练习:电脑商店

表结构 本文使用的表结构如下&#xff1a; 以下是创建表的语句&#xff1a; -- 厂商表 CREATE TABLE Manufacturers (Code INTEGER NOT NULL PRIMARY KEY, -- 编号&#xff0c;主键Name VARCHAR(255) NOT NULL, -- 名称 );-- 产品表 CREATE TABLE Products (Code INTEGER NO…

深蓝学院-多传感器融合定位课程-第10章-基于图优化的建图方法

专栏文章: 深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第3章-3D激光里程计II_goldqiu的博客-CSDN博客 深蓝学院-多传感器融合定位课程-第…

Spring动态数据源的简单理解

连接数据库时&#xff0c;需要url&#xff0c;userName&#xff0c;和password&#xff0c;怎么做到动态呢&#xff0c;那就是在使用时&#xff0c;根据你的设置&#xff0c;去连接不同的url&#xff0c;userName&#xff0c;和password&#xff0c;实现数据源的切换。 1.先写…

【JavaScript】JS飞机大战网页简易版

文章目录一、效果演示设计思路二、鼠标版飞机大战代码展示1.HTML结构代码2.CSS样式代码3.JavaScript代码js.js文件plane.js文件三、键盘版飞机大战代码展示1.HTML结构代码2.CSS样式代码3.JavaScript代码四、代码资源分享一、效果演示 利用html&#xff0c;css&#xff0c;js制…

php进程管理

PHP-FPM 先来了解一些名词概念&#xff1a; CGI是Common Gateway Interface&#xff08;通用网管协议&#xff09;&#xff0c;用于让交互程序和Web服务器通信的协议。它负责处理URL的请求&#xff0c;启动一个进程&#xff0c;将客户端发送的数据作为输入&#xff0c;由Web服…

首发!飞凌嵌入式i.MX9系列核心板重磅发布

来源&#xff1a;飞凌嵌入式官网www.forlinx.com为了让更多设备实现高能效、高安全性和智能化升级&#xff0c;NXP推出了全新的i.MX 93x系列处理器。作为NXP的重要合作伙伴&#xff0c;飞凌嵌入式在i.MX 9352的α阶段便进行该款处理器的产品研发工作。今天&#xff0c;飞凌嵌入…

HNU编译原理实验三cminus_compiler-2022-fall

前言&#xff1a;实验难度再次提升&#xff0c;不过会一个就可以做其他部分&#xff0c;很多都是相同的&#xff0c;个人认为更难的还是配置环境部分&#xff0c;真的会折磨死人 lab3 实验报告实验要求 第一部分: 了解LLVM IR。通过clang生成的.ll&#xff0c;了解LLVM IR与c代…

Windows10下CLion配置说明

Windows10下CLion配置说明 CLion 是 C/C的 IDE&#xff0c;可以配置多种编译环境&#xff0c;本文以配置MinGW编译环境为例。 安装 CLion 的安装可直接到官网下载 ZIP,文件解压后直接运行即可。我在安装过程中没有遇到困难&#xff0c;网上关于安装的教程很多&#xff0c;如…

TCP连接积压导致服务假死问题

目录 一、事故表现 二、事故问题分析 三、测试环境重现 四、解决方案 一、事故表现 2022-01-14日凌晨00:00开始&#xff0c;TCP_alloc&#xff1a;已分配TCP连接&#xff0c;一直未释放。导致未释放的 TCP连接一直积压。最终服务LOGISTICS-DS-ES-COMMON-SERVICE假死&#x…