kubernetes docker版本安装测试
文章目录
- 测试环境
- kubernetes安装
- 环境配置
- 安装程序
- 下载镜像
- 初始化
- reset环境
- init构建kubernetes
- 配置授权信息
- 配置网络插件
- 查看状态
- 简单实例测试
测试环境
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
kubernetes安装
参考kuberneter文档
加入节点到当前kubernetes集群可根据上述文档加入
环境配置
swapoff -a
setenforce 0
rm -rf $HOME/.kube #已安装过
安装程序
#安装docker
yum install docker -y#安装kubeadm、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# 安装指定版本的kubeadm kubectl kubelet
# 查询所有版本:yum list available kubeadm --showduplicates
# 比如此处安装1.23.0的kubernetes, 需要安装对应的版本
# 否则会报错, 如:
# this version of kubeadm only supports deploying clusters with the control plane version >= 1.27.0. Current version: v1.23.0
yum install kubeadm-1.23.0-0 kubectl-1.23.0-0 kubelet-1.23.0-0 -y
下载镜像
#使用kubeadm初始化Master节点
#执行命令下列命令查看需要下载的docker镜像及相应版本,这里的名字必须与后面的docker images中显示的名字一样,否则初始化时会失败:
kubeadm config images list#生成脚本,并将其中的版本信息填入到下列脚本:
cat << EOF >download.sh
#!/bin/bash
set -eKUBE_VERSION=v1.23.0
KUBE_PAUSE_VERSION=3.6
ETCD_VERSION=3.5.1-0
CORE_DNS_VERSION=v1.8.6GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containersimages=(kube-proxy:${KUBE_VERSION}kube-scheduler:${KUBE_VERSION}kube-controller-manager:${KUBE_VERSION}kube-apiserver:${KUBE_VERSION}pause:${KUBE_PAUSE_VERSION}etcd:${ETCD_VERSION}coredns:${CORE_DNS_VERSION}
)for imageName in ${images[@]} ; dodocker pull ${ALIYUN_URL}/$imageNamedocker tag ${ALIYUN_URL}/$imageName ${GCR_URL}/$imageNamedocker rmi ${ALIYUN_URL}/$imageName
done
# 额外tag一下
docker tag ${GCR_URL}/coredns:v1.8.6 ${GCR_URL}/coredns/coredns:v1.8.6
EOF
初始化
reset环境
# 如果安装过则进行reset
kubeadm reset
init构建kubernetes
#使用如下命令查看初始化时的默认配置:
kubeadm config print init-defaults >init.yaml
#初始化,#可根据需要修改上一步获取到的配置,如修改kubernetes版本,以及其它ip等配置
kubeadm init --config=init.yaml# 建议直接使用此命令
kubeadm init --kubernetes-version=1.23.0 --node-name=master
异常分析:
这一步骤容易出现错误,可以根据提示进行分析,kubeadm init增加参数–v=5可以查看详细信息,如果这里还没有找到问题原因,则通过journalctl -xeu kubelet查找问题
cgroup driver报错:
# error: Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\""# 创建配置文件 kubeadm-config.yaml, 并配置version和cgroupDriver
kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta3
kubernetesVersion: v1.23.0
---
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: cgroupfs# kubeadm reset后重新kubeadm init
kubeadm init --config=kubeadm-config.yaml
配置授权信息
上一步完成后,会有提示,可根据提示配置授权信息
也可加入worker节点到集群
提示信息:
Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 172.20.20.114:6443 --token s8qj24.jken8zoqh8hqhneq \--discovery-token-ca-cert-hash sha256:dd5f58c9ad1113daf894c79a61cadd67ded2c89ee99611ebd4f7e50dc3d89658
如果忘记token和sha256可通过命令查询
# 查询token
kubeadm token list
# sha256
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
配置网络插件
参考kuberneter文档
# 下载,也可以用wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/calico.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/calico.yaml -O
# apply
kubectl apply -f calico.yaml
查看状态
上一步会去拉镜像等操作,可能需要一些时间
#查看是否安装成功,默认生成namespace kube-system
[root@localhost kubernetes]# kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-5bd579bf9c-9j8nx 1/1 Running 0 3m3s
kube-system calico-node-7b2cv 1/1 Running 0 3m3s
kube-system coredns-64897985d-lrsg4 1/1 Running 0 15m
kube-system coredns-64897985d-qkjdz 1/1 Running 0 15m
kube-system etcd-master 1/1 Running 0 15m
kube-system kube-apiserver-master 1/1 Running 0 15m
kube-system kube-controller-manager-master 1/1 Running 0 15m
kube-system kube-proxy-hgktb 1/1 Running 0 15m
kube-system kube-scheduler-master 1/1 Running 0 15m
# node ready
[root@localhost kubernetes]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 26m v1.23.0
简单实例测试
由于上一步只是创建了一个节点,即只有一个主节点,kubernetes默认时不再master上运行pod的,所以需要先配置一下,允许在master上运行pod
#单节点,设置master节点也可以运行Pod,kubernetes官方默认策略是worker节点运行Pod,master节点不运行Pod。如果只是为了开发或者其他目的而需要部署单节点集群,可以通过以下的命令设置:
kubectl taint nodes --all node-role.kubernetes.io/master-
#kubectl taint node master node-role.kubernetes.io/master="":NoSchedule #将 Master 恢复成 Master Only 状态
创建nginx-deployment控制器yaml文件
cat << EOF >nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.15.4ports:- containerPort: 80
EOF
创建nginx-service服务yaml文件
cat << EOF >nginx-service.yaml
apiVersion: v1
kind: Service
metadata:name: nginx-servicelabels:app: nginx
spec:type: NodePortports:- port: 80targetPort: 80nodePort: 30949selector:app: nginx
EOF
根据已创建的yaml文件生成deployment、service,这里由于未指定命名空间,所有都在default命名空间创建,若在其他空间创建的,可以增加参数-n
kubectl apply -f nginx-deployment.yaml
kubectl apply -f nginx-service.yaml
查看是否成功
kubectl get svc -n default
kubectl get deploy
kubectl get pod
结果示例
[root@localhost ~]# kubectl get svc -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d3h
nginx-service NodePort 10.97.200.51 <none> 80:30949/TCP 101s
[root@localhost ~]# kubectl get deploy -n default
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/1 1 1 2m11s
[root@localhost ~]# kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
nginx-deployment-746ccc65d8-pwcqb 1/1 Running 0 2m13s
可根据上述生成的nginx-service.yaml中的nodePort得到服务开放端口30949,然后通过如下命令访问:
[root@localhost ~]# curl localhost:30949
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>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>
查看pod日志,根据命令kubectl get pod -n default查看pod名字,然后使用 kubectl -n default logs -f 查看日志
[root@localhost ~]# kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
nginx-deployment-746ccc65d8-pwcqb 1/1 Running 0 8m12s
[root@localhost ~]# kubectl -n default logs -f nginx-deployment-746ccc65d8-pwcqb
相关文章:
kubernetes docker版本安装测试
文章目录 测试环境kubernetes安装环境配置安装程序下载镜像初始化reset环境init构建kubernetes配置授权信息配置网络插件查看状态 简单实例测试 测试环境 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)kubernetes安装 参考kuberneter文档…...

策略模式:灵活调整算法的设计精髓
在软件开发中,策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。通过定义一系列算法,并将每个算法封装起来,策略模式使得算法可以互换使用,这使得算法可以独立于使用它们的客户。本文将详细介绍策略模式的…...

[INS-30014]无法检查指定的位置是否位于 CFS 上
文章目录 一、具体错误二、通用解决方案1、可能的问题原因2、解决方案3、常见原因之hosts文件配置问题hosts配置方法hosts文件不可编辑解决办法 一、具体错误 在安装ORACLE19c的时候,出现无法检查指定的位置是否位于CFS上 二、通用解决方案 1、可能的问题原因 遇…...

机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day 13
Day13 Error surface is rugged…… Tips for training :Adaptive Learning Rate critical point is not the difficult Root mean Square --used in Adagrad 这里为啥是前面的g的和而不是直接只除以当前呢? 这种方法的目的是防止学习率在训练过程中快速衰减。如果只用当前的…...

[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。目前我进入第二阶段Python图像识别,该部分主要以目标检测、图像…...

Jmeter针对多种响应断言的判断
有时候response返回的结果并非一种,有多种,需要对这几种进行判断的时候需要使用Bean Shell。 (1)首先获取响应数据 String response prev.getResponseDataAsString(); ResponseCode 响应状态码 responseHeaders 响应头信息 res…...

Harmony鸿蒙南向驱动开发-Regulator接口使用
功能简介 Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统(尤其是手机)中,控制耗电量很重要,直接影响到电池的续航时间。所以,如果系统中某一个模块暂时不需要使用,就可以通过Regulato…...

【opencv】示例-grabcut.cpp 使用OpenCV库的GrabCut算法进行图像分割
left mouse button - set rectangle SHIFTleft mouse button - set GC_FGD pixels CTRLleft mouse button - set GC_BGD pixels 这段代码是一个使用OpenCV库的GrabCut算法进行图像分割的C程序。它允许用户通过交互式方式选择图像中的一个区域,并利用GrabCut算法尝试…...

GEE数据集——巴基斯坦国家级土壤侵蚀数据集(2005 年和 2015 年)
简介 巴基斯坦国家级土壤侵蚀数据集(2005 年和 2015 年) 该数据集采用修订的通用土壤流失方程 (RUSLE),并考虑了六个关键影响因素:降雨侵蚀率 (R)、土壤可侵蚀性 (K)、坡长 (L)、坡陡 (S)、覆盖管理 (C) 和保护措施 (P)ÿ…...

服务器代理
服务器代理 配置:64G内存1 3090(24g)1P4000(8g) SSH连接 工作路径:/home/ubuntu/workspace/python Anaconda路径:/home/Ubuntu 1.在工作路径下创建自己的文件夹作为workspace 2.以用户ubunbtu登…...

【SGDR】《SGDR:Stochastic Gradient Descent with Warm Restarts》
arXiv-2016 code: https://github.com/loshchil/SGDR/blob/master/SGDR_WRNs.py 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metric5.2 Single-Model Results5.3 Ensemble Results5.4 Experiment…...
如何将arping以及所有依赖打包安装到另外一台离线ubuntu机器
ubuntu系统下可以使用arping命令检测局域网内一些ip是否冲突,使用方式为: arping xx.xx.xx.xx 在线情况下,可以使用下面命令下载arping,然后使用即可 apt install arping 但是有些情况下机器可能不能上网,这时就需要将…...

mac上如何安装python3
mac上如何安装python3? 安装homebrew 在终端执行命令 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 执行完成后,homebrew和pip等工具就自动安装好了。 接下来安装python3.在终端…...

Java 那些诗一般的 数据类型 (下篇)
本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…...

WEB3.0:互联网的下一阶段
随着互联网的发展,WEB3.0时代正在逐步到来。本文将深入探讨WEB3.0的定义、特点、技术应用以及未来展望,为读者带来全新的思考。 一、什么是WEB3.0? WEB3.0可以被理解为互联网发展的下一阶段,是当前WEB2.0的升级版。相较于2.0时代…...

Fastgpt配合chatglm+m3e或ollama+m3e搭建个人知识库
概述: 人工智能大语言模型是近年来人工智能领域的一项重要技术,它的出现标志着自然语言处理领域的重大突破。这些模型利用深度学习和大规模数据训练,能够理解和生成人类语言,为各种应用场景提供了强大的文本处理能力。AI大语言模…...
如何使用选择器精确地控制网页中每一个元素的样式?
1. 基础知识 什么是 CSS 元素选择器 CSS 元素选择器是一种在网页中通过元素类型来应用样式的方法。 简单来说,它就像是一个指挥棒,告诉浏览器哪些 HTML 元素需要应用我们定义的 CSS 样式规则。 为何要使用 CSS 元素选择器 使用元素选择器可以让我们…...
各个微前端框架的优劣浅谈
各个微前端框架都有其独特的优势和劣势,下面我将针对几个主流的微前端框架进行简要的优劣分析: single-spa 优势: 轻量级:single-spa是一个非常轻量级的微前端框架,它主要提供了一个加载和管理微应用的机制,…...
自动化运维(二十二)Ansible实战 之Jenkins模块
Ansible提供了一些模块,可以用来与Jenkins进行交互,执行各种操作,如创建任务、触发构建、获取构建结果等。通过使用这些模块,我们可以将Jenkins的配置和管理集成到Ansible的自动化流程中。 以下是一些常用的Ansible Jenkins模块: 1、jenkins_job模块 jenkins_job模块用于创建…...
Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训)
表1-1healthcare-dataset-stroke.xlsx 部分中风患者的基础信息和体检数据 编号性别高血压是否结婚工作类型居住类型体重指数吸烟史中风9046男否是私人城市36.6以前吸烟是51676女否是私营企业农村N/A从不吸烟是31112男否是私人农村32.5从不吸烟...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
使用python进行图像处理—图像滤波(5)
图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值,以达到平滑(去噪)、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算,…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...