
kubernetes
yanwei2020
云计算、通信行业架构师
展开
-
编译K8S的CCM组件cloud-provider-openstack生成docker镜像
1、CCM组件cloud-provider-openstack编译docker镜像编译命令为# make images但是直接编译时会出现访问国外源超时的情况2、解决国外源超时问题需要修改cloud-provider-openstack所有插件的Dockerfile文件这些插件的Dockerfile都需要修改# pwd/home/work/k8s/code/src/k8s.io/cloud-provider-openstack# ls -l cluster/images/total 0原创 2020-06-13 22:23:38 · 773 阅读 · 0 评论 -
etcdserver: read wal error (walpb: crc mismatch) and cannot be repaired(3):主备同步修复
1、问题思考前面花了点时间尝试通过数据恢复的方式修复故障,一直没有成功。想了下,应该是陷入了一种思维定势,认为只要有数据损坏,就要通过恢复数据的方式修复。其实etcd本身是一款非常优秀的分布式kv存储集群系统,基于raft协议来保证数据库一致性。集群中有节点数据损坏,可以通过同步方式恢复数据。想到这个点,修复起来就比较简单了2、修复数据2.1、停数据损坏节点的kubelet[root@k...原创 2020-04-18 10:20:26 · 2522 阅读 · 1 评论 -
etcdserver: read wal error (walpb: crc mismatch) and cannot be repaired(2):尝试通过snap修复
1、停止etcd pod本步骤操作都在故障节点k8s-m2上执行1.1、停止kubelet[root@k8s-m2 wal]# systemctl stop kubelet[root@k8s-m2 wal]# systemctl status kubelet● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: ...原创 2020-04-16 20:07:24 · 2680 阅读 · 0 评论 -
etcdserver: read wal error (walpb: crc mismatch) and cannot be repaired(1):怎么发现这个问题的?
1、环境介绍问题环境是一个部署在OpenStack虚拟机上的K8S集群,有三个Master节点# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE ...原创 2020-04-16 19:33:23 · 2328 阅读 · 0 评论 -
如何在已有的K8S集群中使用etcdctl工具操作etcd集群
1、集群信息K8S集群信息,集群中有三个master节点# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s-m1 Ready master 55d v1.17.0k8s-m2 Ready master 55d ...原创 2020-04-16 17:16:52 · 4181 阅读 · 1 评论 -
基于K8S和OpenStack日志分析K8S动态使用Cinder PV流程
1、环境说明环境信息同:OpenStack虚拟机部署K8S集群,使用Cinder提供PV报错:mount: special device does not exist2、K8S动态使用Cinder PV流程2.1、创建带Cinder PV的POD# kubectl apply -f busybox-cinder-dym.yamlpod/testpvcpod-cinder created...原创 2020-04-15 19:42:13 · 1134 阅读 · 0 评论 -
OpenStack虚拟机部署K8S集群,使用Cinder提供PV报错:mount: special device does not exist
1、出错信息kubelet挂载pv卷失败,从出错信息来看失败原因是设备不存在# kubectl describe pods testpvcpod-cinderMounting command: systemd-runMounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/7...原创 2020-04-15 19:04:48 · 2178 阅读 · 0 评论 -
K8S编译报错:undefined: "/pkg/generated/openapi".GetOpenAPIDefinitions
1、编译问题编译K8S报错,错误打印如下: # KUBE_BASE_IMAGE_REGISTRY="10.43.166.180:50500" KUBE_DOCKER_REGISTRY="10.43.166.180:50500" KUBE_BUILD_CONFORMANCE=n KUBE_BUILD_HYPERKUBE=n make quick-release+++ [0414 05:00:...原创 2020-04-15 18:36:15 · 1372 阅读 · 0 评论 -
如何删除本地私有docker镜像仓库中的镜像
1、为什么要删除私有镜像仓库中镜像?如何搭建私有镜像仓库请参考基于registry镜像构建本地镜像仓库举个需要删除镜像的场景比如,要编译k8s,需要kube-cross镜像,当前最新的版本V1.13.6-1而编译k8s 1.17.0需要 V1.13.4-1可能在上传镜像到私有镜像仓库的时候将V1.13.6-1的kube-cross tag成了V1.13.4-1,编译k8s的时候,出现版...原创 2020-03-18 17:07:29 · 10461 阅读 · 2 评论 -
kubernetes对接cinder创建pv报错:Failed to provision volume with StorageClass standard
1、环境信息这个环境用于验证kubernetes使用cinder作为provider提供pvkubernetes本身运行在openstack集群的虚拟机中,通过router打通和openstack管理面的链接1.1、openstack 集群虚拟机列表$ nova list+--------------------------------------+-----------+-------...原创 2020-02-25 16:24:24 · 7382 阅读 · 0 评论 -
kubernetes+virtual-kubelet对接openstack-zun:使用https方式报错 x509: certificate signed by unknown authority
1、环境说明k8s集群由三个master构成,后续新创建virtual-kubelet节点对接openstack zun# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP ...原创 2020-02-22 12:15:55 · 577 阅读 · 0 评论 -
k8s+virtual-kubelet部署带动态pv的pod到openstack-zun
1、环境信息本环境用于验证k8s+virtual-kubelet+openstack zun1.1、kubernetes集群信息k8s集群有3个master,一个普通node,两个virtual-kubenet node# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION ...原创 2020-02-15 12:07:24 · 912 阅读 · 0 评论 -
k8s通过virtual-kubelet部署带cinder后端动态pv的pod到openstack zun时报volume node affinity conflict
1、环境信息本环境用于验证k8s+virtual-kubelet+openstack zun1.1、kubernetes集群信息k8s集群有3个master,一个普通node,两个virtual-kubenet node# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION ...原创 2020-02-15 11:53:00 · 7990 阅读 · 0 评论 -
创建带Cinder PV的pod时出现pod has unbound immediate PersistentVolumeClaims
1、环境介绍K8S+openstack-cloud-controller-manager对接OpenStack Cinder 为K8S提供PV后端storageclass已经创建好# kubectl get scNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION...原创 2020-01-22 16:53:19 · 12207 阅读 · 1 评论 -
K8S+Cloud-Controller-Manager对接Openstack Cinder创建PV之四:在已有K8S集群上扩展openstack-cloud-controller-manager组件
1、说明前面的两篇博文介绍了如何使用local-up-cluster.sh脚本创建本地集群对接OpenStack以及local-up-cluster.sh脚本创建本地集群的一些问题本篇介绍在一个部署好的K8S集群中扩展部署openstack-cloud-controller-manager组件2、环境说明K8S集群环境中,目前有四个节点,三个master构成高可用集群,一个node节点...原创 2020-01-22 14:37:14 · 1712 阅读 · 2 评论 -
K8S+Cloud-Controller-Manager对接Openstack Cinder创建PV之三:使用local-up-cluster.sh创建本地K8S集群存在的问题
说明使用local-up-cluster.sh创建的集群,主要是为了验证cloud-controller-manager(CCM)功能本地集群创建过程可参考local-up-cluster.sh创建集群连接openstack1、问题1:此集群就是测试demo无法用于生产环境从打印日志来看,此集群在shell前台运行,如果退出shell,则集群就会销毁Local Kubernetes cl...原创 2020-01-22 11:34:12 · 857 阅读 · 0 评论 -
K8S+Cloud-Controller-Manager对接Openstack Cinder创建PV之二:使用local-up-cluster.sh创建本地K8S集群
1、基本说明K8S源代码中有个local-up-cluster.sh脚本,可以用来创建一个本地单节点集群,并通过openstack-cloud-controller-manager,对接OpenStack指导步骤在官网上有,具体见官网链接但是这个步骤中,有不少的坑,对咱们国内用户来说,坑尤其多,究其缘由,不说了,你懂的2、环境准备基本环境是一个基于Centos7.7的虚拟机,无法连接外网...原创 2020-01-22 10:33:29 · 1738 阅读 · 0 评论 -
K8S+Cloud-Controller-Manager对接Openstack Cinder创建PV之一:编译cloud-provider-openstack
1、编译环境编译环境为ubuntu环境,可以连接外网2、下载源代码# mkdir /root/gopath/src/k8s.io# cd /root/gopath/src/k8s.io# git clone https://github.com/kubernetes/cloud-provider-openstack.git# git checkout -b remotes/origin...原创 2020-01-21 17:00:21 · 1158 阅读 · 0 评论 -
K8S集群部署helm+tiller及填坑(1)
1、环境介绍K8S集群版本为V1.17.0Helm和Tiller版本都是V2.14.1# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s-m1 Ready master 20h v1.17.0k8s-m2 Ready master ...原创 2020-01-21 12:00:10 · 3110 阅读 · 1 评论 -
K8S集群部署helm+tiller及填坑(2)-MinimumReplicasUnavailable,socat not found,configmaps is forbidden等
1、问题1:Error: error installing: the server could not find the requested resource此问题是在执行helm init命令时出现的1.1、问题原因helm老版本init命令调用的是K8S老的API接口,K8S新接口已经不做支持1.2、解决问题对于接口做修改# helm init -i 10.43.166.184:5...原创 2020-01-21 11:59:09 · 25604 阅读 · 0 评论 -
通过Kubernetes+Virtual-kubelet在一个OpenStack Zun集群上运行多个反亲和Pod副本
1、问题Kubernetes可以通过virtual-kubelet对接OpenStack Zun集群,同一个Zun集群在Kubernetes看来就是一个虚拟node。K8S在部署多个反亲和副本Pod的时候,因为只有一个node,所以只能调度一个pod,另外的pod因为没有可调度的node就会处于pending状态# kubectl get pods -o wideNAME ...原创 2020-01-10 17:43:39 · 883 阅读 · 0 评论 -
kubernetes+virtual-kubelet对接openstack zun
1、环境介绍在一个OpenStack Train集群上创建4个虚拟机,运行k8s集群在另外一个OpenStac Train集群上运行zun# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP E...原创 2020-01-09 18:38:24 · 775 阅读 · 0 评论 -
基于go编译环境编译virtual-kubelet用于kubernetes对接openstack-zun
1、编译环境介绍编译机器为ubuntu虚拟机虚拟机镜像ubuntu版本为cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=16.04DISTRIB_CODENAME=xenialDISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"注:编译会下载第三方包,所以编译环境需要连互联网2、构建编译环境...原创 2020-01-08 10:37:25 · 614 阅读 · 0 评论 -
基于docker镜像编译kubernetes v1.17.0
1、环境介绍编译机器为OpenStack Train部署的一个虚拟机虚拟机镜像版本为:# cat /etc/centos-releaseCentOS Linux release 7.7.1908 (Core)2、安装依赖包需要安装docker和rsync2.1、配置repo参考https://blog.youkuaiyun.com/weixin_43905458/article/detai...原创 2020-01-08 10:13:19 · 1074 阅读 · 0 评论