Openshift排错技巧——From Redhat大客户交流会

redhat

今天参加Redhat大客户交流会,有一个主题是Redhat的小伙伴介绍Openshift的排错技巧。这个还是很值得参考的,于是将内容发在了这里,以便更多的小伙伴能够从中受益。当然Redhat小伙伴列出的也只是一部分,同时有些排错细节PPT中也并没有具体写,这篇中我就不扩展了。以下为PPT的内容。

OpenShift排错技巧

  1. 环境基本信息收集
  2. 日志等级
  3. 应用程序
  4. OC客户端排错
  5. 镜像仓库
  6. 网络
  7. 路由
  8. Installer
  9. DNS
  10. Etcd

日志等级

openshift service log:
/etc/origin/master/master.env #同时作用于API和Controllers
DEBUG_LOGLEVEL=4

/etc/sysconfig/atomic-openshift-node
OPTIONS=--loglevel=4

错误等级

  • 0 - Errors and warning only
  • 2 - Normal information
  • 4 - Debugging-level information
  • 6 - API-level debugging information (request / response)
  • 8 - Body-level API debugging information

Docker Log level
/etc/sysconfig/docker --log-level=debug

Etcd Log level
# source /etc/etcd/etcd.conf
# curl --cert $ETCD_PEER_CERT_FILE --key $ETCD_PEER_KEY_FILE --cacert $ETCD_TRUSTED_CA_FILE $ETCD_ADVERTISE_CLIENT_URLS/config/local/log -XPUT -d '{"Level":"DEBUG"}'

Get Log
# /usr/local/bin/master-logs etcd etcd > $(hostname)-etcd.log 2>&1

OpenShift Builder Pod Logs
BUILD_LOGLEVEL in BC/env ## BC的环境变量中设置

应用日志

三个不同阶段: build errors, deployment errors 和applications errors

Build Errors
# oc logs bc/<build_pod>

Deployment Errors
# oc get status -o wide -n <project>
# oc get events -o wide -n <project>

Application Errors
# oc logs pod/<pod> -p
# oc debug pod/<POD_NAME>
deploy a version of this pod without liveness and rediness probes as well as setting the entrypoint to the shell.

OC客户端

oc客户端日志等级
# oc whoami --loglevel=8

Setting this value between 6 and 8 will provide extensive logging

API requests being send (loglevel 6)
headers (loglevel 7)
responses received (loglevel 8)

OpenShift Registry

健康检查
基本的健康检查、保证Registry正常运行并且正常响应其对应的service地址

# RegistryAddr=$(oc get svc docker-registry -n default -o jsonpath={.spec.clusterIP}:{.spec.ports[0].port})

# curl -vk https://$RegistryAddr/healthz

测试镜像仓库
docker login -u openshift -p $(oc whoami -t) <registry_ip>:<port>
docker pull/tag/push

如果使用存储
# oc rsh $(oc get pods -o name -l docker-registry -n default)

OpenShift Networking

Debugging External Access to an HTTP Service
Debugging Node to Node Networking
Debugging Local Networking

使用NetWorking Diagnostics Tool检查网络状况
https://docs.openshift.com/container-platform/3.11/admin_guide/sdn_troubleshooting.html

OpenShift Routing

分段检查 定位问题 curl pod / svc

$ oc logs dc/router -n default
$ oc get dc/router -o yaml default
$ oc get route <NAME_OF_ROUTE> -n <PROJECT>
$ oc get endpoints --all-namespaces
$ oc exec -it $ROUTER_POD -- ls -la
$ oc exec -it $ROUTER_POD -- find /var/lib/haproxy -regex ".(.map|config.|.json)" -print -exec cat {} ; > haproxy_configs_and_maps

router log

Router健康状态查看
http://admin:<stats-password>@<master-ip>:1936/haproxy_stats

enable access log to syslog server

OpenShift Installer

OpenShift Ansible Playbooks

# ansible-playbook <PLAYBOOK> -vvv | tee ansible.logs

如果在某一个task上失败,可以访问github上的源码查找对应task具体操作步骤:
Access the Git Hub Install Repo: openshift/openshift-ansible

OpenShift DNS

Dnsmasq 是一个小型的DNS缓存服务器。它可以根据缓存来响应DNS查询或将其转发到外部真实的DNS服务器上,它安装在每个节点上。

Skydns是一个建立在ETCD之上的DNS服务器,它嵌入在节点的进程中,主要负责相应内部service的解析。

NetworkManager会启动origin dispatcher /etc/NetworkManager/dispatcher.d/99-origin-dns.sh以配置/etc/resolv.conf和一些其他文件

NetworkManager
请确定NetworkManger服务正常运行
请查看/etc/NetworkManager/dispatch.d/99-origin-dns.sh为可执行
请确定/etc/resolv.conf文件包含主机的私网IP,并且有正确的search域。/etc/resolv.conf是由NetworkManager服务生成的

请检查dnsmasq服务是否ok
systemctl status dnsmasq -l

OpenShift Etcd

设置etcd变量
# source /etc/etcd/etcd.conf
# export ETCDCTL_API=3

Set endpoint variable to include all etcd endpoints
# ETCD_ALL_ENDPOINTS=$(etcdctl --cert=$ETCD_PEER_CERT_FILE --key $ETCD_PEER_KEY_FILE --cacert $ETCD_TRUSTED_CA_FILE --endpoints=$ETCD_LISTEN_CLIENT_URLS --write-out=fields member list | awk '/ClientURL/{printf"%s%s", sep, $3; sep=","}')

check health of etcd
# etcdctl --cert=$ETCD_PEER_CERT_FILE --key $ETCD_PEER_KEY_FILE --cacert $ETCD_TRUSTED_CA_FILE --endpoints=$ETCD_LISTEN_CLIENT_URLS --write-out=table endpoint status

# etcdctl --cert=$ETCD_PEER_CERT_FILE --key $ETCD_PEER_KEY_FILE --cacert $ETCD_TRUSTED_CA_FILE --endpoints=$ETCD_LISTEN_CLIENT_URLS --write-out=table endpoint health

最佳实践

推荐
Red Hat OpenShift Container Platform Life Cycle Policy
https://access.redhat.com/support/policy/updates/openshift

OpenShift Container Platform Tested Integrations supported configuration
https://access.redhat.com/articles/2176281

不推荐

  1. Master节点和Infra节点混用
  2. 外部负载均衡和openshift节点混用
  3. 单独升级某个组件版本
  4. service ip

排错指南推荐

Troubleshooting OpenShift Container Platform: Cluster Metrics
https://access.redhat.com/articles/2448341

Troubleshooting OpenShift Container Platform 3.x: Aggregating Container Logging
https://access.redhat.com/articles/3136551

Troubleshooting OpenShift Container Platform: Middleware Containers
https://access.redhat.com/articles/3135421

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342