How to Debug kata-containers

Containerd Setting

# less /etc/containerd/config.toml
...
[debug]
  address = ""
  uid = 0
  gid = 0
  level = "info"
...

Kata Setting

借助于Package logrus is a structured logger for Go: ““github.com/sirupsen/logrus””

Example01

//首先定义shimLog
// shimLog is logger for shim package
var shimLog = logrus.WithFields(logrus.Fields{
	"source": "containerd-kata-shim-v2",
	"name":   "containerd-shim-v2",
})
func create(ctx context.Context, s *service, r *taskAPI.CreateTaskRequest) (*container, error) {
...
switch containerType {
	case vc.PodSandbox:
		shimLog.WithField("ContainerType", vc.PodSandbox).Warn("Debug-Pod-Sandbox")
		if s.sandbox != nil {
			return nil, fmt.Errorf("cannot create another sandbox in sandbox: %s", s.sandbox.ID())
		}

		s.config, err = loadRuntimeConfig(s, r, ociSpec.Annotations)
		if err != nil {
			return nil, err
		}
		...
}
}
...

Example02

# 首先实现Container对应的Logger()方法
// Logger returns a logrus logger appropriate for logging Container messages
func (c *Container) Logger() *logrus.Entry {
	return virtLog.WithFields(logrus.Fields{
		"subsystem": "container",
		"sandbox":   c.sandboxID,
	})
}
// create creates and starts a container inside a Sandbox. It has to be
// called only when a new container, not known by the sandbox, has to be created.
func (c *Container) create(ctx context.Context) (err error) {
...
	if len(normalAttachedDevs) > 0 {
	    //在这里进行调用
		c.Logger().WithField("normalAttachedDevs", 	  normalAttachedDevs).Warn("normalAttachedDevs")
		if err = c.attachDevices(ctx, normalAttachedDevs); err != nil {
			return
		}
	}
	...
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值