x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
Kubeflow에서 Katib experiment를 yaml 파일로 정의하여 생성(apply)하니 해당 오류가 발생함.
X.509 에러는 쿠버네티스의 인증 관련한 문제입니다. 자세한 내용은 아래의 참고(k8s 인증 개념)를 확인바랍니다.
brew install cfssl
cfssl version
: cfssl이 제대로 install 되었는지 확인합니다.{
"CN": "katib-controller.kubeflow.svc",
"hosts": [
"katib-controller.kubeflow.svc"
],
"key": {
"algo": "ecdsa",
"size": 256
},
"names": [
{
"C": "US",
"ST": "CA",
"L": "San Francisco"
}
]
}
{
"CN":"katib-controller.kubeflow.svc",
"hosts":[
"katib-controller.kubeflow.svc"
],
"key":{
"algo":"rsa",
"size":2048
},
"names":[
{
"C":"US",
"L":"CA",
"ST":"San Francisco"
}
]
}
{
"signing": {
"default": {
"expiry": "168h"
},
"profiles": {
"www": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"server auth"
]
},
"client": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment",
"client auth"
]
},
"kubernetes": {
"expiry": "876000h",
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
]
}
}
}
}
cfssl gencert -initca ca-csr.json | cfssljson -bare ca –
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes server-csr.json | cfssljson -bare server
mv ca.pem ca-cert.pem
mv server.pem cert.pem
mv server-key.pem key.pem
kubectl delete secret -n kubeflow katib-controller
kubectl create secret -n kubeflow generic katib-controller --from-file=ca-cert.pem --from-file=ca-key.pem --from-file=cert.pem --from-file=key.pem
kubectl get pod -n kubeflow
kubectl delete pod katib-controller-7fcc95676b-669vj -n kubeflow
이제 정상적으로 Katib experiment가 생성되는 것을 확인할 수 있습니다!
이제 정상적으로 해당 내용이 Katib 컴포넌트 안에 적용되어 있는 것이 확인되네요 ^^