目前如果要將服務Expose有兩種方式
## --publish HostPort:ServicePort 就是建立K3s 跟 Host Docker
## --workers 就是建立一個具有兩個node的Kubernetes 這邊是Option
k3d create --publish 8081:80 --workers 2
export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"
kubectl create deployment nginx --image=nginx
kubectl create service clusterip nginx --tcp=80:80
cat <<EOF | kubectl create -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx
annotations:
ingress.kubernetes.io/ssl-redirect: "false"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: nginx
servicePort: 80
EOF
curl localhost:8081/
## 跟Expose Ingress的方式一樣 都要先--publish
k3d create --publish 31380:31380
curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"
K3d在Expose服務的時候都必須從create cluster階段開始,非常不適合當作開發環境,不過目前社群已經有想將Expose Service in Runtime所以可以期待。