目录

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

    1. Ingress 开启 HTTPS

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

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

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

    SSH 登陆提示:

    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 版本:

    sshd -V
    

    解决办法,有两个:

    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 删除
    kubectl delete --force --grace-period=0 {RESOURCE_NAME}
    
    • 在 etcd 中删除
    yum install -y etcd
    
    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 一条命令,就可以查看所有日志。

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