总结:查看版本、查看节点部署步骤、提供名称和镜像地址、查看镜像地址、测试、检索名称、测试使用、排查问题,主要使用以下命令部署资源列表、查看资源详细信息、打印日志。 ,然后运行。 应用配置命令 检查应用是否正在运行 显示结果
显示版本
kubectl版本
显示节点
kubectl get Nodes
部署应用
步骤:指定部署名称和应用镜像地址(Docker镜像地址) p>
kubectl run kubernetes[ k4 ]bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
另一个示例:
运行测试 --image=preparedman/mytomcat:tagname --port=8088
查看应用
kubectl proxy
测试:curl http://localhost:8001/version
{ "major": "1", "minor": "13" , "gitVersion": "v1.13.3", " gitCommit“:“721bfa751924da8d1680787490c54b9179b1fed0”,“gitTreeState”:“干净”,“buildDate”:“2019-02-01T20:00:57Z”,“goVersion”:“go1.11.5”,“编译器”:“ gc ", "平台": "重新nux/amd64"}
获取 pod 名称
export POD_NAME=$(kubectl get pods -o go-template [ k4][ k4]模板 "{{range .items}}{{.metadata.name}}{{""}}{{end}}")
测试:echo Pod 名称:$ POD_NAME
我使用kubectl进行故障排除
我主要使用以下命令
kubectl get - list resources list resources kubectl destroy - 显示某个资源的详细信息 Show资源详细信息 kubectl logs - 从 pod 中的容器输出日志 kubectl exec - 在 pod 内的容器上运行命令。
获取应用程序配置
应用程序检查是否有
kubectl get pods
检查pod的内容 Container
kubectl 描述 pod
结果为:
名称:kubernetes-bootcamp- 6bf84cb898-jk4jc Namespace:defaultPriority:0PriorityClas。sName: 节点: minikube/172.17.0.72Start Time: Wed, 24 Apr 2019 13:21:58 +0000Labels: pod-template-hash=6bf84cb898 run=kubernetes-bootcampAnnotations: 状态:运行 IP:172.18.0.4 控制器:ReplicaSet/kubernetes-bootcamp-6bf84cb898 容器:kubernetes-bootcamp:容器 ID:docker://55491b363d26b62e432cd4841ed4f65cc5b98e645d172c6ed 88 aebcb4ec 06c 图片:gcr.io/google[k4 ] Samples/kubernetes [ k4]bootcamp:v1 镜像 ID: docker-pullable://jocatalin/kubernetes-bootcamp@sha256:0d6b8ee63bb57c5f5b6156f446b3bc3b3c143d233037f3a2f00e279c8fcc64af 端口: 8080/ TCP 主机端口: P 状态:开始执行:W编辑,2019 年 4 月 24 日 13:22:00 +0000 就绪:True 重新启动:0 环境: 挂载:/var/run/secrets/kubernetes.io/serviceaccount fromdefault-token[k4 ]l7v8b (ro )条件: 类型 状态 已初始化 True Ready True ContainersReady True PodScheduled True Volumes:default-token-l7v8b: 类型:Secret (由 Secret 配置的卷) SecretName:default-token- l7v8b 选项:falseQoS 类别:BestEffortNode - 选择器:容差:node.kubernetes.io/not-ready:NoExecute for 300snode.kubernetes.io/unreachable:NoExecute for 300sEvents:类型原因消息年龄 -- - - ------ ---- -----------正常调度3m6s默认-调度器成功分配默认/kubernetes- bootcamp-6bf84cb898-jk4jc 到 minikube 正常拉取 3m4s kubelet、minikube 容器镜像“gcr.io/google-samples/kubernetes-bootcamp:v1”在机器上 已存在 正常创建 3m4s kubelet、minikube创建容器 正常启动 3m4s kubelet、minikube 启动容器
打印Container日志kubectl日志$POD_NAME中运行命令在容器 b>
中。 示例:获取名为 kubernetes-bootcamp-6bf84cb898-jk4jc 的 pod 的日期。 默认情况下第一个容器容器
kubectl exec kubernetes-bootcamp-6bf84cb898-jk4jc date
重新输入:容器
kubectl execkubernetes-bootcamp-6bf84cb898-jk4jc bash
退出使用
exit
应用程序服务发布服务
kubectl get services
创建新的服务并将其公开给外部流量 b >
kubectl Exposuredeployment/kubernetes-bootcamp --type="NodePort" --port 8080
查看服务的详细信息。
$ kubectl描述服务/kubernetes-bootcamp
结果:
名称:kubernetes-bootcamp命名空间:defaultLabels:run=kubernetes- bootcampAnnotations : 选择器: run=kubernetes-bootcampType: NodePortIP: 10.105.231.53Port: 8080/TCPTargetPort: 8080/TCPNodePort: 32400/TCPEndpoints: 172.18.0.4:8080会话关联性:无外部流量策略:ClusterEvents:
创建值为 的环境变量 NODE_PORT 。 服务公开端口
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template="{{(index .spec.ports 0) . nodePort}}")echo NODE_PORT=$NODE_PORT
测试:
curl $(minikube ip):$NODE_PORT
标签 查看标签
kubectl descriptiondeployment
您应该看到如下行:
Labels : run =kubernetes-bootcamp
label
kubectl get pods -l run=kubernetes-bootcamp
label
kubectl get services -l run=kubernetes-bootcamp
通过pod名称查询服务Get和保存环境变量POD_NAME>
export POD_NAME=$(kubectl get pods -o go-template --template "{{range .items}}{{.metadata.name}}{{""}} {{end}}") 回显 pod 的名称:$POD_NAME
添加新的级别
使用标签命令
kubectl 标签 pod $POD_NAME app=v1
显示:
kubectl 描述 pod $POD_NAME
服务通过label删除服务
kubectl delete service -l run=kubernetes-bootcamp
确认删除:
kubectl get services
验证它没有暴露在集群之外:
curl $(minikube ip ):$NODE_PORT
确保它没有已发布并可在集群中访问:
curl $(minikube ip):$NODE_PORT
p>
kubectl exec -ti $POD_NAMEcurl localhost:8080
为扩展部署配置副本 我会的。 数量为 4
kubectlscaledeployments/kubernetes-bootcamp-。 ]-replicas=4
查看结果:
您可以看到更改的副本设置已生效。
姓名准备-到-可用日期kubernetes-bootcamp 4/4 4 4 3m17s
pod 数量已更改。 显示详细信息
kubectl get pods -o Wide
结果:
NAME READY STATUS RESTARTS AGE IP NOMINATED NODE READINESS GATESkubernetes-bootcamp[ k4] 6bf84cb898-7tbrg 1 /1 运行 0 2 分 50 秒 172.18.0.5 minikube kubernetes-bootcamp-6bf84cb898-fx68f 1/1 运行 0 3 分 52 秒 172.18.0.4 minikube kubernetes-bootcamp[ k4] 6bf84cb898-prgsc 1/1 运行 0 2m50s 172.18.0.6 minikube kubernetes-bootcamp-6bf84cb898[ k4]qv4gc 1/ 1 运行 0 2m50s 172.18.0.7 minikube
查看 4 pod
kubectl destroys/kubernetes-bootcamp
结果:
副本:4 个所需 | 4 个可用 | 0 个不可用
检查负载是否平衡? > b>显示具体IP
kubectl描述services/kubernetes-bootcamp
结果:
端点:172.18.0.2:8080,172.18 。 0.4:8080,172.18.0.6:8080 + 1 更多...
创建环境变量NODE_PORT
export NODE_PORT=$(kubectl get services/kubernetes -bootcamp -o go-template="{{(index .spec.ports 0).nodePort}}")echo NODE_PORT=$NODE_PORT
调用请求
pod中的每个请求都不同
curl $(minikube ip):$NODE_PORT
结果:
事实证明确实有。 > 您好,这里是 Kubernetes Bootcamp! | 执行环境:kubernetes-boOtocamp-6bf84cb898-2l975 | v=1$curl $(minikube ip):$NODE_PORTKubernetes 你好训练营! | 执行环境:kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1$ curl $ (minikube ip):$NODE_PORT 你好,这里是 Kubernetes Bootcamp。 | 执行环境:kubernetes-bootcamp-6bf84cb898-qg5xh | v=1$curl $(minikube ip):$NODE_PORT 你好 bootcamp! zbmj4 | v=1$curl $(minikube ip):$NODE_PORTKubernetes 你好训练营! | 执行环境:kubernetes-bootcamp-6bf84cb898-bn98t | v=1$curl $(minikube ip):$ NODE_PORTKubernetes | bootcamp! | 运行时环境:kubernetes-bootcamp-zbmj4 | v=1$curl $(minikube ip):$NODE_PORTKubernetes 你好 bootcamp! k4]zbmj4 | v=1$ 卡尔 $(Minicube IP):$NODE_PORT 你好 Kubernetes 训练营:kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1
Scale
kubectlscaledeployments/kubernetes- bootcamp --replicas=2## 更新到版本 2 kubectl set imagedeployments/kubernetes- bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
检查更新
查看暴露的 IP 和端口
kubectl description services/kubernetes -bootcamp
结果:
名称:kubernetes -bootcampNamespace :defaultLabels: run=kubernetes-bootcampAnnotations: 选择器: run=kubernetes-bootcampType : NodePortIP: 10.98.28.235Port: 8080/TCPTargetPort: 8080/TCPNodePort: 31419/TCPEndpoints: 172.18.0.10:8080,172.18.0.11:8080,172.18.0.8:8080 + 1 更多... 会话关联性: 无 外部流量策略: ClusterEvents:
创建环境变量
export NODE_PORT=$(kubectl get services/kubernetes-bootcamp -o go-template="{{(index .spec.ports 0).nodePort}} ") echo NODE_PORT=$NODE_PORT
访问:
curl $(minikube ip):$NODE_PORT
结果:
版本 2使用权。 并且每次访问不同的地址。
您好,这里是 Kubernetes 训练营。 | 运行时环境:kubernetes-bootcamp-5bf4d5689b-tcxpf | v=2$curl $(minikube ip):$NODE_PORT 你好 bootcamp! tcxpf | v=2$curl $(minikube ip):$NODE_PORTKubernetes 你好训练营:kubernetes-bootcamp-5bf4d5689b-86c8g | v=2$curl $(minikube ip):$NODE_PORTKubernetes 你好训练营:kubernetes-bootcamp-5bf4d5689b-fx9tf | :$NODE_PORT 你好,这里是 Kubernetes 训练营。 | 执行环境:kubernetes-bootcamp-5bf4d5689b-tcxpf | v=2
检查更新
kubectl 部署状态部署/kubernetes[ k4]bootcamp
回滚
更新到版本 10 p>
kubectl set imagedeployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/ google[k4 ]samples /kubernetes-bootcamp:v10
查看并发现错误 Version Library does not have version 10
kubectl getdeploymentskubectl get podskubectl description pods
错误报告
警告失败 38 秒(77 秒以上 x3)kubelet、minikube 无法拉取镜像 'gcr.io/google-samples/kubernetes-bootcamp:v10': rpc 错误:代码 = 未知 desc = 错误响应来自守护进程的 nse:未找到 gcr.io/google-samples/kubernetes-bootcamp:v10 的清单
执行将滚动
kubectl rollout undodeployments /kubernetes[k4 ]训练营
评论前必须登录!
注册