Please enable Javascript to view the contents

开发 Tips(15)

 ·  ☕ 1 分钟

主要记录最近遇到的一些开发问题,解决方法。

1. Ingress 开启 HTTPS

准备好证书,domain.com.crt、domain.com.key

  1. 创建 Secret
1
kubectl create secret tls {SECRET_NAME} --key domain.com.key --cert domain.com.crt -n {NAMESPACE}
  1. 更新 Ingress 配置
1
2
3
4
5
spec:
  tls:
  - hosts:
    - domain.com
    secretName: {SECRET_NAME}

2. SSH 登陆失败,提示 ssh-dss

SSH 登陆提示:

1
Unable to negotiate with 10.10.10.10 port 22: no matching host key type found. Their offer: ssh-dss

原因是,OpenSSH 7.0 以后的版本,出于安全性考虑,不再支持 ssh-dss (DSA)算法。

执行命令,查看 OpenSSH 版本:

1
sshd -V

解决办法,有两个:

1,命令行添加参数

1
ssh -oHostKeyAlgorithms=+ssh-dss login_user@host_ip

2,配置文件中增加参数

cat ~/.ssh/config
Host ssh_name
    HostName host_ip
    HostKeyAlgorithms +ssh-dss
    User login_user
    Port 22

3. 强制删除 Kubernetes 资源

  • 使用 --force 删除
1
kubectl delete --force --grace-period=0 {RESOURCE_NAME}
  • 修改 finalizers

通常无法删除,是因为有些 finalizer 关联的动作未执行成功。如果一定要删除,可以试试下面的命令:

1
kubectl get namespace myns -o json | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/"| kubectl replace /api/v1/namespaces/myns/finalize -f -
  • 在 etcd 中删除
1
yum install -y etcd
1
ETCDCTL_API=3 etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key del --prefix=/registry/namespaces/{NAMESPACENAME}

4. 使用 Journalctl 查看日志

Systemd 是 Linux 系统工具,用来启动守护进程。journald 收集由内核、initrd 以及服务等产生的日志信息。

只需要 journalctl 一条命令,就可以查看所有日志。

  • 查看所有日志
1
journalctl
  • 实时滚动显示日志
1
journalctl -f
  • 查看指定服务日志
1
journalctl -u kubelet

微信公众号
作者
微信公众号