Exercise 7.1: Exposing Applications: Expose a Service
kubectl create deploy nginx --image=nginxkubectl get deploy,pod -l app=nginx --show-labelscat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - port: 80 protocol: TCP selector: app: nginx EOFcurl $(kubectl get service nginx -o=jsonpath='{.spec.clusterIP}')kubectl create deploy httpd --image=httpdcat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - port: 80 protocol: TCP selector: app: httpd EOFcurl $(kubectl get service nginx -o=jsonpath='{.spec.clusterIP}')cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - port: 80 protocol: TCP selector: app: nginx EOFcurl $(kubectl get service nginx -o=jsonpath='{.spec.clusterIP}')kubectl delete deploy httpdcat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: nginx spec: type: NodePort ports: - port: 80 protocol: TCP nodePort: 32000 selector: app: nginx EOFcurl $(kubectl get service nginx -o=jsonpath='{.spec.clusterIP}')echo "$(curl -s ifconfig.io):$(kubectl get service nginx -o=jsonpath='{.spec.ports[0].nodePort}')"cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: nginx spec: type: LoadBalancer ports: - port: 80 protocol: TCP nodePort: 32000 selector: app: nginx EOFkubectl get svc nginxkubectl describe svc nginxcat <<EOF | kubectl create -f - apiVersion: v1 kind: Pod metadata: name: alpine spec: containers: - name: alpine image: praqma/network-multitool command: [ "sleep" ] args: [ "infinity" ] EOFkubectl exec -it alpine -- /bin/bashcurl nginx curl nginx.default curl nginx.default.svcnslookup nginxdigcat /etc/resolv.confdig @10.96.0.10 -x 10.96.0.10exit{ kubectl create ns demo kubectl create deploy httpd --image=httpd -n demo kubectl expose deploy httpd --port=80 -n demo }kubectl exec -it alpine -- /bin/bashcurl httpd curl httpd.demo curl httpd.demo.svcexit{ kubectl delete svc nginx kubectl delete deploy nginx kubectl delete pod alpine kubectl delete ns demo }
Last updated