一、K8S第一步搭建

一、初始化操作

  • 1.1、关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭交换空间

    swapoff -a  # 临时
    sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久
    

重启才能生效

  • 根据规划设置主机名

    hostnamectl set-hostname <hostname>
    
  • 映射主机

    cat >> /etc/hosts << EOF
    192.168.113.120 k8s-master
    192.168.113.121 k8s-node1
    192.168.113.122 k8s-node2
    EOF
    
  • 安装了docker,需要关闭 Docker 的 cgroups

    vim  /etc/docker/daemon.json{"exec-opts": ["native.cgroupdriver=systemd"]
    }
    

二、安装软件

2.1、k8s下载源设置
  • 更新系统软件包列表并升级已安装的软件包:
sudo apt update
sudo apt upgrade -y
  • 添加 Kubernetes 签名密钥:
curl -O https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg
  • 将下载的密钥文件导入到系统的 APT 密钥环中:
sudo apt-key add apt-key.gpg
  • 添加 Kubernetes 软件包存储库
vim /etc/apt/sources.list.d/kubernetes.list
  • 添加如下内容
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
  • 更新软件列表
sudo apt update
2.2、指定版本安装
  • 使用apt安装
sudo apt install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00
  • 查看是否安装成功和版本号
kubelet --version
kubectl version --shor
  • 禁用自动更新:为了避免通过 APT 自动升级这些组件,可以将它们标记为被锁定状态。执行以下命令禁用自动更新。
sudo apt-mark hold kubelet kubeadm kubectl
  • 启动 kubelet 服务:执行以下命令,启动 kubelet 服务。
systemctl enable kubelet
  • 查看启动状态
sudo systemctl status kubelet
  • 查看日志
journalctl -xefu kubelet
kubeadm reset

三、k8s集群配置

3.1、在主节点执行,集群初始化,并且指定主节点
kubeadm init \--apiserver-advertise-address=192.168.110.100 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.23.6 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16
命令说明
kubeadm init用于初始化 Kubernetes 集群的命令。它会根据提供的参数配置和创建一个新的 Kubernetes 集群
apiserver-advertise-address通过该参数指定 kube-apiserver 的发布地址,这是集群中其他节点连接到 master 节点的地址
image-repository指定使用的容器镜像仓库。
kubernetes-version过该参数指定要安装的 Kubernetes 版本
service-cidr指定 Kubernetes 服务的 IP 地址范围。这是 Kubernetes 服务分配的 IP 地址池,用于服务发现和负载均衡。
pod-network-cidr指定 Pod 网络的 IP 地址范围。这是为 Kubernetes Pod 分配的 IP 地址池,用于容器之间的通信。

初始化成功后,在后面日志最后会有一段加入集群的命令,例如:

kubeadm join 192.168.31.100:6443 --token x6v0kg.l40l5kjqapkrycv1 \--discovery-token-ca-cert-hash sha256:343238376e044d3d73edc8739ff07e8a02bc7bc2d68d7dba548df568bba7231b
3.2、配置API 通信需要使用的身份验证信息
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config#配置完后就可以使用 kubectl get nodes 查看节点信息
3.3、节点加入集群

在子节点上执行命令,加入刚才初始化的集群

kubeadm join xxx.xxx.xxx.xxx:6443 --token jnhrwg.owebyxwhjd97l4p2 --discovery-token-ca-cert-hash sha256:817b100b0f222826dd8870d9a8700cbdc93f2dce19b38d42b8981462466ca024
  • 端口号固定,ip填主节点的。

  • token值,可以使用kubeadm token list 查看,或者kubeadm token create 创建一个

  • discovery-token-ca-cert-hash sha256 , 使用如下命令获取,记得拼接sha256:

    openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
    
3.4、配置CNI网络插件

下载calico配置文件,可能网络会超时, 这个也需要注意下载的目录

curl https://docs.projectcalico.org/manifests/calico.yaml -O

修改 calico.yaml文件中的CALICO_IPV4POOL_CIDR 配置信息,和初始化集群中的cidr 相同

- name: CALICO_IPV4POOL_CIDRvalue: "10.244.0.0/16"

查看 calico.yaml 需要的镜像

grep image calico.yaml

他需要的镜像加上了下载源地址,是外网的,下载慢,所以可能需要手动下好,或者去掉下载源

将文件中的镜像下载地址去除,让使用我们的自己设置的镜像源

sed -i 's#docker.io/##g' calico.yaml

执行calico.yaml文件

kubectl apply -f calico.yaml

执行完可以查看系统的pod启动情况

kubectl get po -n kube-system

其他可能使用到的命令

四、使用Nginx测试K8S集群

1、创建部署

kubectl create deployment nginx --image=nginx

2、暴露端口

kubectl expose deployment nginx --port=80 --type=NodePort

3、查看 pod 以及服务信息

kubectl get pod,svc

4、查看部署信息

kubectl get deploy

5、将ngixn部署扩展为3个

kubectl scale deploy --replicas=3 nginx

6、其他命令

# 如果发现其他节点一直创建失败,可以先删除指定的pod
kubectl delete pod nginx-85b98978db-gtppc#再去查看pod信息的时候,就会发现又开始创建另外一个了
kubectl get po# 删除部署的ngin
kubectl delete deploy nginx
五、部署常用到的命令

查看 pods

kubectl get po

查看系统级别的pods信息

kubectl get po -n kube-system

-n 是指命名空间,kube-system是属于k8s自带的

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

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

相关文章

网络类型与数据链路层协议

目录 整体大纲图 一、网络类型 二、数据链路层协议 1、MA网络 2、P2P网络 1&#xff09;HDLC协议 2&#xff09;PPP协议 a、特点及其数据帧封装结构 b、组成及其工作过程 c、ppp会话流程及ppp验证 d、ppp配置命令 f、ppp mp 整体大纲图 一、网络类型 二、数据链路层…

系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库

目录 C文件接口系统文件I/O系统调用和库函数文件描述符0 & 1 & 2FILE和fd的关系文件描述符的分配规则 重定向重定向的本质输出重定向输入重定向追加重定向 dup2函数 FILE理解文件系统了解磁盘的物理结构逻辑抽象文件系统文件系统的图解和解析通过文件系统来理解ls -al通…

MySQL 3 环境搭建 MySQL 5.7版本的安装、配置

MySQL5.7.43官网下载地址 MySQL :: Download MySQL Community Server 这里选5.7.43&#xff0c;Windows版本&#xff0c;然后点击Go to Download Page&#xff0c;下载msi安装包的版本 MSI安装包版本比ZIP压缩包版本的安装过程要简单的多&#xff0c;过程更加清楚直观&#x…

MATLAB——径向基神经网络预测程序

欢迎关注公众号“电击小子程高兴的MATLAB小屋” %% 学习目标&#xff1a;径向基神经网络 %% 可以以任意精度逼近任意连续函数 clear all; close all; P1:10; T[2.523 2.434 3.356 4.115 5.834 6.967 7.098 8.315 9.387 9.928]; netnewrbe(P,T,2); %建立精确的径向基…

KMP 算法 + 详细笔记

给两个字符串&#xff0c;T"AAAAAAAAB"&#xff0c;P"AAAAB"; 可以暴力匹配&#xff0c;但是太费时和效率不太好。于是KMP问世&#xff0c;我们一起来探究一下吧&#xff01;&#xff01;&#xff01; &#xff08;一&#xff09;最长公共前后缀 D[i] p[…

【C/C++数据结构 - 2】:稳定性与优化揭秘,揭开插入排序、希尔排序和快速排序的神秘面纱!

文章目录 排序的稳定性插入排序插入排序的优化 希尔排序快速排序 排序的稳定性 稳定排序&#xff1a;排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同。&#xff08;比如&#xff1a;冒泡、插入、基数、归并&#xff09; 非稳定排序&#xff1a;排…

UVa658 It’s not a Bug, it’s a Feature!(Dijkstra)

题意 给出一个包含n个bug的应用程序&#xff0c;以及m个补丁&#xff0c;每个补丁使用两个字符串表示&#xff0c;第一个串表示补丁针对bug的情况&#xff0c;即哪些bug存在&#xff0c;以及哪些bug不存在&#xff0c;第二个串表示补丁对bug的修复情况&#xff0c;即修复了哪些…

进化算法------微生物进化算法(MGA)

前言 该文章写在GA算法之后&#xff1a;GA算法 遗传算法 (GA)的问题在于没有有效保留好的父母 (Elitism), 让好的父母不会消失掉. Microbial GA (后面统称 MGA) 就是一个很好的保留 Elitism 的算法. 一句话来概括: 在袋子里抽两个球, 对比两个球, 把球大的放回袋子里, 把球小…

ARMv5架构对齐访问异常问题

strh非对齐访问 在ARMv5架构中&#xff0c;对于strh指令&#xff08;Store Halfword&#xff09;&#xff0c;通常是要求对地址进行对齐访问的。ARMv5架构对于半字&#xff08;Halfword&#xff09;的存储操作有对齐要求&#xff0c;即地址必须是2的倍数。 如果尝试使用strh指…

2024北京国际光刻设备及光掩膜技术展览会

2024北京国际光刻设备及光掩膜技术展览会 Beijing Photolithography Equipment and Mask Application Technology Exhibition2024 基本信息 时间&#xff1a;2024年7月24-26日 地点&#xff1a;北京国家会议中心 展会简介 微电子技术的发展一直是光刻设备和技术变革的动力&…

二、使用DockerCompose部署RocketMQ

使用DockerCompose进行部署 RocketMQ的部署方式以及各自的特点 单master模式 只有一个 master 节点&#xff0c;如果master节点挂掉了&#xff0c;会导致整个服务不可用&#xff0c;线上不宜使用&#xff0c;适合个人学习使用。 多master模式 和kafka不一样&#xff0c;Rocke…

vue3 状态管理pinia

1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 &#xff0c;是 Vuex 状态管理工具的替代品 特点优势: 提供更加简单的API(去掉了mutation)提供符合组合式风格的API(和Vue3新语法统一)去掉modules的概念,每一个store都是一个独立的模块配合TypeScript更加友好,提供可靠的…

网站的常见攻击与防护方法

在互联网时代&#xff0c;几乎每个网站都存在着潜在的安全威胁。这些威胁可能来自人为失误&#xff0c;也可能源自网络犯罪团伙所发起的复杂攻击。无论攻击的本质如何&#xff0c;网络攻击者的主要动机通常是谋求经济利益。这意味着无论您经营的是电子商务项目还是小型商业网站…

【Redis】Set集合相关的命令

目录 命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREMSINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 命令 SADD 将⼀个或者多个元素添加到set中。注意&#xff0c;重复的元素⽆法添加到set中。 SADD key member [member ...]SMEMBERS 获取⼀个set中的所有元素&#xff0…

vector Autosar someip和vsomeip协议调试总结

someip是现代车辆通信的主流通信协议知一&#xff1b; someip的主要涉及模型以及协议结构&#xff0c;我就不做多的做介绍了&#xff0c;如有需要请读者自行进行百度学些&#xff1b; 虽然someip协议已经基本成熟&#xff0c;但有多个实现版本&#xff0c;现在使用较多的主要…

④. GPT错误:导入import pandas as pd库,存储输入路径图片信息存储错误

꧂ 问题最初꧁ 用 import pandas as pd 可是你没有打印各种信息input输入图片路径 print图片尺寸 大小 长宽高 有颜色占比>0.001的按照大小排序将打印信息存储excel表格文件名 表格路径 图片大小 尺寸 颜色类型 占比信息input输入的是文件就处理文件 是文件夹&#x1f4c…

数据结构与算法—单链表

目录 一、链表 1、链表的概念及结构 2、分类 二、实现单向链表 1、声明链表结构体 2、输出 3、头插&尾插 4、头删尾删 5、查找 6、指定位置插入 7、删除指定节点 8、删除指定节点的后一个节点 9、单链表的销毁 完整版 LList.h LList.c text.c 一、链表 …

spring中事务相关面试题(自用)

1 什么是spring事务 Spring事务管理的实现原理是基于AOP&#xff08;面向切面编程&#xff09;和代理模式。Spring提供了两种主要的方式来管理事务&#xff1a;编程式事务管理和声明式事务管理。 声明式事务管理&#xff1a; Spring的声明式事务管理是通过使用注解或XML配置来…

LocalDateTime与时间戳

众所周知&#xff0c;如果想把 LocalDateTime 转为时间戳&#xff0c;需要先指定时区&#xff0c;然后才能转为时间戳&#xff0c;例如&#xff1a; LocalDateTime localDateTime LocalDateTime.now(); ZonedDateTime zonedDateTime localDateTime.atZone(ZoneId.systemDe…

BI工具:让数据分析井然有序一望而知

BI&#xff08;Business Intelligence&#xff09;工具是一类专门用于数据分析和决策支持的软件工具。 它们能够将企业内部和外部的数据进行整合、处理和可视化&#xff0c;帮助用户从海量数据中获取有价值的见解和洞察&#xff0c;并以直观、易懂的方式展示给决策者和相关人员…