Kubernetes
文章平均质量分 71
记录k8s的运维,部署等等
互联网-小阿宇
CSDN 运维领域优质创作者、阿里云专家博主。目前从事 Kubernetes 运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。
展开
-
k8s报错error: You must be logged in to the server (Unauthorized)
背景:故意修改Kubernetes集群所在服务器节点上的时间使Kubernetes证书过期,重新颁发证书后,使用kubeadm alpha certs check-expiration命令查看证书有效时间,相关证书都已重新颁发。也可以使用openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ’ Not ’ 进行查看证书的有效期但是在Kubernetes集群master节点上执行kubectl命令报如下错误:err.原创 2021-12-24 16:47:57 · 7403 阅读 · 0 评论 -
Kubernetes---kubeadm版本升级
Kubernetes 的版本更新迭代算是频繁的了,每个三个月发布一个小版本。为了使集群中一直跟随着版本前进,如果一直不更新,会导致新功能无法使用,落后新版本太多版本,不方便升级。升级策略始终保持最新每半年升级一次,资源会落后社区1~2个小版本(推荐)一年升级一次,或者更长,落后版本太多需要考虑的问题落后2个大版本以上的,需要考虑支持的功能以及参数,Kubernetes 会将一些功能删除,或者更改资源名称。类似这样的情况,Kubernetes 其实也是给了使用者很好的兼容方式的,每个大版本原创 2021-07-22 14:25:40 · 792 阅读 · 1 评论 -
K8s版本V1.18.0单节点Master部署
环境准备操作系统CPU内存Centos724基础环境设置#关闭防火墙&沙盒systemctl stop firewalld && setenforce 0vim /etc/selinux/config#修改 SELINUX=disabled#开启路由转发echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p#修改主机名hostnamectl set-原创 2021-07-01 10:52:39 · 358 阅读 · 0 评论 -
基于Containerd部署Kubernetes
当Kubernetes 1.20开始准备弃用Docker,相信很多人在k8s 1.20版本出现的时候,都听说了即将弃用docker,不过还没有完全弃用,但这也是未来的趋势了。k8s的底层还是容器。具体使用docker和弃用docker的前因后果我就不多说了,本文只是为了使用docker以外的CRI(Container Runtime Interface)来部署Kubernetes。这里就进行单机部署了。建议使用CentOS 7.5版本以上,这里以7.6为例,配置好网络,可以访问外网当弃用docker后原创 2021-03-26 10:15:16 · 2302 阅读 · 0 评论 -
kubeadm 查看创建集群需要的镜像版本,附拉取镜像脚本
查看创建集群需要的镜像版本kubeadm config images list [--kubernetes-version <version>]国内拉取镜像脚本一般而言,直接使用kubeadm拉取指定仓库地址是可以的kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.3下面这种是我没找到自动拉取时写的,下列脚原创 2021-03-15 11:06:22 · 3356 阅读 · 4 评论 -
搭建Kubernetes集群基于calico网络插件
实验环境IP备注系统192.168.1.10mastercentos7192.168.1.20node1centos7192.168.1.30node2centos7版本信息docker 18.09.0k8s v1.20.2更改主机名master[root@localhost ~]# hostname master[root@localhost ~]# bash[root@master ~]#node1[root@localhos原创 2021-02-06 11:15:15 · 1172 阅读 · 0 评论 -
k8s-主节点巡检脚本
脚本(复制粘贴)#!/bin/bash#作者:小韩a="\033[40;37m"e="\033[0m"b="\033[41;37m"c="\033[42;37m"f="\033[43;37m"g="\033[44;37m"h="\033[45;37m"q="\033[46;37m"echo -e "$h=========????本脚本适用K8S主节点&作者:小韩????======"$eecho -e "$a--------自动巡检开启--请把你的小手拿走--" $elin原创 2021-01-19 11:12:03 · 993 阅读 · 0 评论 -
docker加载配置文件重启服务导致pod重启
相信使用过Docker+Kubernetes环境的小伙伴们都知道,当重启docker服务时,Kubernetes集群中的pod也会随之重启。如果是生产环境可怎么办?尽管k8s有高可用,但是会影响调度平衡,以及服务器性能不均衡等不可控因素。最近我一直在想有没有一种方法,可以在不重启docker服务的情况下,加载配置文件。docker官方是提供了这样的参数的。https://docs.docker.com/config/containers/live-restore/在日常的docker应用中,也不会去频原创 2021-01-15 16:21:46 · 1038 阅读 · 0 评论 -
Kubernetes的yaml文件使用语法及简单操作
apiVersion版本当编写一个yml文件时,第一行必须先写入apiVersion的版本不同的apiVersion可以实现不同的功能,或者配合不同的组件去使用官方文档也没有给出一个充分的解释使用kubectl api-version查看当前系统下的k8s支持的apiVersion有那些[root@node1 ~]# kubectl api-versions admissionregistration.k8s.io/v1admissionregistration.k8s.io/v1bet原创 2021-01-15 16:15:40 · 1253 阅读 · 0 评论 -
K8S常用命令合集
创建资源一般创建资源会有两种方式:通过文件或者命令创建。# 通过文件创建一个Deploymentkubectl create -f /path/to/deployment.yamlcat /path/to/deployment.yaml | kubectl create -f -# 不过一般可能更常用下面的命令来创建资源kubectl apply -f /path/to/deployment.yaml# 通过kubectl命令直接创建kubectl run nginx_app --im.原创 2021-01-15 16:01:16 · 363 阅读 · 1 评论 -
RKE部署Kubernetes集群
安装docker在各个节点建立自定义账户,使其可以用命令操作dockeruseradd <user_name>passwd <user_name>usermod -aG docker <user_name>su <user_name>docker info配置主节点到各个节点用户的免密登录ssh-keygenssh-copy-id <user_name>@<节点IP>注意,应使用能够操作docker的用户(非ro原创 2021-01-11 16:37:10 · 1722 阅读 · 0 评论 -
Helm从入门到实践
Helm 是 Kubernetes 的软件包管理工具。本文需要读者对 Docker、Kubernetes 等相关知识有一定的了解。 本文将介绍 Helm 中的相关概念和基本工作原理,并通过一些简单的示例来演示如何使用Helm来安装、升级、回滚一个 Kubernetes 应用。Helm 是什么??Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。Helm 由客户端原创 2021-01-11 11:14:45 · 844 阅读 · 0 评论 -
k8s创建pv&pvc
pv&pvc简介k8s提供了emptyDir,hostPath,rbd,cephfs等存储方式供容器使用,不过这些存储方式都有一个缺点:开发人员必须得知指定存储的相关配置信息,才能使用存储.例如要使用cephfs,Pod的配置信息就必须指明cephfs的monitor,user,selectFile等等,而这些应该是系统管理员的工作.对此,k8s提供了两个新的API资源:PersistentVolume,PersistentVolumeClaimPV(PersistentVolume)是管理员已原创 2020-12-28 17:56:23 · 11258 阅读 · 0 评论 -
kubeadm集群添加新master或node节点
一、首先在master上生成新的tokenkubeadm token create --print-join-commandkubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b二、在master上生成用于新mast原创 2020-12-28 17:18:27 · 2153 阅读 · 1 评论 -
K8S-1.15.1版本部署
准备好几台机器,最好准备至少2台机器这里准备了3台机器,一台做master,2台做node1.机器基本设置1.1 设置主机名hostnamectl set-hostname master #在master机器上执行hostnamectl set-hostname node1 #在node1机器上执行hostnamectl set-hostname node2 #在node2机器上执行1.2 设置三台机器时区,保证后续事件准确,如果每台机器的时间不一样,后续出现很多莫名其妙的问题t原创 2020-12-28 15:57:09 · 329 阅读 · 1 评论 -
K8S 1.10.1版本部署
准备好几台机器,最好准备至少2台机器我这里准备了3台机器,一台做master,2台做node1.机器基本设置1.1 设置主机名hostnamectl set-hostname master #在master机器上执行hostnamectl set-hostname node1 #在node1机器上执行hostnamectl set-hostname node2 #在node2机器上执行1.2 设置三台机器时区,保证后续事件准确,如果每台机器的时间不一样,后续出现很多莫名其妙的问题原创 2020-12-28 15:52:27 · 218 阅读 · 0 评论 -
k8sV1.18.0版本一键部署脚本(全部代码在下方)
本次操作环境IP备注192.168.1.10master192.168.1.20master192.168.1.30master操作效果用的时候最好看脚本变量、主机解析等。适当修改node01脚本(用的时候最好看脚本,适当修改)vi /root/kubernetes_node01.sh#!/bin/bash################环境初始化#################k8s版本version=v1.18.0kubelet原创 2020-12-18 11:28:14 · 2692 阅读 · 2 评论 -
K8S(V1.10.1)高可用集群超详细版本(包含Dashboard、Rancher)
IP主机名CPU运行内存备注192.168.1.10node0124Master and etcd192.168.1.20node0224Master and etcd192.168.1.30node0324Master and etcd192.168.1.40node0412node192.168.1.50node0512node192.168.1.60node0612node软件...原创 2020-12-14 16:03:48 · 2113 阅读 · 5 评论 -
Kubernetes部署Dashboard(WEB UI管理界面)
搭建Dashboard(k8s Web UI)基于已经搭建好的Kubernetes集群进行部署Dashboard下载yaml文件wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml国内网下载此文件应该会出错下载镜像部署时也会下载,为了部署时可以更快的Running,所以提前下载...原创 2020-11-30 16:15:47 · 1305 阅读 · 0 评论 -
K8S报错异常锦集(持续更新)
①故障现象:使用脚本更新服务,pod无变化,状态没更新;解决思路:检查脚本,检查私有仓库,检查步骤,查看日志,查看k8s组件问题:k8s组件状态异常,controller-manager 异常经排查脚本没问题,私有仓库没问题,查看日志journalctl -f -u kubeletNov 10 10:11:22 k8s-m1 kubelet[32270]: E1110 10:11:22.165336 32270 kuberuntime_sandbox.go:65] CreatePodSand原创 2020-11-10 10:32:31 · 1207 阅读 · 1 评论 -
kubeadm证书/etcd证书过期处理
今天突然测试环境的Kubernetes 持续集成/持续发布出了问题了,然后上测试环境服务器排查,发现kubectl指令执行出现问题,Unable to connect to the server: x509: certificate has expired or is not yet valid然后翻译了一下提示证书已过期,网上查了下资料,说是:kubernetes的apiServer 与kubelet的访问授权证书是一年,官方的解释是:通过这种方式,让用户不断的升级版本。给出的解决方案有以下几种:原创 2020-10-14 09:54:03 · 2326 阅读 · 0 评论 -
公司测试环境k8s节点故障解决
ip地址信息192.168.1.215k8s主节点 、etcd192.168.1.126k8s从节点、etcd192.168.1.139kvm报错:从215服务器上面可以看到使用k8s的命令就是没反应要不就是回复的是时间超时!尝试命令kubectl get pods 、kubectl get nodes等没反应超时!这个时候我们可以看看集群状态可以看到etcd处于宕机状态kubectl get cs发现其中etcd集群都处于宕机状态,最起码要有两个...原创 2020-08-31 11:08:22 · 1215 阅读 · 0 评论 -
k8s集群的搭建安装(V1.18.0)
k8s安装kubernetes官网安装环境不支持centos8的系统IP服务硬件要求192.168.2.10(node1)Docker(已安装)、kubernetes内存4G,双核CPU192.168.2.20(node2)Docker(已安装)、kubernetes内存4G,双核CPU192.168.2.30(node3)Docker(已安装)、kubernetes内存4G,双核CPU安装步骤环境准备为了修改文件传输文件的方便,将主机名更改.原创 2020-08-18 14:21:49 · 1233 阅读 · 0 评论 -
kubernetes安装及集群搭建
k8s安装kubernetes官网安装环境不支持centos8的系统IP服务硬件要求192.168.2.10(node1)Docker(已安装)、kubernetes内存4G,双核CPU192.168.2.20(node2)Docker(已安装)、kubernetes内存4G,双核CPU192.168.2.30(node3)Docker(已安装)、kubernetes内存4G,双核CPU安装步骤环境准备为了修改文件传输文件的方便,将主机名更改.原创 2020-06-10 16:24:08 · 3223 阅读 · 0 评论 -
K8S架构详解
原创 2020-06-10 12:29:39 · 347 阅读 · 0 评论