OpenShift中etcd集群的某个etcd服务文件损坏,导致节点故障,恢复过程
问题etcd集群中某个etcd出现故障,使用docker ps -a | grep etcd | grep -v POD查看etcd节点,发现它异常退出。 123$ docker logs -f <etcd-container-id>....etcdserver : open wal error: wal: file not found 恢复步骤大方向步骤:一、将问题etcd节点从etcd集群剥离;二、将恢复的新的etcd节点添加到etcd集群。具体步骤如下: 查看etcd状态 1234$ etcdctl2 cluster-health$ ## 获取问题节点的member ID$ etcdctl2 member remove <member ID>$ ## 将问题etcd服务从etcd集群中删除 停止问题节点上的etcd服务 12$ mkdir -p /etc/origin/node/pods-stopped$ mv /etc/origin/node/pods/* /etc/origin/node/pods-stopped/ 删除问题节点上的...
OpenShift中如何将PV与PVC绑定
PV/PVC是什么?PV(Persistent Volume):描述的是持久化的Volume实体概念,生命周期与Pod创建和销毁事件无关。要么运行事先准备好,要么通过动态创建。PVC(PersistentVolumeClaim):PVC是对PV的请求,申明Pod所希望使用的持久化存储的属性,例如容量,读写权限。 Kubernete Volumes能够帮忙应用持久化数据,PV/PVC是Kubernetes Volumes存储类型的一种,其它类型还有:本地存储:emptyDir / hostPath网络存储:in-tree: aws ElasticBlockStore / gcePersistentDisk / nfsout-of-tree:csi等网络存储插件Project Volume:secret / configmap / downwardAPI / serviceAccountToken PV/PVC的意义 使用不同的控制器来管理计算与存储资源,解耦POD与Volume的生命周期,实现...
OpenShift中如何通过脚本获取Alertmanager的告警数据
一、为什么需要通过脚本获取告警信息 二、Alertmanager的告警信息 三、amtool工具获取告警信息 12# oc exec -it alertmanager-main-0 -c alertmanager -n openshift-monitoring -- amtool alert query 'severity=critical' --alertmanager.url http://localhost:9093# oc exec -it alertmanager-main-0 -c alertmanager -n openshift-monitoring -- amtool alert query 'severity=critical' --alertmanager.url http://localhost:9093 -o extended -o:默认值为simple,输出格式,还可以是extended,json 四、amtool更多功能
OpenShift中的Grafana监控界面无法完成登录
问题描述:访问OpenShift默认的grafana无法跳转到OpenShift console界面。报如下错误: 12{"error":"invalid_request","error_description":"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed."} 解决办法: 1$ oc patch sa grafana -p '{"metadata":{"annotations":{"serviceaccounts.openshift.io/oauth-redirecturi.first":"https://grafana.ap...
OpenShift中节点的垃圾收集——容器与镜像
参考文档https://docs.openshift.com/container-platform/3.11/admin_guide/garbage_collection.html
OpenShift企业版离线安装:下载RedHat-Repo源及镜像文件
为了安全起见,在很多企业,网络环境是不能连接外网的,而需要使用OpenShift的话,就需要离线部署。离线部署与在线部署最大区别,就是我们得自己准备介质源:YUM源与镜像仓库。只要你拥有红帽订阅,下载最新的介质,其实很简单。 一、同步YUM源RHEL主机注册到红帽订阅,并关联到相应的YUM仓库 12345678910$ subscription-manager register$ subscription-manager refresh$ subscription-manager list --available --matches '*OpenShift*'$ subscription-manager attach --pool=<pool_id>$ subscription-manager repos --disable="*"$ subscription-manager repos \ --enable="rhel-7-server-rpms" \ --enable="rhel-...
OpenShift之应用环境变量篇
通过环境变量向容器暴露 Pod 信息
OpenShift使用HostPath挂载本地目录无权限
123456789101112131415161718192021222324252627282930313233apiVersion: v1kind: DeploymentConfigmetadata: name: centos namespace: monitorspec: replicas: 1 template: metadata: labels: busybox: 'true' spec: containers: - args: image: 'centos:v2' imagePullPolicy: IfNotPresent name: busybox securityContext: runAsUser: 1000 runAsGroup: 2000 #该特性在k8s 1.10之后才支持,本环境未支持,参见Support for RunAsGrou...
OpenShift使用KeepAlived+LVS实现外部负载均衡器
OpenShift集群资源列表 主机名 类型 IP 相关节点IP master0 master 192.168.0.2 master1 master 192.168.0.3 master2 master 192.168.0.4 infra0 infra 192.168.0.5 infra1 infra 192.168.0.6 vip地址分配 master-vip vip 192.168.0.250 infra-vip vip 192.168.0.251 部署Master API负载均衡器作为集群内外访问的入口 在三个Master节点安装KeepAlived与LVS 12$ ansible masters -m package -a 'name=keepalived state=present'$ ansible masters -m package -a 'name=ipvsadm state=present' 选择master0作为VIP的Master节点 1234567891...
OpenShift使用MetalLB,打开了Service通向外界的大门
#背景在K8S/OpenShift中,如果要向集群外部暴露应用的服务,目前使用的方法有:NodePort、HostPort、Route、LoadBalancer、HostNetwork。 Route:为最常用的方法,但是一般只支持7层负载(默认),使用一个外部LB来负载多个Route实例,对外的访问的IP为该LB的IP。 NodePort:在私有集群中也常用来暴露服务,但是它必须使用30000以上的端口,数量有限,不便于管理,而且对于一些特殊的服务,如DNS,必须使用小端口号,那么使用NodePort则无法满足。 HostNetwork:对于集群中的一些特殊服务使用该方式,它将容器与宿主机的网络绑定,如OpenShift中的Router服务就是使用HostNetwork与Router节点绑定。它的缺点是pod必须与主机绑定,同时每个Node上只能运行一个Pod实例,因为端口无法被复用。 HostPort:与HostNetwork类似,将Pod指定的端口与Node对应的端口绑定。 LoadBalancer:一般只在公有云平台使用,可以使Service获得与主机同一平面...

