k8s基础命令

2019/10/29 k8s

k8s基础命令

https://github.com/kubernetes/minikube/releases/tag/v0.28.2

创建集群

minikube version

minikube start

查看集群信息

kubectl version

kubectl cluster-info

kubectl cluster-info dump

kubectl get nodes

应用外部可见

kubectl get pods
kubectl get services

kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
kubectl get services

kubectl describe services/kubernetes-bootcamp

创建 环境变量NODE_PORT
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='')


curl $(minikube ip):$NODE_PORT

使用labels

kubectl describe deployment

kubectl get pods -l run=kubernetes-bootcamp

kubectl get services -l run=kubernetes-bootcamp

重新设置label

export POD_NAME=$(kubectl get pods -o go-template --template '\n')
echo Name of the Pod: $POD_NAME

kubectl label pod $POD_NAME app=v1

kubectl describe pods $POD_NAME

kubectl get pods -l app=v1

删除一个service,并验证

kubectl delete service -l run=kubernetes-bootcamp
kubectl get services
curl $(minikube ip):$NODE_PORT
kubectl exec -ti $POD_NAME curl localhost:8080

应用程序探索

pods是运行在独立的,私有的网络下,为了外部能访问,使用 kubectl proxy运行一个代理

kubectl proxy

export POD_NAME=$(kubectl get pods -o go-template --template '\n')
echo Name of the Pod: $POD_NAME

curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

查看 日志

kubectl logs $POD_NAME

kubectl exec $POD_NAME env

kubectl exec -ti $POD_NAME bash

扩展应用

kubectl get deployments
kubectl scale deployments/kubernetes-bootcamp --replicas=4
kubectl get deployments
kubectl get pods -o wide
kubectl describe deployments/kubernetes-bootcamp

负载均衡

kubectl describe services/kubernetes-bootcamp
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='')
echo NODE_PORT=$NODE_PORT
curl $(minikube ip):$NODE_PORT

降容

kubectl scale deployments/kubernetes-bootcamp --replicas=2
kubectl get deployments
kubectl get pods -o wide

更新应用

kubectl get deployments
kubectl get pods
kubectl describe pods 查看image
设置image
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
kubectl get pods

验证更新

kubectl describe services/kubernetes-bootcamp
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template='')
echo NODE_PORT=$NODE_PORT

curl $(minikube ip):$NODE_PORT

kubectl rollout status deployments/kubernetes-bootcamp
kubectl describe pods

回滚更新

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10
kubectl get deployments
kubectl get pods
kubectl describe pods
kubectl rollout undo deployments/kubernetes-bootcamp

Search

    Table of Contents