kubernetes教程-基本学习环境配置

news2024/11/25 14:40:17

kubernetes教程-基本学习环境配置

安装必要工具

kubectl

Kubernetes的命令行工具, kubectl, 允许你在Kubernetes集群中运行命令. 你可以用kubectl来部署应用, 检查和管理集群资源, 并查看日志。有关更多信息,包括 kubectl的全部命令完整列表, 查看 kubectl reference documentation.

kubectl 可安装在各种 Linux 平台、macOS 和 Windows 上。在下面找到您喜欢的操作系统。

  • Install kubectl on Linux
  • Install kubectl on macOS
  • Install kubectl on Windows

kind

kind 让您可以在本地计算机上运行 Kubernetes.该工具要求您安装了 Docker 或 Podman .

kind的 Quick Start 页面向您显示了启动并运行 kind 需要执行的操作。

View kind Quick Start Guide

minikube

与“kind”一样,“minikube” 是一个可让您在本地运行 Kubernetes 的工具。 minikube 在您的个人计算机(包括 Windows、macOS 和 Linux PC)上运行一体化或多节点本地 Kubernetes 集群,以便您可以试用 Kubernetes,或进行日常开发工作。

如果您的重点是安装该工具,则可以按照官方的入门! 指南进行操作。

View minikube Get Started! Guide

一旦“minikube”正常工作,您就可以使用它来运行示例应用程序。

kubeadm

您可以使用 kubeadm 工具来创建和管理 Kubernetes 集群。它执行必要的操作,以用户友好的方式启动并运行最小可行的安全集群。
安装 kubeadm 向您展示如何安装 kubeadm。安装后,您可以使用它来创建集群。

View kubeadm Install Guide

在ubuntu(22.04)中安装

在中国使用minikube

先看下aliyun为中国大陆提供的minikube本土化使用文章

Minikube - Kubernetes本地实验环境-阿里云开发者社区

cpu_x86

  • 使用以下命令下载最新版本:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  • 安装
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  • 测试以确保您安装的版本是最新的

    kubectl version --client
    

Image1

验证 kubectl 配置

为了让 kubectl 找到并访问 Kubernetes 集群,它需要一个 kubeconfig 文件,该文件是在您使用 kube-up.sh 创建集群或成功部署 Minikube 集群时自动创建的。默认情况下,kubectl 配置位于 ~/.kube/config。
通过获取集群状态来检查 kubectl 是否已正确配置:
kubectl 集群信息
如果您看到 URL 响应,则说明 kubectl 已正确配置为访问您的集群。
如果您看到类似以下内容的消息,则 kubectl 未正确配置或无法连接到 Kubernetes 集群。
与服务器 <服务器名称:端口> 的连接被拒绝 - 您指定了正确的主机或端口吗?
例如,如果您打算在笔记本电脑上(本地)运行 Kubernetes 集群,则需要先安装 Minikube 等工具,然后重新运行上述命令。
如果 kubectl cluster-info 返回 url 响应,但您无法访问集群,请使用以下命令检查其配置是否正确:
kubectl 集群信息转储

安装minikube

minikube 是本地 Kubernetes,专注于让 Kubernetes 易于学习和开发。
您所需要的只是 Docker(或类似兼容的)容器或虚拟机环境,而 Kubernetes 只需一个命令即可:“minikube start”

必要条件

  • 2个或更多CPU
  • 2GB 可用内存
  • 20GB 可用磁盘空间
  • 网络连接
  • 容器或虚拟机管理器,例如:Docker、[QEMU](https://minikube.sigs.k8s.io/ docs/drivers/qemu/)、Hyperkit、[Hyper-V](https://minikube.sigs.k8s.io/ docs/drivers/hyperv/), KVM, [Parallels](https://minikube.sigs.k8s.io/docs/ drivers/parallels/), Podman, [VirtualBox](https://minikube.sigs.k8s.io/docs/drivers/ virtualbox/) 或 VMware Fusion/Workstation

安装(debian)

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb

Image2

启动你的集群

从具有管理员访问权限的终端(但未以 root 身份登录),运行:

minikube start

试图运行时报错:

Image3

按照建议运行,以为当前用户增加docker访问权限:

sudo usermod -aG docker $USER && newgrp docker

成功:

Image4

这边有报错镜像找不到:

Image5

报错超时:

Image6

报错ip地址有两行,似乎是使用代理的问题。可以尝试删去阿里云docker代理:

Image7

尝试生成日志:

Image8

如何设置代理

macOS and Linux

export HTTP_PROXY=http://<proxy hostname:port>
export HTTPS_PROXY=https://<proxy hostname:port>
export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.49.0/24,192.168.39.0/24

minikube start

建议设置代理使用minikube

重新启动minikube集群

minikube stop
minikube delete

推荐使用如下命令适用国内

听上去很蠢,但是指定kubernetes版本降级后它成功运行了

minikube start --image-mirror-country='cn' --registry-mirror=你的阿里云镜像 --kubernetes-version=v1.23.8

Image9

成功输出如:

Image10

Image11

健康检查

Image12

打开控制面板及报镜像拉取失败解决

minikube dashboard

然而报错:

consider@consider-Dell-G15-5511:~$ minikube dashboard
🤔  正在验证 dashboard 运行情况 ...
🚀  正在启动代理...
🤔  正在验证 proxy 运行状况 ...

❌  因 SVC_URL_TIMEOUT 错误而退出:http://127.0.0.1:33619/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 不可访问:Temporary Error: unexpected response code: 503

此处运行排查问题

kubectl get pods --all-namespaces
consider@consider-Dell-G15-5511:~$ kubectl get pods --all-namespaces
NAMESPACE              NAME                                         READY   STATUS             RESTARTS   AGE
kube-system            coredns-65c54cc984-5vs9p                     1/1     Running            0          37m
kube-system            etcd-minikube                                1/1     Running            0          37m
kube-system            kube-apiserver-minikube                      1/1     Running            0          37m
kube-system            kube-controller-manager-minikube             1/1     Running            0          37m
kube-system            kube-proxy-7qgmq                             1/1     Running            0          37m
kube-system            kube-scheduler-minikube                      1/1     Running            0          37m
kube-system            storage-provisioner                          1/1     Running            0          37m
kubernetes-dashboard   dashboard-metrics-scraper-7db978b848-cjq2q   1/1     Running            0          37m
kubernetes-dashboard   kubernetes-dashboard-6f4c897964-gzmwn        0/1     ImagePullBackOff   0          37m

可以看到是这个节点问题,报镜像拉取错误

kubernetes-dashboard   kubernetes-dashboard-6f4c897964-gzmwn     

检查一下节点日志

consider@consider-Dell-G15-5511:~$ kubectl describe --namespace=kubernetes-dashboard po kubernetes-dashboard-6f4c897964-gzmwn
Name:             kubernetes-dashboard-6f4c897964-gzmwn
Namespace:        kubernetes-dashboard
Priority:         0
Service Account:  kubernetes-dashboard
Node:             minikube/192.168.49.2
Start Time:       Mon, 02 Oct 2023 18:07:57 +0800
Labels:           gcp-auth-skip-secret=true
                  k8s-app=kubernetes-dashboard
                  pod-template-hash=6f4c897964
Annotations:      <none>
Status:           Pending
IP:               172.17.0.3
IPs:
  IP:           172.17.0.3
Controlled By:  ReplicaSet/kubernetes-dashboard-6f4c897964
Containers:
  kubernetes-dashboard:
    Container ID:  
    Image:         docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93
    Image ID:      
    Port:          9090/TCP
    Host Port:     0/TCP
    Args:
      --namespace=kubernetes-dashboard
      --enable-skip-login
      --disable-settings-authorizer
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /tmp from tmp-volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-t4grc (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  tmp-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  kube-api-access-t4grc:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node-role.kubernetes.io/master:NoSchedule
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  38m                  default-scheduler  Successfully assigned kubernetes-dashboard/kubernetes-dashboard-6f4c897964-gzmwn to minikube
  Warning  Failed     16m (x4 over 32m)    kubelet            Error: ErrImagePull
  Warning  Failed     15m (x8 over 32m)    kubelet            Error: ImagePullBackOff
  Normal   BackOff    15m (x9 over 32m)    kubelet            Back-off pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"
  Warning  Failed     10m (x5 over 32m)    kubelet            Failed to pull image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93": rpc error: code = Unknown desc = context canceled
  Normal   Pulling    7m42s (x6 over 38m)  kubelet            Pulling image "docker.io/kubernetesui/dashboard:v2.7.0@sha256:2e500d29e9d5f4a086b908eb8dfe7ecac57d2ab09d65b24f588b1d449841ef93"

我们需要进入到控制台中手动拉取镜像,具体来说

  • minikube ssh
    

Image13

  • 因为是拉取这个镜像报错,我们手动pull并重新打标签

  • docker.io/kubernetesui/dashboard:v2.7.0
    

我这边拉不下来所以手工上穿镜像再拉

Image14

如果手工上传镜像你做不到看这里,我使用这种比较拐弯莫叫的做法成功了

  1. 我拉取了所需要的镜像到本地

  2. Image15

  3. 接下来把这个镜像制作成压缩包

  4. docker save -o k.tar kubernetesui/dashboard:v2.7.0
    
  5. Image16

  6. 在当前终端运行这个来使得当前终端的镜像构建与minikube同步

  7. eval $(minikube docker-env)
    
  8. Image17

  9. 然后加载它

  10.  docker load -i k.tar
    
  11. Image18

  12. Image19

  13. 成功打开dashboard

  14. Image20

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

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

相关文章

string类的使用方式的介绍

目录 前言 1.什么是STL 2. STL的版本 3. STL的六大组件 4.STL的缺陷 5.string 5.1 为什么学习string类&#xff1f; 5.1.1 C语言中的字符串 5.2 标准库中的string类 5.3 string类的常用接口的使用 5.3.1 构造函数 5.3.2 string类对象的容量操作 5.3.3 string类对象…

【iptables 实战】06 iptables网络防火墙实验

一、现状说明 在上一节中&#xff0c;我们将两个网段的机器&#xff0c;通过中间机器的网络转发&#xff0c;能达到互通。再来回顾一下这个网络连接的图 这一节&#xff0c;我们将通过设置机器B的iptables规则&#xff0c;来做一些防火墙实验 机器A模拟公网的一台服务器&#…

【C++进阶之路】C++11(上)

文章目录 一、列表初始化1.{}2.initializer_list 二、声明1.auto2.deltype 三、右值与左值1.基本概念2.应用场景1.左值引用2.右值引用3.完美转发4.万能引用 四、新增默认成员函数五、lambda表达式1.基本语法1.1捕捉列表1.2参数列表1.3返回类型1.4函数体 2.底层原理 总结 一、列…

GPT系列模型解读:GPT-1

GPT系列 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一系列基于Transformer架构的预训练语言模型&#xff0c;由OpenAI开发。以下是GPT系列的主要模型&#xff1a; GPT&#xff1a;GPT-1是于2018年发布的第一个版本&#xff0c;它使用了12个Transformer…

2021-06-20 51单片机基于STC89C52RC的简易秒表的设计与实现(外部中断1和2)

缘由基于STC89C52RC的简易秒表的设计与实现_编程语言-CSDN问答 1.功能要求&#xff1a; K1键做启动停止秒表&#xff08;外部中断0&#xff09;&#xff0c;K2键做秒表归零&#xff08;外部中断1&#xff09;&#xff0c;4位数码管动态扫描显示&#xff0c;定时范围改成0到00…

房产政策松绑,VR看房助力市场回春

近日房贷利率、房产限购开始松绑&#xff0c;房地产市场逐渐被激活&#xff0c;房产行业的线上服务能力&#xff0c;也愈发的受到了重视。随着房贷利率、首付比例变化的消息逐渐推出&#xff0c;部分用户开始入手房产市场&#xff0c;因此房产行业的线上服务也需要不断升级&…

【计算机组成原理】读书笔记第五期:通过汇编语言了解程序的实际构成

目录 写在开头 汇编语言和本地代码的关系 汇编语言的源代码 伪指令 汇编的基本语法 常见的汇编指令 mov push和pop 函数的使用机制 函数的调用 函数参数的传递与返回值 全局变量 局部变量 程序的流程控制 循环语句 条件分支 通过汇编语言了解程序运行方式的必…

RTP/RTCP 协议讲解

文章目录 前言一、RTP 协议1、RTP 协议概述2、RTP 工作机制3、RTP 协议的报文结构4、wireshark 抓取 RTP 报文 二、RTCP 协议1、RTCP 协议概述2、RTCP 工作机制3、RTCP 数据报4、wireshark 抓取 RTCP 报文 三、RTSP 和 RTP 的关系四、易混淆概念1、RTP over UDP 和 RTP over RT…

typescript 泛型详解

typescript 泛型 泛型是可以在保证类型安全前提下&#xff0c;让函数等与多种类型一起工作&#xff0c;从而实现复用&#xff0c;常用于: 函数、接口、class中。 需求:创建一个id 函数&#xff0c;传入什么数据就返回该数据本身(也就是说&#xff0c;参数和返回值类型相同)。 …

从 0 到 1 ,手把手教你编写《消息队列》项目(Java实现) —— 创建项目 / 创建核心类

文章目录 一、创建SpringBoot项目二、创建核心类创建 Exchange类创建 MSGQueue类创建 Binding类创建Message类 一、创建SpringBoot项目 在项目中添加这四个依赖! 二、创建核心类 交换机 :Exchange 队列 :Queue 绑定关系: Binding 消息 :Message 这些核心类都存在于 BrokerSe…

常见加密和解密方法介绍。

介绍常见的加密和解密方法。 加密是利用数学方法将明文转化为密文&#xff0c;从而达到保护数据的目的。 通过加密可保证数据的机密性、完整性、鉴别性。 机密性&#xff1a;通过数据加密实现。只允许特定用户访问和阅读信息。 完整性&#xff1a;通过数字加密、散列、数字签名…

【生物信息学】使用皮尔逊相关系数进行相关性分析

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. cal_pearson&#xff08;计算皮尔逊相关系数&#xff09; 2. 主程序 a. 实验1&#xff08;较强的正相关关系&#xff09;&#xff1a; b. 实验2&#xff0…

计算机网络学习易错点(持续更新~~~)

目录 概述 1.internet和Internet的区别 2.面向连接和无连接 3.不同的T 4.传输速率和传播速率 5.传播时延和传输时延&#xff08;发送时延&#xff09; 6.语法&#xff0c;语义和同步 一.物理层 1.传输媒体与物理层 2.同步通信和异步通信 3.位同步&#xff08;比特同…

leetCode 53.最大子数和 图解 + 贪心算法/动态规划+优化

53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入…

C++面试题准备

文章目录 一、线程1.什么是进程&#xff0c;线程&#xff0c;彼此有什么区别?2.多进程、多线程的优缺点3.什么时候用进程&#xff0c;什么时候用线程4.多进程、多线程同步&#xff08;通讯&#xff09;的方法5.父进程、子进程的关系以及区别6.什么是进程上下文、中断上下文7.一…

FFMPEG 视频类过滤器学习整理

addroi 作用 在视频帧上标记一块感兴趣的区域。 帧数据被原封不动地传递&#xff0c;但元数据被附加到帧&#xff0c;指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。 参数 qoffset: 应用在此区域的量化偏移。 参数范围&#xff1a;-1 ~ …

笔记一:odoo透视表和图表

透视表 1、首先在xml文件添加pivot 说明&#xff1a;&#xff08;1&#xff09;根元素pivot中属性&#xff1a; disable_linking&#xff1a;设置为True&#xff0c;删除表格单元格到列表视图的链接 display_quantity&#xff1a;设置为True&#xff0c;默认显示“数量”列 d…

什么是FOSS

FOSS 是指 自由和开放源码软件(Free and Open Source Software)。这并不意味着软件是免费的。它意味着软件的源代码是开放的&#xff0c;任何人都可以自由使用、研究和修改代码。这个原则允许人们像一个社区一样为软件的开发和改进做出贡献。

Axios post请求出现500错误

笔者在编写前端form表单传后端数据的时候&#xff0c;出现了以下问题 一、问题场景 当我用axios发送post请求的时候&#xff0c;出现了500错误 笔者找了很长时间错误&#xff0c;代码没问题&#xff0c;后端接口也没问题&#xff0c;后来发现问题出在实体类上了 当前端post请…

电脑msvcp140丢失报错解决方法,msvcp140.dll重新安装的解决方法

msvcp140.dll丢失可能会导致一些基于Microsoft Visual C 编写的程序和游戏无法正常运行。msvcp140.dll是Microsoft Visual C Redistributable的一个组件&#xff0c;它包含了 C 运行时库&#xff0c;这些库在运行程序时会被加载到内存中。如果该文件丢失或损坏&#xff0c;程序…