On k8s you can create services either through kubectl expose .. command or kubectl crate service ... right?
So, with both of them I am having an issue that I am not sure why.
k8s allows me to do kubectl expose deploy demo --type ExternalName, but it doesn't allow to pass an --external-name flag to specify the CNAME.
$ kubectl expose deploy demo --type ExternalName --port 80 --external-name google.com
...
unknown flag: --external-name
If I do without the --external-name flag.
$ kubectl expose deploy demo --type ExternalName --port 80
The Service "demo" is invalid: spec.externalName: Required value
k8s also allows me to do kubectl create service externalname demo --external-name example.com --tcp <port>:<target-port>, but when I check the port and target port didn't go through.
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
demo ExternalName <none> google.com <none> 20m
I tried --tcp=80:80, --tcp 80:80, --tcp=[80:80], etc. Nothing works!
Anyone can point out what's the issue? I think it might be a bug.
I'm on GKE, with a 1.13.7 k8s version.