k8s介绍-搭建k8s

 Kubernetes介绍,官网:Kubernetes

  • 应用部署方式演变

  1. 传统部署:互联网早期,会直接将应用程序部署在物理机上

优点:简单,不需要其他技术的参与

缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容器产生影响

  1. 虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境

优点程序环境不会相互产生影响,提供了一定程度的安全性

缺点: 增加了操作系统,浪费了部分资源

  1. 容器化部署:与虚拟化类似,但是共享了操作系统

优点:可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等

运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦

容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署

容器化部署方式给带来很多便利,但是也会出现一些问题,比如说:

  1. 一个容器故障停机了,怎么样让另外一个容器立刻启动去替补停机的容器
  2. 当并发访问量变大的时候,怎么样做到横向扩展容器数量

这些容器管理的问题统称为容器编排问题,为了解决这些容器编排问题,就产生了一些容器编排的软件:

Swarm:docker自己的容器编排工具

Mesos:apache的一个资源统一管控的工具,需要和marathon结合使用

Kubernetes:google开源的容器编排工具

  • kubernetes简介

Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器---Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第二个正式版本。

Kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:

  1. 自我修复:一旦某个容器崩溃,能够在1秒中左右迅速启动新的容器
  2. 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整。
  3. 服务发现:服务可以通过自动发现的形式找到它所依赖的服务
  4. 负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
  5. 版本回退:如果发现新发布的程序版本问题,可以立即回退到原来的版本
  6. 存储编排:可以根据容器自身的需求自动创建存储卷

三、kubernetes组件

一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。

Master:集群的控制平面,负责集群的决策(管理)

Apiserver:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制。

Scheduler:负责集群资源调度,按照预定的调度策略将pod调度到相应的node节点上。

ControllerManager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等。

Etcd:负责存储集群中各种资源对象的信息。

Node:集群的数据平面,负责为容器提供运行环境(干活)

Kubelet:负责维护容器的生命周期,即通过控制docker来创建、更新、销毁容器

Docker:负责节点上容器的各种操作

下面以部署一个nginx服务来说明kubernetes系统各个组件的调用关系:

  1. 首先要明确,一旦kubernetes环境启动之后,master和node都会想自身的信息存储导etcd数据库中
  2. 一个nginx服务的安装请求会首先被发送到master节点的apiserver组件
  3. Apiserver组件会调用scheduler组件来决定到底应该把这个服务安装导哪个node节点上
  4. Apiserver调用controller-manager去调度node节点安装nginx服务
  5. Kubelet接收到指令后,会通知docker,然后由docker来启动一个nginx的pod,pod是kubernetes的最小操作单元,容器必须跑在pod中

一个nginx服务就运行了,如果需要访问nginx,就需要通过kube-proxy来对pod产生访问的代理,这样外界用户就可以访问集群中的nginx服务了。

四、kubernetes概念

Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控

Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行

Pod:kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器

Controller:控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等

Service:pod对外服务的统一入口,下面可以维护者同一类的多个pod

Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签

Namespace:命名空间,用来隔离pod的运行环境

k8s集群环境搭建

三台主机 

192.168.35.100                master

192.168.35.10                node1

192.168.35.20                node2


//禁用firewalld、selinux、postfix(三个节点都做)
[root@master ~]# systemctl status firewalld.service 
○ firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; p>Active: inactive (dead)Docs: man:firewalld(1)
[root@master ~]# getenforce 
Disabled//时间同步(三个节点都做)           
[root@master ~]# systemctl restart chronyd
[root@master ~]# hwclock -w
[root@master ~]# timedatectl Local time: Mon 2024-09-23 14:34:16 CSTUniversal time: Mon 2024-09-23 06:34:16 UTCRTC time: Mon 2024-09-23 06:34:16Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yesNTP service: activeRTC in local TZ: no//
[root@master ~]# vim /etc/hosts
[root@master ~]# scp /etc/hosts root@node1:/etc/hosts
The authenticity of host 'node1 (192.168.35.10)' can't be established.
ED25519 key fingerprint is SHA256:Dfp5NFaBDNajythr8/O8kI1H85ulzHbjA7dnXB4AHfg.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'node1' (ED25519) to the list of known hosts.
root@node1's password: 
hosts                                     100%  220   264.6KB/s   00:00    
[root@master ~]# scp /etc/hosts root@node2:/etc/hosts
The authenticity of host 'node2 (192.168.35.20)' can't be established.
ED25519 key fingerprint is SHA256:Dfp5NFaBDNajythr8/O8kI1H85ulzHbjA7dnXB4AHfg.
This host key is known by the following other names/addresses:~/.ssh/known_hosts:1: node1
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'node2' (ED25519) to the list of known hosts.
root@node2's password: 
hosts                                     100%  220   250.1KB/s   00:00//    
[root@master ~]# ssh-keygen //
[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1//
[root@master ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2//禁用swap分区(三个节点都做)
[root@master ~]# vim /etc/fstab 
[root@master ~]# swapoff -a
[root@master ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:            3883         542        3362           9         202        3341
Swap:              0           0           0//开启IP转发,和修改内核信息---三个节点都需要配置
[root@master ~]# vim /etc/sysctl.d/k8s.conf
[root@master ~]# modprobe   br_netfilter
[root@master ~]# lsmod | grep br_netfilter
br_netfilter           36864  0
bridge                409600  1 br_netfilter
[root@master ~]# sysctl -p  /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1//配置IPVS功能(三个节点都做)
[root@master ~]# vim /etc/modules-load.d/ipvs.modules
[root@master ~]# chmod +x /etc/modules-load.d/ipvs.modules
[root@master ~]# bash /etc/modules-load.d/ipvs.modules
[root@master ~]# lsmod | grep ip_vs
ip_vs_sh               16384  0
ip_vs_wrr              16384  0
ip_vs_rr               16384  0
ip_vs                 237568  6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack          217088  1 ip_vs
nf_defrag_ipv6         24576  2 nf_conntrack,ip_vs
libcrc32c              16384  3 nf_conntrack,xfs,ip_vs//安装docker
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2Last metadata //配置镜像加速器(三台都需要做)
[root@master ~]# vim /etc/docker/daemon.json
{"registry-mirrors": ["https://dockerpull.com","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.awsl9527.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
[root@master ~]# systemctl daemon-reload 
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker// 下载cri-docker
[root@master ~]# rz -E
rz waiting to receive.
[root@master ~]# ls
anaconda-ks.cfg  cri-dockerd-0.3.9.amd64.tgz
[root@master ~]# tar -zxvf cri-dockerd-0.3.9.amd64.tgz -C /usr/local/bin/
cri-dockerd/
cri-dockerd/cri-dockerd//下载cri-docker service文件
[root@master bin]# wget -O /etc/systemd/system/cri-docker.service
[root@master bin]# wget -O /etc/systemd/system/cri-docker.socket //编辑cri-docker.server
[root@master bin]# cd /etc/systemd/system/
[root@master system]# ll | grep cri-docker
-rw-r--r--  1 root root 1319 Sep 23 15:31 cri-docker.service
-rw-r--r--  1 root root  204 Sep 23 15:31 cri-docker.socket
[root@master system]# vim cri-docker.service
修改ExecStart行内容为ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --cri-dockerd-root-directory=/var/lib/docker//编辑cri-docker.socket
[root@master system]# vim cri-docker.socket
修改ListenStream行内容为
ListenStream=/var/run/cri-dockerd.sock//复制cri-dockerd到其他节点
[root@master system]# scp cri-docker.s* root@node1:/etc/systemd/system/
cri-docker.service                        100% 1524     2.0MB/s   00:00    
cri-docker.socket                         100%  210   413.1KB/s   00:00    
[root@master system]# scp cri-docker.s* root@node2:/etc/systemd/system/
cri-docker.service                        100% 1524     1.1MB/s   00:00    
cri-docker.socket                         100%  210   553.1KB/s   00:00//设置开机自启    
[root@master system]# systemctl daemon-reload 
[root@master system]# systemctl restart cri-docker
[root@master system]# systemctl enable cri-docker
Created symlink /etc/systemd/system/multi-user.target.wants/cri-docker.service → /etc/systemd/system/cri-docker.service.//部署k8s源(三台都需要做)
[root@master system]# vim /etc/yum.repos.d/k8s.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key//安装集群所需软件包kubelet kubeadm kubectl(全部节点)
[root@master system]# yum install -y kubelet kubeadm kubectl//配置k8s Cgoup控制组(全部节点)
[root@master ~]# vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd" 
[root@master ~]# systemctl restart kubelet.service 
[root@master ~]# systemctl enable kubelet.service//配置kubelet自启动(全部节点)
[root@master ~]# kubeadm config images list//打印集群初始化配置文件(master节点运行
[root@master ~]# kubeadm config print init-defaults > kubeadm-config.yaml//修改参数(master节点)
[root@master ~]# vim kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.100.10         #修改,集群初始化的主节点IP  bindPort: 6443
nodeRegistration:criSocket: unix:///var/run/cri-dockerd.sock          #修改使用dockeimagePullPolicy: IfNotPresentname: master                            #修改节点名称taints: null//使用配置文件初始化(master节点运行)
[root@master ~]# yum -y install socat
[root@master ~]# kubeadm init --config kubeadm-config.yaml --upload-certs//配置环境变量(master节点运行)
[root@master ~]# vim /etc/profile.d/k8s.sh
export KUBECONFIG=/etc/kubernetes/admin.conf
[root@master ~]# source /etc/profile.d/k8s.sh//传给另外两台主机 
[root@master ~]# scp /etc/profile.d/k8s.sh root@node1:/etc/profile.d/
k8s.sh                                    100%   45    39.2KB/s   00:00    
[root@master ~]# scp /etc/profile.d/k8s.sh root@node2:/etc/profile.d/
k8s.sh                                    100%   45    81.8KB/s   00:00    
[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES           AGE     VERSION
master   NotReady   control-plane   8m10s   v1.28.14
[root@master ~]# kubectl get nodes
NAME                STATUS     ROLES           AGE   VERSION
master              NotReady   control-plane   20m   v1.28.14
node1.example.com   NotReady   <none>          38s   v1.28.14
[root@master ~]# kubectl get nodes
NAME                STATUS     ROLES           AGE   VERSION
master              NotReady   control-plane   20m   v1.28.14
node1.example.com   NotReady   <none>          83s   v1.28.14
node2               NotReady   <none>          8s    v1.28.14
[root@master ~]# 
[root@master ~]# scp /etc/kubernetes/admin.conf root@node1:/etc/kubernetes/
admin.conf                                                                                                      100% 5646     3.6MB/s   00:00    
[root@master ~]# scp /etc/kubernetes/admin.conf root@node2:/etc/kubernetes/
admin.conf                                                                                                      100% 5646     3.6MB/s   00:00//下载calico文件(master节点运行)    
[root@master ~]# rz -E
rz waiting to receive.
[root@master ~]# ls
anaconda-ks.cfg  calico.yaml  cri-dockerd-0.3.9.amd64.tgz  kubeadm-config.yaml
[root@master ~]# vim calico.yaml //创建calico网络(master节点运行)
[root@master ~]# kubectl apply -f calico.yaml 
[root@master ~]# kubectl get pods -n kubeadm-system

[root@master ~]# kubectl create deployment nginx --image nginx
deployment.apps/nginx created
[root@master ~]# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   0/1     1            0           17s
[root@master ~]# kubectl expose deployment nginx --port 80 --type NodePort
service/nginx exposed
[root@master ~]# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           90s
[root@master ~]# kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7854ff8877-6hzd5   1/1     Running   0          106s
[root@master ~]# kubectl get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        77m
nginx        NodePort    10.100.174.174   <none>        80:30394/TCP   43s
[root@master ~]# 
[root@master ~]# kubectl get pods -o wide
NAME                     READY   STATUS    RESTARTS   AGE     IP             NODE    NOMINATED NODE   READINESS GATES
nginx-7854ff8877-6hzd5   1/1     Running   0          2m47s   172.16.104.2   node2   <none>           <none>
[root@master ~]# curl http://172.16.104.2
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
[root@master ~]# kubectl exec -it pod/nginx-7854ff8877-6hzd5 -- /bin/bash
root@nginx-7854ff8877-6hzd5:/# cd /usr/share/nginx/html/
root@nginx-7854ff8877-6hzd5:/usr/share/nginx/html# ls
50x.html  index.html
root@nginx-7854ff8877-6hzd5:/usr/share/nginx/html# echo lsy > index.html 
root@nginx-7854ff8877-6hzd5:/usr/share/nginx/html# exit
exit
[root@master ~]# curl http://172.16.104.2
lsy
[root@master ~]# 
shell 7 (Build 0164)
Copyright (c) 2020 NetSarang Computer, Inc. All rights reserved.Type `help' to learn how to use Xshell prompt.
[C:\~]$ Connecting to 192.168.35.10:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Sep 23 14:39:01 2024 from 192.168.35.100
[root@node1 ~]# bash /etc/modules-load.d/ipvs.modules
[root@node1 ~]# 
[root@node1 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Extra Packages for Enterprise Linux 9 - x86 8.9 kB/s |  10 kB     00:01    
Extra Packages for Enterprise Linux 9 - x86  13 MB/s |  23 MB     00:01    
Extra Packages for Enterprise Linux 9 openh 2.3 kB/s | 993  B     00:00    
Rocky Linux 9 - BaseOS                      3.9 kB/s | 4.1 kB     00:01    
Rocky Linux 9 - BaseOS                      1.6 MB/s | 2.3 MB     00:01    
Rocky Linux 9 - AppStream                   4.3 kB/s | 4.5 kB     00:01    
Rocky Linux 9 - AppStream                   5.1 MB/s | 8.0 MB     00:01    
Rocky Linux 9 - CRB                         2.2 kB/s | 4.5 kB     00:02    
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoRocky Linux 9 - CR     [   ===            ] ---  B/s |   0Rocky Linux 9 - CRB                         1.7 MB/s | 2.4 MB     00:01    
Rocky Linux 9 - Extras                      2.8 kB/s | 2.9 kB     00:01    
Rocky Linux 9 - Extras                       11 kB/s |  15 kB     00:01    
Dependencies resolved.
============================================================================Package                         Arch     Version            Repo      Size
============================================================================
Installing:device-mapper-persistent-data   x86_64   1.0.9-3.el9_4      baseos   1.0 Mlvm2                            x86_64   9:2.03.23-2.el9    baseos   1.5 Myum-utils                       noarch   4.3.0-13.el9       baseos    35 k
Installing dependencies:device-mapper-event             x86_64   9:1.02.197-2.el9   baseos    33 kdevice-mapper-event-libs        x86_64   9:1.02.197-2.el9   baseos    31 klibaio                          x86_64   0.3.111-13.el9     baseos    23 klvm2-libs                       x86_64   9:2.03.23-2.el9    baseos   1.0 MTransaction Summary
============================================================================
Install  7 PackagesTotal download size: 3.6 M
Installed size: 9.8 M
Downloading Packages:
(1/7): libaio-0.3.111-13.el9.x86_64.rpm     190 kB/s |  23 kB     00:00    
(2/7): yum-utils-4.3.0-13.el9.noarch.rpm    263 kB/s |  35 kB     00:00    
(3/7): lvm2-libs-2.03.23-2.el9.x86_64.rpm   4.1 MB/s | 1.0 MB     00:00    
(4/7): device-mapper-persistent-data-1.0.9- 2.6 MB/s | 1.0 MB     00:00    
(5/7): device-mapper-event-libs-1.02.197-2. 871 kB/s |  31 kB     00:00    
(6/7): lvm2-2.03.23-2.el9.x86_64.rpm        5.5 MB/s | 1.5 MB     00:00    
(7/7): device-mapper-event-1.02.197-2.el9.x 702 kB/s |  33 kB     00:00    
----------------------------------------------------------------------------
Total                                       2.6 MB/s | 3.6 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : device-mapper-event-libs-9:1.02.197-2.el9.x86_64   1/7 Installing       : libaio-0.3.111-13.el9.x86_64                       2/7 Installing       : device-mapper-event-9:1.02.197-2.el9.x86_64        3/7 Running scriptlet: device-mapper-event-9:1.02.197-2.el9.x86_64        3/7 
Created symlink /etc/systemd/system/sockets.target.wants/dm-event.socket → /usr/lib/systemd/system/dm-event.socket.Installing       : lvm2-libs-9:2.03.23-2.el9.x86_64                   4/7 Installing       : device-mapper-persistent-data-1.0.9-3.el9_4.x86_   5/7 Installing       : lvm2-9:2.03.23-2.el9.x86_64                        6/7 Running scriptlet: lvm2-9:2.03.23-2.el9.x86_64                        6/7 
Created symlink /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service → /usr/lib/systemd/system/lvm2-monitor.service.
Created symlink /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket → /usr/lib/systemd/system/lvm2-lvmpolld.socket.Installing       : yum-utils-4.3.0-13.el9.noarch                      7/7 Running scriptlet: yum-utils-4.3.0-13.el9.noarch                      7/7 Verifying        : libaio-0.3.111-13.el9.x86_64                       1/7 Verifying        : yum-utils-4.3.0-13.el9.noarch                      2/7 Verifying        : device-mapper-persistent-data-1.0.9-3.el9_4.x86_   3/7 Verifying        : lvm2-libs-9:2.03.23-2.el9.x86_64                   4/7 Verifying        : lvm2-9:2.03.23-2.el9.x86_64                        5/7 Verifying        : device-mapper-event-libs-9:1.02.197-2.el9.x86_64   6/7 Verifying        : device-mapper-event-9:1.02.197-2.el9.x86_64        7/7 Installed:device-mapper-event-9:1.02.197-2.el9.x86_64                               device-mapper-event-libs-9:1.02.197-2.el9.x86_64                          device-mapper-persistent-data-1.0.9-3.el9_4.x86_64                        libaio-0.3.111-13.el9.x86_64                                              lvm2-9:2.03.23-2.el9.x86_64                                               lvm2-libs-9:2.03.23-2.el9.x86_64                                          yum-utils-4.3.0-13.el9.noarch                                             Complete!
[root@node1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node1 ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@node1 ~]# yum -y install docker-ce-25.0.5-1.el9
Waiting for process with pid 10702 to finish.
Last metadata expiration check: 0:00:01 ago on Mon 23 Sep 2024 03:12:43 PM CST.
Dependencies resolved.
============================================================================Package                   Arch   Version            Repository        Size
============================================================================
Installing:docker-ce                 x86_64 3:25.0.5-1.el9     docker-ce-stable  26 M
Installing dependencies:container-selinux         noarch 3:2.229.0-1.el9    appstream         56 kcontainerd.io             x86_64 1.7.22-3.1.el9     docker-ce-stable  43 Mdocker-ce-cli             x86_64 1:27.3.1-1.el9     docker-ce-stable 8.0 Mfuse-common               x86_64 3.10.2-8.el9       baseos           7.3 kfuse-overlayfs            x86_64 1.13-1.el9         appstream         66 kfuse3                     x86_64 3.10.2-8.el9       appstream         53 kfuse3-libs                x86_64 3.10.2-8.el9       appstream         90 klibslirp                  x86_64 4.4.0-7.el9        appstream         68 kslirp4netns               x86_64 1.2.3-1.el9        appstream         46 ktar                       x86_64 2:1.34-6.el9_4.1   baseos           876 k
Installing weak dependencies:docker-buildx-plugin      x86_64 0.17.1-1.el9       docker-ce-stable  14 Mdocker-ce-rootless-extras x86_64 27.3.1-1.el9       docker-ce-stable 4.4 Mdocker-compose-plugin     x86_64 2.29.7-1.el9       docker-ce-stable  13 MTransaction Summary
============================================================================
Install  14 PackagesTotal download size: 109 M
Installed size: 424 M
Downloading Packages:
(1/14): docker-buildx-plugin-0.17.1-1.el9.x  11 MB/s |  14 MB     00:01    
(2/14): docker-ce-25.0.5-1.el9.x86_64.rpm    12 MB/s |  26 MB     00:02    
(3/14): docker-ce-cli-27.3.1-1.el9.x86_64.r 7.4 MB/s | 8.0 MB     00:01    
(4/14): docker-ce-rootless-extras-27.3.1-1. 6.4 MB/s | 4.4 MB     00:00    
(5/14): tar-1.34-6.el9_4.1.x86_64.rpm       2.1 MB/s | 876 kB     00:00    
(6/14): fuse-common-3.10.2-8.el9.x86_64.rpm 185 kB/s | 7.3 kB     00:00    
(7/14): container-selinux-2.229.0-1.el9.noa 1.3 MB/s |  56 kB     00:00    
(8/14): fuse-overlayfs-1.13-1.el9.x86_64.rp 1.3 MB/s |  66 kB     00:00    
(9/14): slirp4netns-1.2.3-1.el9.x86_64.rpm  851 kB/s |  46 kB     00:00    
(10/14): libslirp-4.4.0-7.el9.x86_64.rpm    1.5 MB/s |  68 kB     00:00    
(11/14): fuse3-libs-3.10.2-8.el9.x86_64.rpm 1.8 MB/s |  90 kB     00:00    
(12/14): fuse3-3.10.2-8.el9.x86_64.rpm      1.3 MB/s |  53 kB     00:00    
(13/14): docker-compose-plugin-2.29.7-1.el9 7.6 MB/s |  13 MB     00:01    
(14/14): containerd.io-1.7.22-3.1.el9.x86_6  10 MB/s |  43 MB     00:04    
----------------------------------------------------------------------------
Total                                        18 MB/s | 109 MB     00:06     
Docker CE Stable - x86_64                    13 kB/s | 1.6 kB     00:00    
Importing GPG key 0x621E9F35:Userid     : "Docker Release (CE rpm) <docker@docker.com>"Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35From       : https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : fuse3-libs-3.10.2-8.el9.x86_64                    1/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch          2/14 Installing       : container-selinux-3:2.229.0-1.el9.noarch          2/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch          2/14 Installing       : docker-compose-plugin-2.29.7-1.el9.x86_64         3/14 Running scriptlet: docker-compose-plugin-2.29.7-1.el9.x86_64         3/14 Installing       : containerd.io-1.7.22-3.1.el9.x86_64               4/14 Running scriptlet: containerd.io-1.7.22-3.1.el9.x86_64               4/14 Installing       : libslirp-4.4.0-7.el9.x86_64                       5/14 Installing       : slirp4netns-1.2.3-1.el9.x86_64                    6/14 Installing       : fuse-common-3.10.2-8.el9.x86_64                   7/14 Installing       : fuse3-3.10.2-8.el9.x86_64                         8/14 Installing       : fuse-overlayfs-1.13-1.el9.x86_64                  9/14 Running scriptlet: fuse-overlayfs-1.13-1.el9.x86_64                  9/14 Installing       : tar-2:1.34-6.el9_4.1.x86_64                      10/14 Installing       : docker-buildx-plugin-0.17.1-1.el9.x86_64         11/14 Running scriptlet: docker-buildx-plugin-0.17.1-1.el9.x86_64         11/14 Installing       : docker-ce-cli-1:27.3.1-1.el9.x86_64              12/14 Running scriptlet: docker-ce-cli-1:27.3.1-1.el9.x86_64              12/14 Installing       : docker-ce-rootless-extras-27.3.1-1.el9.x86_64    13/14 Running scriptlet: docker-ce-rootless-extras-27.3.1-1.el9.x86_64    13/14 Installing       : docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Running scriptlet: docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch         14/14 Running scriptlet: docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Verifying        : containerd.io-1.7.22-3.1.el9.x86_64               1/14 Verifying        : docker-buildx-plugin-0.17.1-1.el9.x86_64          2/14 Verifying        : docker-ce-3:25.0.5-1.el9.x86_64                   3/14 Verifying        : docker-ce-cli-1:27.3.1-1.el9.x86_64               4/14 Verifying        : docker-ce-rootless-extras-27.3.1-1.el9.x86_64     5/14 Verifying        : docker-compose-plugin-2.29.7-1.el9.x86_64         6/14 Verifying        : tar-2:1.34-6.el9_4.1.x86_64                       7/14 Verifying        : fuse-common-3.10.2-8.el9.x86_64                   8/14 Verifying        : container-selinux-3:2.229.0-1.el9.noarch          9/14 Verifying        : fuse-overlayfs-1.13-1.el9.x86_64                 10/14 Verifying        : slirp4netns-1.2.3-1.el9.x86_64                   11/14 Verifying        : libslirp-4.4.0-7.el9.x86_64                      12/14 Verifying        : fuse3-libs-3.10.2-8.el9.x86_64                   13/14 Verifying        : fuse3-3.10.2-8.el9.x86_64                        14/14 Installed:container-selinux-3:2.229.0-1.el9.noarch                                  containerd.io-1.7.22-3.1.el9.x86_64                                       docker-buildx-plugin-0.17.1-1.el9.x86_64                                  docker-ce-3:25.0.5-1.el9.x86_64                                           docker-ce-cli-1:27.3.1-1.el9.x86_64                                       docker-ce-rootless-extras-27.3.1-1.el9.x86_64                             docker-compose-plugin-2.29.7-1.el9.x86_64                                 fuse-common-3.10.2-8.el9.x86_64                                           fuse-overlayfs-1.13-1.el9.x86_64                                          fuse3-3.10.2-8.el9.x86_64                                                 fuse3-libs-3.10.2-8.el9.x86_64                                            libslirp-4.4.0-7.el9.x86_64                                               slirp4netns-1.2.3-1.el9.x86_64                                            tar-2:1.34-6.el9_4.1.x86_64                                               Complete!
[root@node1 ~]# vim /etc/docker/daemon.json
[root@node1 ~]# 
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
[root@node1 ~]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@node1 ~]# ls
anaconda-ks.cfg  cri-dockerd-0.3.9.amd64.tgz
[root@node1 ~]# tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/
cri-dockerd/cri-dockerd
[root@node1 ~]# ll /etc/systemd/system
total 16
drwxr-xr-x. 2 root root   31 Jul 11 09:53 basic.target.wants
-rw-r--r--  1 root root 1524 Sep 23 16:38 cri-docker.service
-rw-r--r--  1 root root  210 Sep 23 16:38 cri-docker.socket
lrwxrwxrwx. 1 root root   37 Jul 11 09:52 ctrl-alt-del.target -> /usr/lib/systemd/system/reboot.target
lrwxrwxrwx. 1 root root   57 Jul 11 09:52 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx. 1 root root   43 Jul 11 09:52 dbus.service -> /usr/lib/systemd/system/dbus-broker.service
lrwxrwxrwx. 1 root root   41 Jul 11 09:54 default.target -> /usr/lib/systemd/system/multi-user.target
drwxr-xr-x. 2 root root   32 Jul 11 09:52 getty.target.wants
drwxr-xr-x. 2 root root 4096 Sep 23 15:18 multi-user.target.wants
drwxr-xr-x. 2 root root   48 Jul 11 09:52 network-online.target.wants
drwxr-xr-x. 2 root root   71 Sep 23 15:10 sockets.target.wants
drwxr-xr-x. 2 root root 4096 Sep 23 15:10 sysinit.target.wants
drwxr-xr-x. 2 root root   56 Jul 11 09:53 timers.target.wants
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart cri-docker
[root@node1 ~]# systemctl enable cri-docker
Created symlink /etc/systemd/system/multi-user.target.wants/cri-docker.service → /etc/systemd/system/cri-docker.service.
[root@node1 ~]# vim /etc/yum.repos.d/k8s.repo
[root@node1 ~]# yum install -y kubelet kubeadm kubectl
Kubernetes                                  139 kB/s |  35 kB     00:00    
Dependencies resolved.
============================================================================Package                  Arch     Version               Repository    Size
============================================================================
Installing:kubeadm                  x86_64   1.28.14-150500.2.1    kubernetes   9.8 Mkubectl                  x86_64   1.28.14-150500.2.1    kubernetes    10 Mkubelet                  x86_64   1.28.14-150500.2.1    kubernetes    19 M
Installing dependencies:conntrack-tools          x86_64   1.4.7-2.el9           appstream    221 kcri-tools                x86_64   1.28.0-150500.1.1     kubernetes   8.1 Mkubernetes-cni           x86_64   1.2.0-150500.2.1      kubernetes   6.2 Mlibnetfilter_cthelper    x86_64   1.0.0-22.el9          appstream     23 klibnetfilter_cttimeout   x86_64   1.0.0-19.el9          appstream     23 klibnetfilter_queue       x86_64   1.0.5-1.el9           appstream     28 kTransaction Summary
============================================================================
Install  9 PackagesTotal download size: 53 M
Installed size: 290 M
Downloading Packages:
(1/9): kubeadm-1.28.14-150500.2.1.x86_64.rp 9.6 MB/s | 9.8 MB     00:01    
(2/9): cri-tools-1.28.0-150500.1.1.x86_64.r 7.8 MB/s | 8.1 MB     00:01    
(3/9): kubectl-1.28.14-150500.2.1.x86_64.rp 9.0 MB/s |  10 MB     00:01    
(4/9): conntrack-tools-1.4.7-2.el9.x86_64.r 793 kB/s | 221 kB     00:00    
(5/9): libnetfilter_cttimeout-1.0.0-19.el9. 434 kB/s |  23 kB     00:00    
(6/9): libnetfilter_cthelper-1.0.0-22.el9.x 279 kB/s |  23 kB     00:00    
(7/9): libnetfilter_queue-1.0.5-1.el9.x86_6 808 kB/s |  28 kB     00:00    
(8/9): kubernetes-cni-1.2.0-150500.2.1.x86_ 8.4 MB/s | 6.2 MB     00:00    
(9/9): kubelet-1.28.14-150500.2.1.x86_64.rp 9.9 MB/s |  19 MB     00:01    
----------------------------------------------------------------------------
Total                                        11 MB/s |  53 MB     00:04     
Kubernetes                                   11 kB/s | 1.7 kB     00:00    
Importing GPG key 0x9A296436:Userid     : "isv:kubernetes OBS Project <isv:kubernetes@build.opensuse.org>"Fingerprint: DE15 B144 86CD 377B 9E87 6E1A 2346 54DA 9A29 6436From       : https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : kubernetes-cni-1.2.0-150500.2.1.x86_64             1/9 Installing       : libnetfilter_queue-1.0.5-1.el9.x86_64              2/9 Installing       : libnetfilter_cthelper-1.0.0-22.el9.x86_64          3/9 Installing       : libnetfilter_cttimeout-1.0.0-19.el9.x86_64         4/9 Installing       : conntrack-tools-1.4.7-2.el9.x86_64                 5/9 Running scriptlet: conntrack-tools-1.4.7-2.el9.x86_64                 5/9 Installing       : kubelet-1.28.14-150500.2.1.x86_64                  6/9 Running scriptlet: kubelet-1.28.14-150500.2.1.x86_64                  6/9 Installing       : kubectl-1.28.14-150500.2.1.x86_64                  7/9 Installing       : cri-tools-1.28.0-150500.1.1.x86_64                 8/9 Installing       : kubeadm-1.28.14-150500.2.1.x86_64                  9/9 Running scriptlet: kubeadm-1.28.14-150500.2.1.x86_64                  9/9 Verifying        : cri-tools-1.28.0-150500.1.1.x86_64                 1/9 Verifying        : kubeadm-1.28.14-150500.2.1.x86_64                  2/9 Verifying        : kubectl-1.28.14-150500.2.1.x86_64                  3/9 Verifying        : kubelet-1.28.14-150500.2.1.x86_64                  4/9 Verifying        : kubernetes-cni-1.2.0-150500.2.1.x86_64             5/9 Verifying        : conntrack-tools-1.4.7-2.el9.x86_64                 6/9 Verifying        : libnetfilter_cttimeout-1.0.0-19.el9.x86_64         7/9 Verifying        : libnetfilter_cthelper-1.0.0-22.el9.x86_64          8/9 Verifying        : libnetfilter_queue-1.0.5-1.el9.x86_64              9/9 Installed:conntrack-tools-1.4.7-2.el9.x86_64                                        cri-tools-1.28.0-150500.1.1.x86_64                                        kubeadm-1.28.14-150500.2.1.x86_64                                         kubectl-1.28.14-150500.2.1.x86_64                                         kubelet-1.28.14-150500.2.1.x86_64                                         kubernetes-cni-1.2.0-150500.2.1.x86_64                                    libnetfilter_cthelper-1.0.0-22.el9.x86_64                                 libnetfilter_cttimeout-1.0.0-19.el9.x86_64                                libnetfilter_queue-1.0.5-1.el9.x86_64                                     Complete!
[root@node1 ~]# vim /etc/sysconfig/kubelet 
[root@node1 ~]# systemctl restart kubelet.service
[root@node1 ~]# systemctl enable kubelet.service
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.[root@node1 ~]# 
[root@node1 ~]# source /etc/profile.d/k8s.sh
[root@node1 ~]# kubeadm join 192.168.35.100:6443 --token abcdef.0123456789abcdef \
[root@node1 ~]# kubeadm join 192.168.35.100:6443 --token abcdef.0123456789abcdef \
> --discovery-token-ca-cert-hash sha256:c2323748d44cd1c6193fa6f9c15deb56566696fdc66f2bb2c25a52c4f968babb --cri-socket=unix:///var/run/cri-dockerd.sock
[preflight] Running pre-flight checks[WARNING FileExisting-socat]: socat not found in system path[WARNING Hostname]: hostname "node1.example.com" could not be reached[WARNING Hostname]: hostname "node1.example.com": lookup node1.example.com on 114.114.114.114:53: no such host
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.Run 'kubectl get nodes' on the control-plane to see this node join the cluster.[root@node1 ~]# kubectl get nodes
E0923 17:23:47.547511   14341 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0923 17:23:47.548048   14341 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0923 17:23:47.549911   14341 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0923 17:23:47.550538   14341 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0923 17:23:47.552162   14341 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@node1 ~]# kubeadm join 192.168.35.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:c2323748d44cd1c6193fa6f9c15deb56566696fdc66f2bb2c25a52c4f968babb --cri-socket=unix:///var/run/cri-dockerd.sock
[root@node1 ~]# cd /etc/kubernetes/
[root@node1 kubernetes]# ls
kubelet.conf  manifests  pki
[root@node1 kubernetes]# source /etc/profile.d/k8s.sh
[root@node1 kubernetes]# cd
[root@node1 ~]# kubectl get nodes
NAME                STATUS     ROLES           AGE     VERSION
master              NotReady   control-plane   25m     v1.28.14
node1.example.com   NotReady   <none>          6m17s   v1.28.14
node2               NotReady   <none>          5m2s    v1.28.14
[root@node1 ~]# 
Xshell 7 (Build 0164)
Copyright (c) 2020 NetSarang Computer, Inc. All rights reserved.Type `help' to learn how to use Xshell prompt.
[C:\~]$ Connecting to 192.168.35.20:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Sep 23 14:39:10 2024 from 192.168.35.100
[root@node2 ~]# bash /etc/modules-load.d/ipvs.modules
[root@node2 ~]# 
[root@node2 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
Last metadata expiration check: 0:20:55 ago on Mon 23 Sep 2024 02:48:45 PM CST.
Dependencies resolved.
============================================================================Package                         Arch     Version            Repo      Size
============================================================================
Installing:device-mapper-persistent-data   x86_64   1.0.9-3.el9_4      baseos   1.0 Mlvm2                            x86_64   9:2.03.23-2.el9    baseos   1.5 Myum-utils                       noarch   4.3.0-13.el9       baseos    35 k
Installing dependencies:device-mapper-event             x86_64   9:1.02.197-2.el9   baseos    33 kdevice-mapper-event-libs        x86_64   9:1.02.197-2.el9   baseos    31 klibaio                          x86_64   0.3.111-13.el9     baseos    23 klvm2-libs                       x86_64   9:2.03.23-2.el9    baseos   1.0 MTransaction Summary
============================================================================
Install  7 PackagesTotal download size: 3.6 M
Installed size: 9.8 M
Downloading Packages:
(1/7): yum-utils-4.3.0-13.el9.noarch.rpm    284 kB/s |  35 kB     00:00    
(2/7): libaio-0.3.111-13.el9.x86_64.rpm     171 kB/s |  23 kB     00:00    
(3/7): device-mapper-persistent-data-1.0.9- 2.6 MB/s | 1.0 MB     00:00    
(4/7): device-mapper-event-libs-1.02.197-2. 842 kB/s |  31 kB     00:00    
(5/7): lvm2-libs-2.03.23-2.el9.x86_64.rpm   3.4 MB/s | 1.0 MB     00:00    
(6/7): lvm2-2.03.23-2.el9.x86_64.rpm        5.1 MB/s | 1.5 MB     00:00    
(7/7): device-mapper-event-1.02.197-2.el9.x 1.0 MB/s |  33 kB     00:00    
----------------------------------------------------------------------------
Total                                       2.5 MB/s | 3.6 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : device-mapper-event-libs-9:1.02.197-2.el9.x86_64   1/7 Installing       : libaio-0.3.111-13.el9.x86_64                       2/7 Installing       : device-mapper-event-9:1.02.197-2.el9.x86_64        3/7 Running scriptlet: device-mapper-event-9:1.02.197-2.el9.x86_64        3/7 
Created symlink /etc/systemd/system/sockets.target.wants/dm-event.socket → /usr/lib/systemd/system/dm-event.socket.Installing       : lvm2-libs-9:2.03.23-2.el9.x86_64                   4/7 Installing       : device-mapper-persistent-data-1.0.9-3.el9_4.x86_   5/7 Installing       : lvm2-9:2.03.23-2.el9.x86_64                        6/7 Running scriptlet: lvm2-9:2.03.23-2.el9.x86_64                        6/7 
Created symlink /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service → /usr/lib/systemd/system/lvm2-monitor.service.
Created symlink /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket → /usr/lib/systemd/system/lvm2-lvmpolld.socket.Installing       : yum-utils-4.3.0-13.el9.noarch                      7/7 Running scriptlet: yum-utils-4.3.0-13.el9.noarch                      7/7 Verifying        : libaio-0.3.111-13.el9.x86_64                       1/7 Verifying        : yum-utils-4.3.0-13.el9.noarch                      2/7 Verifying        : device-mapper-persistent-data-1.0.9-3.el9_4.x86_   3/7 Verifying        : lvm2-libs-9:2.03.23-2.el9.x86_64                   4/7 Verifying        : lvm2-9:2.03.23-2.el9.x86_64                        5/7 Verifying        : device-mapper-event-libs-9:1.02.197-2.el9.x86_64   6/7 Verifying        : device-mapper-event-9:1.02.197-2.el9.x86_64        7/7 Installed:device-mapper-event-9:1.02.197-2.el9.x86_64                               device-mapper-event-libs-9:1.02.197-2.el9.x86_64                          device-mapper-persistent-data-1.0.9-3.el9_4.x86_64                        libaio-0.3.111-13.el9.x86_64                                              lvm2-9:2.03.23-2.el9.x86_64                                               lvm2-libs-9:2.03.23-2.el9.x86_64                                          yum-utils-4.3.0-13.el9.noarch                                             Complete!
[root@node2 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node2 ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@node2 ~]# yum -y install docker-ce-25.0.5-1.el9
Docker CE Stable - x86_64                   136 kB/s |  58 kB     00:00    
Dependencies resolved.
============================================================================Package                   Arch   Version            Repository        Size
============================================================================
Installing:docker-ce                 x86_64 3:25.0.5-1.el9     docker-ce-stable  26 M
Installing dependencies:container-selinux         noarch 3:2.229.0-1.el9    appstream         56 kcontainerd.io             x86_64 1.7.22-3.1.el9     docker-ce-stable  43 Mdocker-ce-cli             x86_64 1:27.3.1-1.el9     docker-ce-stable 8.0 Mfuse-common               x86_64 3.10.2-8.el9       baseos           7.3 kfuse-overlayfs            x86_64 1.13-1.el9         appstream         66 kfuse3                     x86_64 3.10.2-8.el9       appstream         53 kfuse3-libs                x86_64 3.10.2-8.el9       appstream         90 klibslirp                  x86_64 4.4.0-7.el9        appstream         68 kslirp4netns               x86_64 1.2.3-1.el9        appstream         46 ktar                       x86_64 2:1.34-6.el9_4.1   baseos           876 k
Installing weak dependencies:docker-buildx-plugin      x86_64 0.17.1-1.el9       docker-ce-stable  14 Mdocker-ce-rootless-extras x86_64 27.3.1-1.el9       docker-ce-stable 4.4 Mdocker-compose-plugin     x86_64 2.29.7-1.el9       docker-ce-stable  13 MTransaction Summary
============================================================================
Install  14 PackagesTotal download size: 109 M
Installed size: 424 M
Downloading Packages:
(1/14): docker-buildx-plugin-0.17.1-1.el9.x  10 MB/s |  14 MB     00:01    
(2/14): docker-ce-25.0.5-1.el9.x86_64.rpm    10 MB/s |  26 MB     00:02    
(3/14): docker-ce-cli-27.3.1-1.el9.x86_64.r 5.6 MB/s | 8.0 MB     00:01    
(4/14): docker-ce-rootless-extras-27.3.1-1. 5.8 MB/s | 4.4 MB     00:00    
(5/14): tar-1.34-6.el9_4.1.x86_64.rpm       2.1 MB/s | 876 kB     00:00    
(6/14): fuse-common-3.10.2-8.el9.x86_64.rpm 243 kB/s | 7.3 kB     00:00    
(7/14): container-selinux-2.229.0-1.el9.noa 2.0 MB/s |  56 kB     00:00    
(8/14): fuse-overlayfs-1.13-1.el9.x86_64.rp 1.2 MB/s |  66 kB     00:00    
(9/14): slirp4netns-1.2.3-1.el9.x86_64.rpm  1.0 MB/s |  46 kB     00:00    
(10/14): libslirp-4.4.0-7.el9.x86_64.rpm    1.8 MB/s |  68 kB     00:00    
(11/14): fuse3-libs-3.10.2-8.el9.x86_64.rpm 2.3 MB/s |  90 kB     00:00    
(12/14): fuse3-3.10.2-8.el9.x86_64.rpm      1.5 MB/s |  53 kB     00:00    
(13/14): docker-compose-plugin-2.29.7-1.el9 9.3 MB/s |  13 MB     00:01    
(14/14): containerd.io-1.7.22-3.1.el9.x86_6 9.3 MB/s |  43 MB     00:04    
----------------------------------------------------------------------------
Total                                        17 MB/s | 109 MB     00:06     
Docker CE Stable - x86_64                    12 kB/s | 1.6 kB     00:00    
Importing GPG key 0x621E9F35:Userid     : "Docker Release (CE rpm) <docker@docker.com>"Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35From       : https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : fuse3-libs-3.10.2-8.el9.x86_64                    1/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch          2/14 Installing       : container-selinux-3:2.229.0-1.el9.noarch          2/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch          2/14 Installing       : docker-compose-plugin-2.29.7-1.el9.x86_64         3/14 Running scriptlet: docker-compose-plugin-2.29.7-1.el9.x86_64         3/14 Installing       : containerd.io-1.7.22-3.1.el9.x86_64               4/14 Running scriptlet: containerd.io-1.7.22-3.1.el9.x86_64               4/14 Installing       : libslirp-4.4.0-7.el9.x86_64                       5/14 Installing       : slirp4netns-1.2.3-1.el9.x86_64                    6/14 Installing       : fuse-common-3.10.2-8.el9.x86_64                   7/14 Installing       : fuse3-3.10.2-8.el9.x86_64                         8/14 Installing       : fuse-overlayfs-1.13-1.el9.x86_64                  9/14 Running scriptlet: fuse-overlayfs-1.13-1.el9.x86_64                  9/14 Installing       : tar-2:1.34-6.el9_4.1.x86_64                      10/14 Installing       : docker-buildx-plugin-0.17.1-1.el9.x86_64         11/14 Running scriptlet: docker-buildx-plugin-0.17.1-1.el9.x86_64         11/14 Installing       : docker-ce-cli-1:27.3.1-1.el9.x86_64              12/14 Running scriptlet: docker-ce-cli-1:27.3.1-1.el9.x86_64              12/14 Installing       : docker-ce-rootless-extras-27.3.1-1.el9.x86_64    13/14 Running scriptlet: docker-ce-rootless-extras-27.3.1-1.el9.x86_64    13/14 Installing       : docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Running scriptlet: docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Running scriptlet: container-selinux-3:2.229.0-1.el9.noarch         14/14 Running scriptlet: docker-ce-3:25.0.5-1.el9.x86_64                  14/14 Verifying        : containerd.io-1.7.22-3.1.el9.x86_64               1/14 Verifying        : docker-buildx-plugin-0.17.1-1.el9.x86_64          2/14 Verifying        : docker-ce-3:25.0.5-1.el9.x86_64                   3/14 Verifying        : docker-ce-cli-1:27.3.1-1.el9.x86_64               4/14 Verifying        : docker-ce-rootless-extras-27.3.1-1.el9.x86_64     5/14 Verifying        : docker-compose-plugin-2.29.7-1.el9.x86_64         6/14 Verifying        : tar-2:1.34-6.el9_4.1.x86_64                       7/14 Verifying        : fuse-common-3.10.2-8.el9.x86_64                   8/14 Verifying        : container-selinux-3:2.229.0-1.el9.noarch          9/14 Verifying        : fuse-overlayfs-1.13-1.el9.x86_64                 10/14 Verifying        : slirp4netns-1.2.3-1.el9.x86_64                   11/14 Verifying        : libslirp-4.4.0-7.el9.x86_64                      12/14 Verifying        : fuse3-libs-3.10.2-8.el9.x86_64                   13/14 Verifying        : fuse3-3.10.2-8.el9.x86_64                        14/14 Installed:container-selinux-3:2.229.0-1.el9.noarch                                  containerd.io-1.7.22-3.1.el9.x86_64                                       docker-buildx-plugin-0.17.1-1.el9.x86_64                                  docker-ce-3:25.0.5-1.el9.x86_64                                           docker-ce-cli-1:27.3.1-1.el9.x86_64                                       docker-ce-rootless-extras-27.3.1-1.el9.x86_64                             docker-compose-plugin-2.29.7-1.el9.x86_64                                 fuse-common-3.10.2-8.el9.x86_64                                           fuse-overlayfs-1.13-1.el9.x86_64                                          fuse3-3.10.2-8.el9.x86_64                                                 fuse3-libs-3.10.2-8.el9.x86_64                                            libslirp-4.4.0-7.el9.x86_64                                               slirp4netns-1.2.3-1.el9.x86_64                                            tar-2:1.34-6.el9_4.1.x86_64                                               Complete!
[root@node2 ~]# vim /etc/docker/daemon.json
[root@node2 ~]# 
[root@node2 ~]# systemctl daemon-reload
[root@node2 ~]# systemctl restart docker
[root@node2 ~]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@node2 ~]# ls
anaconda-ks.cfg  cri-dockerd-0.3.9.amd64.tgz
[root@node2 ~]# cd /usr/local/bin/
[root@node2 bin]# ls
[root@node2 bin]# tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/
tar: cri-dockerd-0.3.9.amd64.tgz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
[root@node2 bin]# systemctl daemon-reload
[root@node2 bin]# systemctl restart cri-docker
Job for cri-docker.service failed because the control process exited with error code.
See "systemctl status cri-docker.service" and "journalctl -xeu cri-docker.service" for details.
[root@node2 bin]# ll /etc/systemd/system
total 16
drwxr-xr-x. 2 root root   31 Jul 11 09:53 basic.target.wants
-rw-r--r--  1 root root 1524 Sep 23 16:38 cri-docker.service
-rw-r--r--  1 root root  210 Sep 23 16:38 cri-docker.socket
lrwxrwxrwx. 1 root root   37 Jul 11 09:52 ctrl-alt-del.target -> /usr/lib/systemd/system/reboot.target
lrwxrwxrwx. 1 root root   57 Jul 11 09:52 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx. 1 root root   43 Jul 11 09:52 dbus.service -> /usr/lib/systemd/system/dbus-broker.service
lrwxrwxrwx. 1 root root   41 Jul 11 09:54 default.target -> /usr/lib/systemd/system/multi-user.target
drwxr-xr-x. 2 root root   32 Jul 11 09:52 getty.target.wants
drwxr-xr-x. 2 root root 4096 Sep 23 15:18 multi-user.target.wants
drwxr-xr-x. 2 root root   48 Jul 11 09:52 network-online.target.wants
drwxr-xr-x. 2 root root   71 Sep 23 15:09 sockets.target.wants
drwxr-xr-x. 2 root root 4096 Sep 23 15:09 sysinit.target.wants
drwxr-xr-x. 2 root root   56 Jul 11 09:53 timers.target.wants
[root@node2 bin]# cd
[root@node2 ~]#  tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/
cri-dockerd/cri-dockerd
[root@node2 ~]# systemctl daemon-reload
[root@node2 ~]# systemctl restart cri-docker
[root@node2 ~]# systemctl enable cri-docker
Created symlink /etc/systemd/system/multi-user.target.wants/cri-docker.service → /etc/systemd/system/cri-docker.service.
[root@node2 ~]# vim /etc/yum.repos.d/k8s.repo
[root@node2 ~]# yum install -y kubelet kubeadm kubectl
Kubernetes                                  118 kB/s |  35 kB     00:00    
Last metadata expiration check: 0:00:01 ago on Mon 23 Sep 2024 04:46:04 PM CST.
Dependencies resolved.
============================================================================Package                  Arch     Version               Repository    Size
============================================================================
Installing:kubeadm                  x86_64   1.28.14-150500.2.1    kubernetes   9.8 Mkubectl                  x86_64   1.28.14-150500.2.1    kubernetes    10 Mkubelet                  x86_64   1.28.14-150500.2.1    kubernetes    19 M
Installing dependencies:conntrack-tools          x86_64   1.4.7-2.el9           appstream    221 kcri-tools                x86_64   1.28.0-150500.1.1     kubernetes   8.1 Mkubernetes-cni           x86_64   1.2.0-150500.2.1      kubernetes   6.2 Mlibnetfilter_cthelper    x86_64   1.0.0-22.el9          appstream     23 klibnetfilter_cttimeout   x86_64   1.0.0-19.el9          appstream     23 klibnetfilter_queue       x86_64   1.0.5-1.el9           appstream     28 kTransaction Summary
============================================================================
Install  9 PackagesTotal download size: 53 M
Installed size: 290 M
Downloading Packages:
(1/9): kubeadm-1.28.14-150500.2.1.x86_64.rp 6.6 MB/s | 9.8 MB     00:01    
(2/9): cri-tools-1.28.0-150500.1.1.x86_64.r 5.1 MB/s | 8.1 MB     00:01    
(3/9): kubectl-1.28.14-150500.2.1.x86_64.rp 6.0 MB/s |  10 MB     00:01    
(4/9): conntrack-tools-1.4.7-2.el9.x86_64.r 255 kB/s | 221 kB     00:00    
(5/9): libnetfilter_cttimeout-1.0.0-19.el9. 1.1 MB/s |  23 kB     00:00    
(6/9): libnetfilter_cthelper-1.0.0-22.el9.x 890 kB/s |  23 kB     00:00    
(7/9): kubernetes-cni-1.2.0-150500.2.1.x86_ 6.0 MB/s | 6.2 MB     00:01    
(8/9): libnetfilter_queue-1.0.5-1.el9.x86_6 1.2 MB/s |  28 kB     00:00    
(9/9): kubelet-1.28.14-150500.2.1.x86_64.rp  11 MB/s |  19 MB     00:01    
----------------------------------------------------------------------------
Total                                        12 MB/s |  53 MB     00:04     
Kubernetes                                   13 kB/s | 1.7 kB     00:00    
Importing GPG key 0x9A296436:Userid     : "isv:kubernetes OBS Project <isv:kubernetes@build.opensuse.org>"Fingerprint: DE15 B144 86CD 377B 9E87 6E1A 2346 54DA 9A29 6436From       : https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                    1/1 Installing       : kubernetes-cni-1.2.0-150500.2.1.x86_64             1/9 Installing       : libnetfilter_queue-1.0.5-1.el9.x86_64              2/9 Installing       : libnetfilter_cthelper-1.0.0-22.el9.x86_64          3/9 Installing       : libnetfilter_cttimeout-1.0.0-19.el9.x86_64         4/9 Installing       : conntrack-tools-1.4.7-2.el9.x86_64                 5/9 Running scriptlet: conntrack-tools-1.4.7-2.el9.x86_64                 5/9 Installing       : kubelet-1.28.14-150500.2.1.x86_64                  6/9 Running scriptlet: kubelet-1.28.14-150500.2.1.x86_64                  6/9 Installing       : kubectl-1.28.14-150500.2.1.x86_64                  7/9 Installing       : cri-tools-1.28.0-150500.1.1.x86_64                 8/9 Installing       : kubeadm-1.28.14-150500.2.1.x86_64                  9/9 Running scriptlet: kubeadm-1.28.14-150500.2.1.x86_64                  9/9 Verifying        : cri-tools-1.28.0-150500.1.1.x86_64                 1/9 Verifying        : kubeadm-1.28.14-150500.2.1.x86_64                  2/9 Verifying        : kubectl-1.28.14-150500.2.1.x86_64                  3/9 Verifying        : kubelet-1.28.14-150500.2.1.x86_64                  4/9 Verifying        : kubernetes-cni-1.2.0-150500.2.1.x86_64             5/9 Verifying        : conntrack-tools-1.4.7-2.el9.x86_64                 6/9 Verifying        : libnetfilter_cttimeout-1.0.0-19.el9.x86_64         7/9 Verifying        : libnetfilter_cthelper-1.0.0-22.el9.x86_64          8/9 Verifying        : libnetfilter_queue-1.0.5-1.el9.x86_64              9/9 Installed:conntrack-tools-1.4.7-2.el9.x86_64                                        cri-tools-1.28.0-150500.1.1.x86_64                                        kubeadm-1.28.14-150500.2.1.x86_64                                         kubectl-1.28.14-150500.2.1.x86_64                                         kubelet-1.28.14-150500.2.1.x86_64                                         kubernetes-cni-1.2.0-150500.2.1.x86_64                                    libnetfilter_cthelper-1.0.0-22.el9.x86_64                                 libnetfilter_cttimeout-1.0.0-19.el9.x86_64                                libnetfilter_queue-1.0.5-1.el9.x86_64                                     Complete!
[root@node2 ~]# vim /etc/sysconfig/kubelet 
[root@node2 ~]# systemctl restart kubelet.service
[root@node2 ~]# systemctl enable kubelet.service
Created symlink /etc/systemd/system/multi-user.target.wants/kubelet.service → /usr/lib/systemd/system/kubelet.service.
[root@node2 ~]# 
[root@node2 ~]# source /etc/profile.d/k8s.sh
[root@node2 ~]# kubeadm join 192.168.35.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:c2323748d44cd1c6193fa6f9c15deb56566696fdc66f2bb2c25a52c4f968babb --cri-socket=unix:///var/run/cri-dockerd.sock
[preflight] Running pre-flight checks[WARNING FileExisting-socat]: socat not found in system path
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.Run 'kubectl get nodes' on the control-plane to see this node join the cluster.[root@node2 ~]# source /etc/profile.d/k8s.sh
[root@node2 ~]# 
[root@node2 ~]# kubectl get nodes
NAME                STATUS     ROLES           AGE     VERSION
master              NotReady   control-plane   25m     v1.28.14
node1.example.com   NotReady   <none>          6m28s   v1.28.14
node2               NotReady   <none>          5m13s   v1.28.14
[root@master ~]# kubectl get pods -n kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
calico-kube-controllers-9d57d8f49-kgvqp   1/1     Running   0          2m33s
calico-node-8blj7                         1/1     Running   0          2m33s
calico-node-n4rsr                         1/1     Running   0          2m33s
calico-node-qzzhp                         1/1     Running   0          2m33s
coredns-6554b8b87f-knzmb                  1/1     Running   0          72m
coredns-6554b8b87f-qzzf5                  1/1     Running   0          72m
etcd-master                               1/1     Running   0          72m
kube-apiserver-master                     1/1     Running   0          72m
kube-controller-manager-master            1/1     Running   0          72m
kube-proxy-2sg4f                          1/1     Running   0          72m
kube-proxy-94rfz                          1/1     Running   0          51m
kube-proxy-p42cj                          1/1     Running   0          53m
kube-scheduler-master                     1/1     Running   0          72m

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

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

相关文章

【C++网络编程】(一)Linux平台下TCP客户/服务端程序

文章目录 Linux平台下TCP客户/服务端程序服务端客户端相关头文件介绍 Linux平台下TCP客户/服务端程序 图片来源&#xff1a;https://subingwen.cn/linux/socket/ 下面实现一个Linux平台下TCP客户/服务端程序&#xff1a;客户端向服务器发送&#xff1a;“你好&#xff0c;服务…

从零创建苹果App应用,不知道怎么申请证书的可以先去看我的上一篇文章

用大家自己的开发者账户&#xff0c;登录进入App Store Connect ,注册自己的应用 进入之后&#xff0c;点击增加 填写相关的信息 一切顺利的话&#xff0c;就可以来到这个页面

element plus的el-select分页

摘要&#xff1a; el-select的数据比较多的时候&#xff0c;必须要分页&#xff0c;处理方案有全部数据回来&#xff0c;或者添加搜索功能&#xff0c;但是就有个问题就是编辑的时候回显问题&#xff0c;必须要保证select的数据有对应的id与name匹配回显&#xff01; <el-fo…

计算机网络-VRRP实验配置

前面我们大致学习了VRRP的概念和基本原理&#xff0c;但是网络这块就是要多敲命令多用才能印象深刻&#xff0c;今天开始进行一些实验配置&#xff0c;结合日常工作的场景分析VRRP在实际工作中的应用。 一、典型VRRP虚拟网关拓扑 相比于传统单网关&#xff0c;采用VRRP虚拟网关…

Qt/C++编写的mqtt调试助手使用说明

一、使用说明 第一步&#xff0c;选择协议前缀&#xff0c;可选mqtt://、mqtts://、ws://、wss://四种&#xff0c;带s结尾的是走ssl通信&#xff0c;ws表示走websocket通信。一般选默认的mqtt://就好。第二步&#xff0c;填写服务所在主机地址&#xff0c;可以是IP地址也可以…

2024.10月11日--- SpringMVC拦截器

拦截器 1 回顾过滤器&#xff1a; Servlet规范中的三大接口&#xff1a;Servlet接口&#xff0c;Filter接口、Listener接口。 过滤器接口&#xff0c;是Servlet2.3版本以来&#xff0c;定义的一种小型的&#xff0c;可插拔的Web组件&#xff0c;可以用来拦截和处理Servlet容…

Python 自动排班表格(代码分享)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

CentOS安装NVIDIA驱动、CUDA以及nvidia-container-toolkit

0.提前准备 0.1.更新yum源&#xff08;以阿里为例&#xff09; 0.1.1 备份当前的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 0.1.2 下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base…

ORM框架简介

什么是ORM&#xff1f; ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;是一种编程技术&#xff0c;用于在关系数据库和对象程序语言之间转换数据。ORM框架允许开发者以面向对象的方式来操作数据库&#xff0c;而不需要编写复杂的SQL语句。简单…

【Linux】命令行下的增删查改之“查看”

致谢:Linux常用命令大全(手册) – 真正好用的Linux命令在线查询网站 提供的命令查询 头部内容获取(head) head命令的功能是显示文件开头的内容&#xff0c;默认值为前10行。 指令参数&#xff1a; -n 定义显示行数 -c 指定显示头部内容的字符数 -v 总是显示文件名的头信…

告别手动计数:智能统计模型用量,释放设计潜力

添加HanTop-MKT&#xff0c;免费获取统计零件数量模型 非标设备行业的设计BOM因为涉及物料采购与装配数量要求&#xff0c;往往面临着需要数据准确性的严格要求&#xff0c;在缺乏自动化工具情况下&#xff0c;手动统计零件用量变得更加困难&#xff0c;且数据准确性得不到保障…

【uniapp】设置公共样式,实现公共背景等

目录 1、 全局渐变背景色 2.1 创建common目录 2.2 在common下新建style和images等目录 2.3 在style下新建common-style.scss 2.4 common-style输入全局渐变颜色 2.5 引入样式 2.6 业务页面引入 2.7 展示 2、全局字体颜色 2.1 新建base-style.scss文件 2.2 设置base-…

07 django管理系统 - 部门管理 - 搜索部门

在dept_list.html中&#xff0c;添加搜索框 <div class"container-fluid"><div style"margin-bottom: 10px" class"clearfix"><div class"panel panel-default"><!-- Default panel contents --><div clas…

Redis 其他类型 渐进式遍历

我们之前已经学过了Redis最常用的五个类型了&#xff0c;然而Redis还有一些在特定场景下比较好用的类型 Redis最关键的五个数据类型&#xff1a; 上面的类型是非常常用&#xff0c;很重要的类型。 除此之外的其他类型不常用&#xff0c;只是在特定的场景能够发挥用处&#…

无极低码课程【java(jdk)windows下安装及环境变量配置】

在Windows环境中安装JDK 7教程 Java Development Kit (JDK) 是开发Java应用程序所必需的工具包。本教程将指导您在Windows操作系统上安装JDK 7。 准备工作 下载JDK 7安装包 访问 Oracle官方网站 下载JDK 8的安装包。选择适合您操作系统的安装包(例如 jdk-7u80-windows-x64.ex…

vmware虚拟机 报错:客户机操作系统已禁用 CPU,请关闭或重置虚拟机 的解决方法

打开cpu虚拟化全部进行勾选 ctrl e 进行关机 勾选上打开就好了 如果没有那个选项 关机>打开虚拟机>管理>更改硬件兼容性> 往小处改改> >更改此虚拟机

[LeetCode] 515. 在每个树行中找最大值

题目描述&#xff1a; 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2&#xff1a; 输入: root [1,2,3] 输出: [1,3]提示&#xff1a; 二叉树的节点个数的范围是 [0,10…

基于SpringBoot的个性化健康建议平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于智能推荐的卫生健康系统的相关信息成为…

OpenTrans

比较的方法Cat-Seg不好复现

Spring 实现 3 种异步流式接口,干掉接口超时烦恼

大家好&#xff0c;我是小富&#xff5e; 如何处理比较耗时的接口&#xff1f; 这题我熟&#xff0c;直接上异步接口&#xff0c;使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性&#xff0c;处理结果仅返回单个值。在某…