k8s运行的服务是 kubectl,一般这个服务要设置默认开机启动
1 |
systemctl enable kubelet.service |
kubectl 命令
1.查看pod
1 |
kubectl get pod |
查看更详细pod内容
1 |
kubectl get pod -o wide |

查看单个pod的当前状态
1 |
kubectl describe pod [podName] |

查看某个命名空间下的所有pod -n [命名空间]
1 |
kubectl describe pod -n kube-system |

查看某个命名空间下的pod当前状态
1 |
kubectl describe pod [podName] -n kube-system |

进入到pod里的容器内部
1 |
kubectl -n kube-system exec -it kube-flannel-ds-amd64-p279l sh |

创建启动pod
–replicas 创建的副本数
1 2 3 4 |
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 |

注意:注:如果run之后,容器一直无法启动出现ImagePullBackOff,意思是无法获取image镜像,可能你其他节点无法获取镜像,导致无法启动
可以使用describe命令查看这个失败的Pod的明细:
1 |
kubectl describe pod [podName] |
查看刚才创建的nginx-shooter Pod 详细信息
1 2 |
kubectl get pod -o wide kubectl get pod nginx-shooter-6f798d87bd-zb5c7 -o wide |

访问这个pod
1 |
curl 10.244.2.9 |

Pod扩容
1 |
kubectl scale --replicas=3 deployment/nginx-shooter |
查看deployment
1 |
kubectl get deployment |

可以看到副本数增加到了3个
pod容器端口转发/端口映射,expose
1 2 3 4 |
语法: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 |

外部IP访问(将外部ip映射到svc的ip端口上来进行外部ip访问)
1 |
kubectl edit svc nginx-shooter |
进入编辑界面后修改 type: ClusterIP 为 type: NodePort 保存退出

然后svc会分配一个随机端口给外部ip来使用

看到了没 31847,什么意思呢,就是在我们所有的节点都暴露一个32340这样的端口以供外部ip访问,

也就意味着我们把我们的svc的类型改成nodePod这样我们就可以在外部访问到kubenetes内部的服务了。
查看容器日志(如果pod里大于1个容器,那么要加-c [容器名称])
1 2 3 |
kubectl logs [podName] #注意如果pod里容器大于1,则不能使用这种方法访问 kubectl logs -f <pod-name> # 实时查看日志 kubectl log myapp-pod -c test |
删除容器(带副本数的)
1 2 3 4 |
kubectl delete deployment nginx-shooter #先删除控制器数量 kubectl get pod kubectl delete pod [podName] kubectl delete svc nginx-shooter |

删除所有pod
1 2 3 4 |
kubectl delete deployment --all kubectl get pod kubectl delete pod --all kubectl delete svc [服务名称] |
删除服务
1 2 |
kubectl get svc kubectl delete svc 服务名 |
查看Init 初始化进程日志
1 |
kubectl log podName -c initNmae |
如果安装完master节点后24小时内没有将work加入,则需要重新生成token
1 2 3 4 5 6 |
kubeadm token create --print-join-command 重新创建一条token #然后使用kubeadm join加入 ---------------------------- STATUS Init:0/2 总共有2个初始化进程正在初始化 |
- 本文固定链接: https://www.yoyoask.com/?p=2032
- 转载请注明: shooter 于 SHOOTER 发表