k8s 知识
命令
Pod 管理
kubectl get pods
查看pod在哪个node上
kubectl get pods -o wide
kubectl describe pod pod_name
创建新的pod, 如果直接用命令
kubectl run nginx -image nginx
kubectl run custom-nginx --image=nginx --port=8080
创建新的pod, 如果用yml文件,命令用create 或者 apply
kubect apply -f pod.yml
kubectl create -f pod.yml
创建 yml
kubectl run redis --image=redis123 --dry-run=client -o yaml > redis-definition.yaml
修改pod
Update the pod-definition file and use kubectl apply
command or use kubectl edit pod redis
command. (edit改的是内存,不改文件)
删除pod
kubectl delete pod webapp
查看pod 详细信息
> kubectl -n spark2 get pods
想知道更详细信息比如 IP 信息,加 -owide
> kubectl -n spark2 get pods -owide
ReplicaSet 管理
修改ReplicaSet yml文件里面的replicas 数目,然后 kubectl replace -f replicaset-definition.yml
或者用下面任意一种scale命令 (NOTE:这种没有改变文件内容)
kubectl scale --replicas=6 -f replicaset-definition.yml
kubectl scale --replicas=6 replicaset myapp-replicaset
如果对yml 文件的格式和内容不清楚,可以用explain 查看。
kubectl explain replicaset
Deployment
Deployment 和 replicaset 看着差不多,deployment 比replicaset 多创建一个deployment object.
kubectl create deployment webapp --image=kodekloud/webapp-color --replicas=3
kubectl create deployment redis-deploy --image=redis --replicas=2 -n dev-ns
Service
有三种类型的service type: NodePort, ClusterIP, LoadBalancer
NodePort definition.
Create a service redis-service
to expose the redis
application within the cluster on port 6379
. Use imperative commands.
kubectl expose pod redis --port=6379 --name redis-service
kubectl run httpd --image=httpd:alpine --port=80 --expose
NameSpace
kubectl create namespace dev-ns