Kubernetes
文章平均质量分 59
Kubernetes 安装以及使用
人生匆匆
这个作者很懒,什么都没留下…
展开
-
k8s拉取不了私有镜像问题
我们都知道containerd来自于docker,后被docker捐献给了云原生计算基金会(Cloud Native Computing Foundation,CNCF)。在RHEL上通过YUM部署containerd的过程中,表现为需要加载docker-ce.repo镜像源。通过在线方式安装的containerd的配置文件只有一个有效配置项:disabled_plugins = [“cri”],可以通过下面的命令生成containerd的默认配置文件,然后在此基础上自行修改。原创 2024-04-29 15:14:05 · 1126 阅读 · 1 评论 -
k8s 通过环境变量获取Pod信息
【代码】k8s 通过环境变量获取Pod信息。转载 2024-03-06 14:17:53 · 212 阅读 · 0 评论 -
k8s 中的更新策略,版本回滚,金丝雀发布操作
查看历史记录kubectl rollout history deployment nginx回滚到上一个版本kubectl rollout undo deployment nginx也可以使用 --revision参数指定某个历史版本: kubectl rollout undo deployment nginx --to-revision=3原创 2022-05-12 18:09:25 · 3530 阅读 · 0 评论 -
k8s指定ceph,实现动态持久化存储
三、使用持久化存储StorageClass(ceph挂载)一、准备好ceph服务器# 在k8s集群中所有节点安装 ceph-common # 需要使用kubelet使用rdb命令map附加rbd创建的imageyum install -y ceph-common # 创建 osd pool 在ceph的mon或者admin节点[root@bd-server-2 ~]# ceph osd pool create kube 128pool 'ceph_rbd' created[root@bd-原创 2022-05-10 16:10:22 · 1138 阅读 · 3 评论 -
k8s指定ceph,实现静态持久化存储
一、使用pv/pvc(NFS挂载)1、创建ceph secret需要给k8s添加一个访问ceph的secret,主要用于k8s来给rbd做map。1,在ceph master节点执行如下命令获取admin的经过base64编码的key(生产环境可以创建一个给k8s使用的专门用户):[root@k8s-master1 ~]# ceph auth get-key client.admin | base64QVFDS21YUmlaTVYyRWhBQWVqbTBHQnpmaW5SYmpqS3dpN0ZaZ原创 2022-05-09 16:09:36 · 789 阅读 · 0 评论 -
K8s之权限管理
RBAC使用 RBAC 鉴权。基于角色(Role)的访问控制(RBAC)是一种基于企业中用户的角色来调节控制对计算机或网络资源的访问方法。 RBAC 使用 rbac.authorization.k8s.io API 组 来驱动鉴权操作,允许管理员通过 Kubernetes API 动态配置策略。在 1.8 版本中,RBAC 模式是稳定的并通过 rbac.authorization.k8s.io/v1 API 提供支持。要启用 RBAC,在启动 API 服务器时添加 --authorization-mo原创 2022-04-29 16:43:39 · 4258 阅读 · 1 评论 -
k8s部署ingress-nginx的方法步骤
1. ingress概述我们知道service的表现形式为IP:PORT,即工作在第四层传输层(TCP/IP层),那么对于不同的URL地址经常对应用不同的后端服务或者虚拟服务器,这些应用层的转发机制仅通过kubernetes的service机制是无法实现的,这种情况我们可以使用ingress策略定义和一个具体的ingress Controller,两者结合实现一个完整的Ingress 负载均衡,这个负载均衡是基于nginx七层反向代理来实现。k8s 对外暴露服务(service)主要有两种方式:Note原创 2022-04-28 16:21:03 · 15712 阅读 · 9 评论 -
k8s 利用环境变量配置容器应用
在Kubernetes中使用镜像启动容器时,可以在Pod资源或Pod模版资源为容器配置使用env参数来定义所使用的环境变量列表,即便容器中的应用本身不处于环境变量,也一样可以向容器传递环境变量,只不过它不被使用罢了。环境变量配置容器化应用时,需要在容器配置段中嵌套使用env字段,它的值是一个由环境变量构建的列表。环境变量由name和value(或valueFrom)字段构成。name:环境变量的名称,必须字段。value:环境变量的值,通过 ${VAR_NAME} 引用,默认值为空。valueFro转载 2022-04-25 16:40:52 · 1366 阅读 · 0 评论 -
k8s部署elasticsearch集群
1、创建yaml文件,这里我就不分开写了#创建ConfigMap用于挂载配置文件apiVersion: v1kind: ConfigMapmetadata: name: sirc-elasticsearch-config namespace: es labels: app: elasticsearchdata: #具体挂载的配置文件 elasticsearch.yml: |+ cluster.name: crawl node原创 2022-04-25 15:30:14 · 3880 阅读 · 4 评论 -
k8s部署有状态服务StatefulSet
StatefulSet有状态服务sts比较常见的mongo复制集 ,redis cluster,rabbitmq cluster等等,这些服务基本都会用StatefulSet模式来运行,当然除了这个,它们内部集群的关系还需要一系列脚本或controller来维系它们间的状态,这些会在后面进阶课程专门来讲,现在为了让大家先更好的明白StatefulSet,我这里直接还是用nginx服务来实战一、准备好NFS服务器确保nfs可以正常工作,创建持久化需要的目录。【前面的验证过程中已部署好NFS服务器这里直接原创 2022-04-24 15:42:26 · 4828 阅读 · 0 评论 -
k8s指定nfs,实现持久化存储
一、首先准备nfs服务器1、安装nfs服务yum install nfs-utils -y2、准备一个共享目录mkdir /opt/data/mysql -p3、将共享目录以读写权限暴露给10.0.19.0/24网段中的所有主机cat > /etc/exports <<EOF/opt/data/mysql 10.0.19.0/24(rw,sync,no_root_squash)EOF4、启动nfssystemctl start nfs二、接下来,要在每个k8.原创 2022-04-19 17:27:27 · 2784 阅读 · 0 评论 -
k8s部署mysql
1、 创建namespace.yaml文件[root@k8s-master1 ~]# cat namespase.yaml apiVersion: v1 #类型为Namespacekind: Namespace #类型为Namespacemetadata: name: test #命名空间名称 labels: name: mysql然后应用到k8s中kubectl create -f namespace.yaml2、 创建deployment.yaml文件[root@原创 2022-04-19 16:09:40 · 4319 阅读 · 0 评论 -
k8s生命周期---容器探测
健康检查Kubernetes 作为一个面向应用的集群管理工具,需要确保容器在部署后确实处在正常的运行状态。容器探测用于检测容器中的应用实例是否正常工作,是保障业务可用性的一种传统机制。如果经过探测,实例的状态不符合预期,那么kubernetes就会把该问题实例“摘除”,不承担业务流量。Kubernetes 提供了两种探针(Probe,支持 exec、tcpSocket 和 http 方式) 来探测容器的状态:Pod 通过两类探针检查容器的健康状态:LivenessProbe 探针存活性探针,用于转载 2022-04-19 11:40:06 · 797 阅读 · 0 评论 -
Kubernetes command、args的区别
command、args的区别# command、args两项实现覆盖Dockerfile中ENTRYPOINT的功能,具体的command命令代替ENTRYPOINT的命令行,args代表集体的参数。# 以下是使用场景1. 如果command和args均没有指定,那么则使用Dockerfile的配置。2. 如果command没有指定,但指定了args,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。3. 如果co原创 2022-04-19 10:57:05 · 4130 阅读 · 0 评论 -
K8S生命周期---钩子函数(postStart/preStop)
容器生命周期钩子容器生命周期钩子(Container Lifecycle Hooks)监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数。支持两种钩子:postStart: 容器创建后立即执行,注意由于是异步执行,它无法保证一定在 ENTRYPOINT 之前运行。如果失败,容器会被杀死,并根据 RestartPolicy 决定是 否重启preStop:容器终止前执行,常用于资源清理。执行完成之后容器将成功终止,如果失败,容器同样也会被杀死。在其完成之前 会阻塞删除容器的操作钩子的回调函转载 2022-04-18 18:00:55 · 3171 阅读 · 0 评论 -
k8s中初始化容器(init container)的作用及其使用方法
概述在容器的部署过程中,有的时候需要在容器运行之前进行一些预配置的工作,比如下载配置,判断某些服务是否启动,修改配置等一些准备的工作,想要实现这些功能,在k8s中可以使用初始化容器,在应用容器运行之前进行一些预处理的工作。本文档介绍在k8s中初始化容器的使用方法。使用方法以下的例子使用初始化容器,在nginx容器启动之前下载一个index.html文件kubectl apply -f - <<EOFapiVersion: v1kind: Podmetadata: name:转载 2022-04-18 16:59:10 · 4562 阅读 · 0 评论 -
k8s部署nginx
1、 创建namespace.yaml文件[root@k8s-master1 ~]# cat namespase.yaml apiVersion: v1 #类型为Namespacekind: Namespace #类型为Namespacemetadata: name: ssx-nginx-ns #命名空间名称 labels: name: lb-ssx-nginx-ns然后应用到k8s中kubectl create -f namespace.yaml2. 创建deploy原创 2022-04-11 18:13:03 · 11596 阅读 · 6 评论 -
etcd集群节点缩容(下线)
环境k8s-master110.0.19.127etcd-1k8s-node110.0.19.129etcd-2k8s-node210.0.19.130etcd-3k8s-node310.0.19.128etcd-4(下线)etcd-4节点上拷贝配置文件和启动命令,暂不启动(etcd-4节点上操作)将etcd-4故障节点剔除集群(etcd-1节点上操作)一、下线故障etcd-4节点命令行下线etcd4下线节点#list 查看节点状态[root原创 2022-04-08 15:01:29 · 1003 阅读 · 0 评论 -
etcd集群节点扩容
1、etcd4 基础环境初始化(参考之前的文章etcd搭建)https://blog.csdn.net/a13568hki/article/details/1235813462、etcd集群中新增etcd4 的hosts解析,如果是dns域名提前配置,保证4台机器的地址信息可以正常解析环境k8s-master110.0.19.127etcd-1k8s-node110.0.19.129etcd-2k8s-node210.0.19.130etcd-3k8s-no原创 2022-04-08 11:27:47 · 3077 阅读 · 0 评论 -
k8s 二进制node节点扩容
前置条件做好初始化,例如系统参数优化,时间同步,host主机解析,安装docker这四步,这里不详细说了docker安装文档:https://blog.csdn.net/a13568hki/article/details/107068006一、安装node3为了简单,我们先去从node1上复制配置好的k8s组件(包含证书,配置,启动文件)到node3上[root@k8s-node1 ~]# scp -r /opt/kubernetes root@k8s-node3:/opt/[root@k8s-原创 2022-04-07 11:27:18 · 1755 阅读 · 0 评论 -
k8s 二进制node节点缩容
在工作中,由于各种各样的原因需要把现有的node节点删除k8s版本:v1.16.10安装方式:二进制删除node01节点:kubectl delete node k8s-node1[root@k8s-master1 k8s]# kubectl get csrNAME AGE REQUESTOR CONDITIONnode-csr-WChHl5n7wueANacEBwkR原创 2022-04-07 09:49:51 · 223 阅读 · 0 评论 -
Etcd集群搭建报publish error: etcdserver: request timed out解决方式
只需要删除集群下报错节点的数据,使他重新同步就行,推测数据不同步导致报错命令:1.查看etcd集群的数据目录:cat /opt/etcd/cfg/etcd.conf2.调用删除命令:rm -rf /var/lib/etcd/*然后再重启所有etcd就正常了...原创 2022-04-06 17:51:11 · 6807 阅读 · 0 评论 -
k8s node节点删除并重新加入
在工作中,由于各种各样的原因需要把现有的node节点删除,并且重新加入;k8s版本:v1.16.10安装方式:二进制删除node01节点:kubectl delete node node01在node01节点上删除master节点批准其加入集群时,自动颁发的证书:#自动颁发的证书,在Node节点上的目录:/opt/kubernetes/ssl/#删除证书自动颁发的是kubelet的证书rm -f /opt/kubernetes/ssl/kubelet*重启kubelet;system原创 2022-03-21 14:58:24 · 2784 阅读 · 0 评论 -
二进制安装Kubernetes 高可用集群
一、集群规划k8s-master110.0.19.127kube-apiserver,kube-controller-manager,kube-scheduler,etcdk8s-master210.0.19.128kube-apiserver,kube-controller-manager,kube-schedulerk8s-node110.0.19.130kube-proxy,kubelet,docker,etcdk8s-node210.0.19.131k原创 2022-03-18 18:40:07 · 5619 阅读 · 3 评论 -
kubernetes报错 “Not using `--random-fully` in the MASQUERADE rule for iptables because the local “解决方法
[root@k8s-node1 ~]# tailf /opt/kubernetes/logs/kube-proxy.INFO I0318 11:49:42.467892 1076 proxier.go:1724] Not using `--random-fully` in the MASQUERADE rule for iptables because the local version of iptables does not support itI0318 11:50:12.488162转载 2022-03-18 11:56:31 · 663 阅读 · 0 评论 -
二进制安装Kubernetes 单集群
一、集群规划k8s-master110.0.19.127k8s-master210.0.19.128k8s-master310.0.19.129k8s-node110.0.19.130k8s-node210.0.19.131操作系统版本:7.3二、初始化服务器1 设置防火墙为 Iptables 并设置空规则【所有节点都执行】[root@k8s-master1 ~]# systemctl stop firewalld[root@k8s-maste原创 2022-03-16 17:19:52 · 1258 阅读 · 1 评论 -
Kubernetes安装dashboard组件
一、直接通过官方提供的yaml文件安装1、在官网get到yaml文件:官方地址: https://github.com/kubernetes/dashboardwget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml修改部分内容:修改以上几个地方就可执行命令创建pod启动dashboard组件了kubectl apply -f recommended.yaml原创 2022-03-09 16:22:00 · 664 阅读 · 0 评论 -
kubeadm方式安装k8s集群
部署单master集群一、集群规划k8s-master110.0.19.127k8s-node110.0.19.128k8s-node210.0.19.129k8s版本:1.16安装方式:离线-二进制操作系统版本:7.7二、初始化服务器1 关闭防火墙【所有主节点都执行】[root@k8s-master1 ~]# systemctl stop firewalld[root@k8s-master1 ~]# systemctl disable firewall原创 2022-03-08 15:40:50 · 988 阅读 · 0 评论 -
使用 Sealos 快速部署一个生产级别的 Kubernetes 高可用集群
一、集群规划k8s-master110.0.19.127k8s-master210.0.19.128k8s-master310.0.19.129k8s-node110.0.19.130k8s-node210.0.19.131操作系统版本:7.3二、初始化服务器1 设置防火墙为 Iptables 并设置空规则【所有节点都执行】[root@k8s-master1 ~]# systemctl stop firewalld[root@k8s-maste原创 2022-03-09 15:36:59 · 3680 阅读 · 1 评论