k8s学习
文章平均质量分 70
k8s部署学习,和经验分享
有谁看见我的剑了?
学习如逆水行舟,不进则退
展开
-
使用minikube搭建本地k8s练习环境
kubectl二进制下载地址: https://dl.k8s.io/release/v1.28.2/bin/linux/amd64/kubectl。使用到的安装包可以从我的网盘下载:链接:https://pan.baidu.com/s/1pOcV53mAguEHInTHTrZXWg。默认是安装最新的稳定版本,也可以指定版本,如果使用root进行安装,必须使用 --forece,因为默认是以非root身份运行。原创 2024-04-28 16:10:16 · 1159 阅读 · 0 评论 -
修改k8s kube-proxy转发为ipvs
kube-proxy Pod是由DaemonSet 控制器管理。所以会在每个节点上都部署一个 kube-proxy Pod,重新发布 DaemonSet 会将所有节点的 kube-proxy Pod更新。b. 通过查看kube-proxy 的ConfigMap查看。a. 通过查看kube-proxy Pod日志来确定。查看现在kube-proxy Pod使用的转发模式。查看kube-proxy目前使用的转发模式。修改kube-proxy转发模式为。2.2、修改kube-proxy 的。原创 2024-04-26 13:37:38 · 806 阅读 · 0 评论 -
更新kubeadm创建的集群的证书
需要熟悉的知识:官网更新证书参考:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/静态Pod:https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/#static-pods。原创 2024-04-18 14:41:41 · 692 阅读 · 0 评论 -
使用crictl 客户端时报错: As the default settings are now deprecated, you should set the endpoint instead.
官网手册: https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md。通过在配置文件中设置端点–config=/etc/crictl.yaml (默认读取/etc/crictl.yaml配置文件)例如我使用containerd容器运行时,sock文件位置 /run/containerd/containerd.sock。报错大致意思: 默认的容器断点 sock文件已经被弃用,所有你需要自己选择sock文件。原创 2024-04-16 14:25:54 · 217 阅读 · 0 评论 -
使用kubeadm创建高可用集群(堆叠模式)
部署拓扑图和介绍参考:官网高可用集群部署参考: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/high-availability/开始部署,集群模式为堆叠主机信息master节点最低配置要求2c2g容器运行时: containerd转发模式: iptables负载均衡:keepalived + haproxy。原创 2024-04-16 12:03:04 · 757 阅读 · 0 评论 -
k8s高可用集群部署介绍 -- 理论
将etcd集群独立出去。每个etcd主机与每个控制平面节点的kube-apiserver通信,所有etcd数量等于k8s kube-apiserver服务器数量,kube-apiserver使用负载均衡器暴露给工作节点。:将etcd数据库作为控制平台的一员,由于etcd的共识算法,所以集群最少为3个,kube-apiserver使用负载均衡器暴露给工作节点。控制平面的宕机不会影响etcd集群,增加了etcd集群的HA,失去控制平面实例或者 etcd 成员的影响较小。原创 2024-04-15 23:38:07 · 626 阅读 · 0 评论 -
Centos7,部署etcd集群,基于二进制包,https安全通讯
如果有部署http协议的etcd集群的经验,观察配置文件就可以看出,就是配置了变量,将之前运行时的参数写入到了配置文件中, 协议由http改成了https。由于etcd集群https通讯,所以需要自建CA数字证书,学习使用https部署etcd集群前,可以先完成一下,在使用etcdctl时,默认要加入证书参数,集群参数很不方便,所以可以把那串固定的指令设置一个别名。,文章介绍了,3种创建证书的方法,本文选择 openssl 来创建证书。可以选择在任意台节点上生成证书,然后copy到其他节点。原创 2024-04-12 16:19:07 · 579 阅读 · 0 评论 -
centos7,etcd集群部署,基于二进制包,集群通信采用http协议
理论知识参考一下: https://blog.csdn.net/MssGuo/article/details/134495748。官网集群部署文档: https://etcd.io/docs/v3.5/op-guide/clustering/官网文档参考:https://etcd.io/docs/v3.5/op-guide/configuration/安装包路径:https://github.com/etcd-io/etcd/releases/etcd官网地址: https://etcd.io/原创 2024-04-11 23:20:31 · 917 阅读 · 0 评论 -
k8s单节点部署,容器运行时使用containerd
https://github.com/containerd/containerd/blob/main/docs/getting-started.md#advanced-topics 官网安装指南。将containerd.service文件移动到 /usr/local/lib/systemd/system/ 目录下。安装包路径:https://github.com/containerd/containerd/releases。这里使用阿里云的yum源进行安装目录最新的版本为1.28。原创 2024-04-07 18:24:47 · 1259 阅读 · 1 评论 -
配置Pod使用PersistentVolume作为存储,PV类型为 hostPath
所有工作负载api的参考:https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/workload-resources/下一步是创建一个 PersistentVolumeClaim。在PV CLAIM 字段可以看出 贝PVC default/task-pv-claim 绑定着(default为命名空间)STATUS 都是 Bound 表示是PV 是有绑定PVC,而PVC是有绑定PV。以下是pv.-pod.yaml的配置。原创 2024-04-03 17:14:59 · 461 阅读 · 0 评论 -
k8s存储卷 PV与PVC 理论学习
存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API,将存储如何制备的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 PersistentVolumeClaim。持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员事先制备,或者使用存储类(Storage Class)来动态制备。持久卷是集群资源,就像节点也是集群资源一样。原创 2024-04-03 16:12:04 · 1166 阅读 · 0 评论 -
k8s练习-创建一个Deployment
查看nginx-deployment 匹配的Pod标签。通过标签查看该Department创建的所有的Pod。查看所有api资源,简称以及资源类型对应的api。显示nginx Deployment的相关信息。创建一个nginx deployment。使用edit更新一个Deployment。列出该Deployment创建的Pod。更新nginx-deployment。将副本数修改为10个并保存。创建Deployment。展示某个Pod的相关信息。更新Deployment。删除Deployment。原创 2024-04-01 22:50:57 · 825 阅读 · 0 评论 -
k8s 如何获取加入节点命名
如果没有令牌 可以通过 kubeadm token list 查看之前的令牌。但是如果忘记了就需要找回这条命令了。原创 2024-03-28 18:28:12 · 467 阅读 · 0 评论 -
使用kubeadm reset还原由kubeadm 创建的集群
执行过程:--dry-run-h, --help。原创 2024-03-28 16:49:54 · 515 阅读 · 0 评论 -
kubectl 启用shell自动补全功能
使用source 执行一下 /usr/share/bash-completion/bash_completion 然后在使用type _init_completion查看是否生效。上述命令将创建文件 /usr/share/bash-completion/bash_completion,它是 bash-completion 的主脚本。官网手册参考:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/系统:centos7。原创 2024-03-27 22:54:29 · 547 阅读 · 0 评论 -
k8s 集群重启报错:The connection to the server 192.168.92.26:6443 was refused
注释掉/etc/fstab 关于swap分区的自动挂载信息。关闭swap分区,并重启kubelet。已经看出k8s 集权目前正常运行。查到是kubelet进程没有启动。说明服务器上swap分区没有关闭。查看kubelet日志。原创 2024-03-23 11:52:03 · 722 阅读 · 0 评论 -
k8s重启报错:Get “http://localhost:8080/api?timeout=32s“: dial tcp [::1]:8080: connect: connection refuse
单从报错可以看出,kubectl 没有使用到证书与k8s api通信,在初始化集群的时候要想使用kubectl需要,申明证书变量 export KUBECONFIG=/etc/kubernetes/admin.conf ,重启之后 KUBECONFIG 变量失效了。所有需要重新声明,并加入过/etc/profile 全局变量文件。原创 2024-03-22 10:53:52 · 947 阅读 · 0 评论 -
k8s浅聊一下Pod
Pod分为可调度的Pod和静态Pod,大多数Pod都是有控制器来管理,而静态Pod是有kubelet进程管理不需要 API 服务器看到它们。Pod官网定义文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/Pod是逻辑意义上的主机,Pod里面可以运行一个或者多个容器,Pod里面运行一个根容器pause,业务容器共享根容器的网络,存储。Pod是可以在k8s中创建和管理的、最小可部署的计算单元。原创 2024-03-21 14:09:44 · 749 阅读 · 0 评论 -
部署单节点k8s并允许master节点调度pod
pod-infra-container-image:Pod中的puase容器要使用的Image,默认为registry.k8s.io上的pause仓库中的镜像,由于安装k8s使用阿里云的镜像仓库,所以提前指定 puase 镜像。需要注意的是k8s1.24+ 已经弃用dockershim,现在使用docker需要cri-docker插件作为垫片,对接k8s的CRI。只需要配置 ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint。原创 2024-03-21 10:43:06 · 1409 阅读 · 0 评论 -
安装k8s集群
k8s 1.24+ 版本已经不支持docker shim,docker engine又不支持cri 所有,需要安装一下 cri-docker进行支持cri : https://github.com/Mirantis/cri-dockerd。:Pod中的puase容器要使用的Image,默认为registry.k8s.io上的pause仓库中的镜像,由于安装k8s使用阿里云的镜像仓库,所以提前指定 puase 镜像。三、 安装 docker engine 对接 cri 的垫片 cri-docker。原创 2024-03-15 14:49:46 · 1204 阅读 · 0 评论 -
k8s service的概念以及创建方法
由于已经通过NodePort模式将svc的端口映射到了node主机的 30974 端口,即可以通过node的ip加端口访问到Pod的服务。svc nginx-svc的类型为 NodePort 同样可以通过 node的ip加端口访问到pod 里的容器服务。可以使用命令行创建svc的使用使用 -o yaml输出yaml格式信息。,以客户端的方式尝试运行,配置 -o yaml 输出简略的信息。,以服务端的方式运行,配合-o yaml 输出非常详细的信息。创建svc(svc 是service的简写)原创 2024-02-27 14:19:11 · 1270 阅读 · 0 评论 -
k8s pv与pvc理解与实践
Pv是指PersistentVolume,中文含义是持久化存储卷是对底层的共享存储的一种抽象,Pv由管理员进行配置和创建,只要包含存储能力,访问模式,存储类型,回收策略,后端存储类型等主要信息。它和具体的底层存储技术实现有关,比如NFS,Hostpath等,Pvc是一种用户对存储的需求声明,声明中包括了存储大小,存储类型,以及k8s中选择器的属性等,另一个角度来看Pvc和Pod类型,Pod是消耗节点node资源,Pvc消耗的是Pv资源,Pod可以请求CPU和内存,而PVC可以请求特定的存储空间和访问模式。原创 2024-02-26 18:09:07 · 1277 阅读 · 0 评论 -
k8s-pod的介绍及命令行创建pod
一、 pod介绍在kubernetes的世界中,k8s并不直接处理容器,而是使用多个容器共存的理念,这组容器就叫做pod。原创 2024-02-22 11:32:24 · 1634 阅读 · 1 评论 -
K8S的apiVersion含义
在kubernetes1.9版本中,引入apps/v1,deployment等资源从extensions/v1beta1,apps/v1beta1和apps/v1beta2迁入apps/v1,原来的v1beta1等被废弃。DaemonSet,Deployment,ReplicaSet和StatefulSet的当时版本迁入apps/v1beta2,兼容原有的extensions/v1beta1。在kubernetes1.8版本中,新增加了apps/v1beta2的概念,apps/v1beta1同理。原创 2024-02-21 16:38:09 · 706 阅读 · 0 评论 -
k8s-创建命名空间的方法
b. 使用dev-namespace.yaml,yaml文件创建命名空间。a. 编写dev-namespace.yaml文件。b. 删除特定命令空间下的所有资源。使用命令式创建namespace。c. 查看特定命名空间的所有资源。c. 查看所有的命名空间。其他和命名空间的相关命令。使用声明式创建命名空间。原创 2024-02-21 10:36:00 · 732 阅读 · 0 评论 -
kubectl create 与 kubectl apply 的区别
则更加适合更新和修改已有的资源对象,因为它会对比新的 YAML 配置文件和已有的资源对象配置,只更新需要更新的部分,而不会覆盖已有的全部配置。用于创建或更新一个资源,如果该资源不存在,则会创建;如果该资源已存在,则会对其进行更新。是声明式,只是声明了一个yaml文件,只要达到期望的状态就行,并不指定具体做什么操作。用于创建一个新的资源,如果该资源已经存在,则会返回错误。是属于命令式,即就是要create 某API对象,但。适用于初始化资源对象的场景;从声明式和命令式来划分的话,原创 2024-02-20 13:39:57 · 589 阅读 · 0 评论 -
k8s实用命令
查看pod运行在哪个node里面。原创 2024-02-19 15:25:19 · 624 阅读 · 0 评论 -
安装部署k8s集群
目前来看node节点已经就绪了,但是有一个pod报错,2个pod没有准备好,使用kubectl --namespace=kube-system describe pod pod名称 查看pod的事件。systemd是系统自带的cgroup管理器, 系统初始化就存在的, 和cgroups联系紧密,为每一个进程分配cgroups,在master节点使用 kubectl get pod -A 查看所有组件是否安装成功,状态是否Runting(需要等待一会)组要是版本差异然后不知道怎么处理!原创 2024-02-18 15:42:56 · 1115 阅读 · 0 评论