19.k8s官方文档
kubectl get - list resourceskubectl describe - show detailed information about a resourcekubectl logs - print the logs from a container in a podkubectl exec - execute a command on a container in a ...
kubectl get - list resources
kubectl describe - show detailed information about a resource
kubectl logs - print the logs from a container in a pod
kubectl exec - execute a command on a container in a pod
2.docker给镜像改名
docker tag 8fa56d18961f k8s.gcr.io/kube-proxy:v1.13.0
docker rmi 10.10.31.205/k8s/kube-proxy:v1.13.0
docker tag d82530ead066 k8s.gcr.io/kube-controller-manager:v1.13.0
docker rmi 10.10.31.205/k8s/kube-controller-manager:v1.13.0
docker tag 9508b7d8008d k8s.gcr.io/kube-scheduler:v1.13.0
docker rmi 10.10.31.205/k8s/kube-scheduler:v1.13.0
docker tag f1ff9b7e3d6e k8s.gcr.io/kube-apiserver:v1.13.0
docker rmi 10.10.31.205/k8s/kube-apiserver:v1.13.0
docker tag f59dcacceff4 k8s.gcr.io/coredns:1.2.6
docker rmi 10.10.31.205/k8s/coredns:1.2.6
docker tag 3cab8e1b9802 k8s.gcr.io/etcd:3.2.24
docker rmi 10.10.31.205/k8s/etcd:3.2.24
docker tag 0dab2435c100 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
docker rmi 10.10.31.205/k8s/kubernetes-dashboard-amd64:v1.10.0
docker tag f0fad859c909 k8s.gcr.io/flannel:v0.10.0-amd64
docker rmi 10.10.31.205/k8s/flannel:v0.10.0-amd64
docker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1
docker rmi 10.10.31.205/k8s/pause:3.1
3.Create a new service
kubectl get pods: look for existing Pods
kubectl get services: list the current Services from our cluster
kubectl expose deployment/kubernetes-bootcamp --type=“NodePort” --port 8080: To create a new service and expose it to external traffic we’ll use the expose command with NodePort as parameter (minikube does not support the LoadBalancer option yet).
kubectl describe services/kubernetes-bootcamp: To find out what port was opened externally (by the NodePort option)
export NODE_PORT= ( k u b e c t l g e t s e r v i c e s / k u b e r n e t e s − b o o t c a m p − o g o − t e m p l a t e = ′ ( i n d e x . s p e c . p o r t s 0 ) . n o d e P o r t ′ ) e c h o N O D E P O R T = (kubectl get services/kubernetes-bootcamp -o go-template='{{(index .spec.ports 0).nodePort}}') echo NODE_PORT= (kubectlgetservices/kubernetes−bootcamp−ogo−template=′(index.spec.ports0).nodePort′)echoNODEPORT=NODE_PORT: Create an environment variable called NODE_PORT that has the value of the Node port assigned
curl ( m i n i k u b e i p ) : (minikube ip): (minikubeip):NODE_PORT: test that the app is exposed outside of the cluster using curl, the IP of the Node and the externally exposed port
4.Using labels
The Deployment created automatically a label for our Pod. With describe deployment command you can see the name of the label:
kubectl describe deployment
Let’s use this label to query our list of Pods. We’ll use the kubectl get pods command with -l as a parameter, followed by the label values:
kubectl get pods -l run=kubernetes-bootcamp
You can do the same to list the existing services:
kubectl get services -l run=kubernetes-bootcamp
Get the name of the Pod and store it in the POD_NAME environment variable:
export POD_NAME=$(kubectl get pods -o go-template --template ‘{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}’)
echo Name of the Pod: $POD_NAME
To apply a new label we use the label command followed by the object type, object name and the new label:
kubectl label pod $POD_NAME app=v1
This will apply a new label to our Pod (we pinned the application version to the Pod), and we can check it with the describe pod command:
kubectl describe pods $POD_NAME
We see here that the label is attached now to our Pod. And we can query now the list of pods using the new label:
kubectl get pods -l app=v1
And we see the Pod.
- Deleting a service
To delete Services you can use the delete service command. Labels can be used also here:
kubectl delete service -l run=kubernetes-bootcamp
Confirm that the service is gone:
kubectl get services
This confirms that our Service was removed. To confirm that route is not exposed anymore you can curl the previously exposed IP and port:
curl ( m i n i k u b e i p ) : (minikube ip): (minikubeip):NODE_PORT
This proves that the app is not reachable anymore from outside of the cluster. You can confirm that the app is still running with a curl inside the pod:
kubectl exec -ti $POD_NAME curl localhost:8080
We see here that the application is up.
更多推荐
所有评论(0)