关注分享主机优惠活动
国内外VPS云服务器

kubernetes | 常用命令【k4】扩容、扩容、回滚

总结:查看版本、查看节点部署步骤、提供名称和镜像地址、查看镜像地址、测试、检索名称、测试使用、排查问题,主要使用以下命令部署资源列表、查看资源详细信息、打印日志。 ,然后运行。 应用配置命令 检查应用是否正在运行 显示结果

显示版本

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 ]训练营

未经允许不得转载:主机频道 » kubernetes | 常用命令【k4】扩容、扩容、回滚

评论 抢沙发

评论前必须登录!