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

这个作者貌似有点懒,什么都没有留下。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐