delete kubectl pod_kubectl常用命令
k8s运行的服务是 kubectl,一般这个服务要设置默认开机启动systemctl enable kubelet.service1systemctlenablekubelet.servicekubectl 命令1.查看podkubectl get pod1kubectlgetpod查看更详细pod内容kubectl get pod -o wide1kubectlgetpod-owide查看单个p
k8s运行的服务是 kubectl,一般这个服务要设置默认开机启动
systemctl enable kubelet.service
1
systemctlenablekubelet.service
kubectl 命令
1.查看pod
kubectl get pod
1
kubectlgetpod
查看更详细pod内容
kubectl get pod -o wide
1
kubectlgetpod-owide
查看单个pod的当前状态
kubectl describe pod [podName]
1
kubectldescribepod[podName]
查看某个命名空间下的所有pod -n [命名空间]
kubectl describe pod -n kube-system
1
kubectldescribepod-nkube-system
查看某个命名空间下的pod当前状态
kubectl describe pod [podName] -n kube-system
1
kubectldescribepod[podName]-nkube-system
进入到pod里的容器内部
kubectl -n kube-system exec -it kube-flannel-ds-amd64-p279l sh
1
kubectl-nkube-systemexec-itkube-flannel-ds-amd64-p279lsh
创建启动pod
–replicas 创建的副本数
kubectl run nginx-shooter --image=hub.atshooter.com/k8s/nginx:v1.0 --port=80 --replicas=1
kubectl get deployment #deployment和rs,rc一样,保证pod的数量和健康
kubectl get rs #(replicationSet)他是用来维护我们的副本数的,当副本数不足他要创建对应的pod来维护副本数一致
kubectl get pod
1
2
3
4
kubectlrunnginx-shooter--image=hub.atshooter.com/k8s/nginx:v1.0--port=80--replicas=1
kubectlgetdeployment#deployment和rs,rc一样,保证pod的数量和健康
kubectlgetrs#(replicationSet)他是用来维护我们的副本数的,当副本数不足他要创建对应的pod来维护副本数一致
kubectlgetpod
注意:注:如果run之后,容器一直无法启动出现ImagePullBackOff,意思是无法获取image镜像,可能你其他节点无法获取镜像,导致无法启动
可以使用describe命令查看这个失败的Pod的明细:
kubectl describe pod [podName]
1
kubectldescribepod[podName]
查看刚才创建的nginx-shooter Pod 详细信息
kubectl get pod -o wide
kubectl get pod nginx-shooter-6f798d87bd-zb5c7 -o wide
1
2
kubectlgetpod-owide
kubectlgetpodnginx-shooter-6f798d87bd-zb5c7-owide
访问这个pod
curl 10.244.2.9
1
curl10.244.2.9
访问无问题
Pod扩容
kubectl scale --replicas=3 deployment/nginx-shooter
1
kubectlscale--replicas=3deployment/nginx-shooter
查看deployment
kubectl get deployment
1
kubectlgetdeployment
可以看到副本数增加到了3个
pod容器端口转发/端口映射,expose
语法:kubectl expose deployment [控制器名称] --port[外部访问端口] --target-port=[内部响应的端口]
kubectl expose deployment nginx-shooter --port=30000 --target-port=80
kubectl get svc #查看服务Port状态
curl 10.96.205.163:3000
1
2
3
4
语法:kubectlexposedeployment[控制器名称]--port[外部访问端口]--target-port=[内部响应的端口]
kubectlexposedeploymentnginx-shooter--port=30000--target-port=80
kubectlgetsvc#查看服务Port状态
curl10.96.205.163:3000
ipvsadm -Ln | grep 10.96.205.163
外部IP访问(将外部ip映射到svc的ip端口上来进行外部ip访问)
kubectl edit svc nginx-shooter
1
kubectleditsvcnginx-shooter
进入编辑界面后修改 type: ClusterIP 为 type: NodePort 保存退出
然后svc会分配一个随机端口给外部ip来使用
看到了没 31847,什么意思呢,就是在我们所有的节点都暴露一个32340这样的端口以供外部ip访问,
也就意味着我们把我们的svc的类型改成nodePod这样我们就可以在外部访问到kubenetes内部的服务了。
查看容器日志(如果pod里大于1个容器,那么要加-c [容器名称])
kubectl logs [podName] #注意如果pod里容器大于1,则不能使用这种方法访问
kubectl logs -f # 实时查看日志
kubectl log myapp-pod -c test
1
2
3
kubectllogs[podName]#注意如果pod里容器大于1,则不能使用这种方法访问
kubectllogs-f# 实时查看日志
kubectllogmyapp-pod-ctest
删除容器(带副本数的)
kubectl delete deployment nginx-shooter #先删除控制器数量
kubectl get pod
kubectl delete pod [podName]
kubectl delete svc nginx-shooter
1
2
3
4
kubectldeletedeploymentnginx-shooter#先删除控制器数量
kubectlgetpod
kubectldeletepod[podName]
kubectldeletesvcnginx-shooter
删除所有pod
kubectl delete deployment --all
kubectl get pod
kubectl delete pod --all
kubectl delete svc [服务名称]
1
2
3
4
kubectldeletedeployment--all
kubectlgetpod
kubectldeletepod--all
kubectldeletesvc[服务名称]
删除服务
kubectl get svc
kubectl delete svc 服务名
1
2
kubectlgetsvc
kubectldeletesvc服务名
查看Init 初始化进程日志
kubectl log podName -c initNmae
1
kubectllogpodName-cinitNmae
如果安装完master节点后24小时内没有将work加入,则需要重新生成token
kubeadm token create --print-join-command 重新创建一条token
#然后使用kubeadm join加入
----------------------------
STATUS
Init:0/2 总共有2个初始化进程正在初始化
1
2
3
4
5
6
kubeadmtokencreate--print-join-command重新创建一条token
#然后使用kubeadm join加入
----------------------------
STATUS
Init:0/2总共有2个初始化进程正在初始化
最后编辑:2020-03-17作者:shooter
这个作者貌似有点懒,什么都没有留下。
更多推荐
所有评论(0)