博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《三》kubectl命令行管理工具、YAML配置详解
阅读量:6702 次
发布时间:2019-06-25

本文共 2822 字,大约阅读时间需要 9 分钟。

kubectl命令行管理工具

《三》kubectl命令行管理工具、YAML配置详解

kubectl自动补全功能设置

执行:
1、yum install -y bash-completion
2、source <(kubectl completion bash)
3、echo "source <(kubectl completion bash)" >> ~/.bashrc

1、创建

nginx-test:控制器的名称,默认是deployment控制器
--image:nginx:1.14 镜像
--port=80:暴露的端口
--replicas=3:启动3个副本

kubectl run nginx-test --image=nginx:1.14 --port=80 --replicas=3

2、查看

kubectl get pods
kubectl get pods,deployment,replicaset

kubectl api-resources 查看简写的命令

比如:service 就是cs
componentstatuses就是cs

3、若是有异常

kubectl describe pods nginx-test-795c895f4c-zpr87

4、删除

kubectl delete deploy/nginx-test

5、创建好控制器后,将 它发布出去

--port=80:集群内部之间访问的端口
-type=NodePort:指定这个类型,外部能访问
--target-port=80:容器的端口
--name=nginx-service:指定service名称

kubectl expose deployment nginx-test --port=80 --type=NodePort --target-port=80 --name=nginx-service

查看:

ep:Endpoints

《三》kubectl命令行管理工具、YAML配置详解

查看service 被转发到哪个node上

《三》kubectl命令行管理工具、YAML配置详解

安装ipvsadm 这个工具

1、yum install ipvsadm -y

2、查看:

《三》kubectl命令行管理工具、YAML配置详解

3、访问:

端口(34234):

《三》kubectl命令行管理工具、YAML配置详解

过程:访问http://192.168.1.23:34234/ 会通过service 帮你转发到集群端口,集群端口会通过ipvsadm 帮你转发到 3个副本上

4、查看日志:

《三》kubectl命令行管理工具、YAML配置详解

每个节点上都要加上:

vi /opt/kubernetes/cfg/kube-proxy 新增如下(启用lvs,就需要配置一下,可能会有问题):
--masquerade-all=true \

再重启 systemctl restart kube-proxy

《三》kubectl命令行管理工具、YAML配置详解

由kube-proxy 动态帮你完成,转发到哪个pod上

《三》kubectl命令行管理工具、YAML配置详解

5、更新image的版本,现在nginx 版本为1.14,先需要更新到1.15版本

指定控制器名称
nginx-test:容器的名字,可根据kubectl describe deployment/nginx-test 查看

[root@docker ~]# kubectl set image deployment/nginx-test nginx-test=nginx:1.15

6、再访问curl 可以看到nginx版本变为1.15

7、更新有问题需要回滚

kubectl rollout history deployment/nginx-test
kubectl rollout undo deployment/nginx-test 回滚到上一个版本

8、再次验证: 可以看到nginx版本变为1.14

9、删除

如果删除pod,控制器会帮你再新建一个pod,所以需要删除控制器
kubectl delete deploy/nginx-test
kubectl delete svc/nginx-service

《三》kubectl命令行管理工具、YAML配置详解

10、可以进入pod

kubectl exec -it pod名称 bash

YAML详解

YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。后文会说明定义YAML文件创建Pod和创建Deployment。

YAML语法规则:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tal键,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • ”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略

详解

apiVersion: apps/v1 :指定api版本,此值必须在kubectl apiversion中 ;查看版本 kubectl api-versions;v1是稳定版,v1beta1就是测试版

kind: Deployment:指在apps/v1 这个接口中指定资源的类型;Deployment是控制器

metadata: 指的资源Deployment(控制器)的元数据/属性

name: nginx-deployment 指定控制器名称
namespace: default 指定命名空间
labels: 指定标签
app: nginx

spec 指定这个资源(Deployment)内容

replicas: 3 设置3个副本

template: 以下就是容器的设置

metadata: 关联到上面的标签
labels:
app: nginx
spec:
containers:

  • name: nginx 容器的名称
    image: nginx:1.15 镜像
    ports:
    • containerPort: 80 容器的端口
      《三》kubectl命令行管理工具、YAML配置详解

执行:kubectl apply -f deployment.yaml

部署service,将应用发布出去

apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
type: NodePort
ports:

  • port: 80
    targetPort: 80
    selector:
    app: nginx

《三》kubectl命令行管理工具、YAML配置详解

执行:kubectl apply -f deployment-service.yaml

查看:《三》kubectl命令行管理工具、YAML配置详解

《三》kubectl命令行管理工具、YAML配置详解

验证:curl 192.168.1.23:45915 -I
回滚:通过命令回滚

可以写在一个yaml配置文件里,需要用---来分割:

《三》kubectl命令行管理工具、YAML配置详解

《三》kubectl命令行管理工具、YAML配置详解

说明

1、第1和第2 :控制器和pod绑定
2、第2和第3: service需要和pod绑定
3、第3和第4:要设置一样的标签

《三》kubectl命令行管理工具、YAML配置详解

导出现有的ymal文件:

[root@docker demo]# kubectl get deployment/nginx-deployment -o=yaml --export > my-deploy.yaml

转载于:https://blog.51cto.com/jacksoner/2328755

你可能感兴趣的文章
打印九九乘法表
查看>>
TextView 添加属性自带滚动
查看>>
Cisco *** 学习笔记--第一天
查看>>
导出来Domino中所有用户的Internet地址
查看>>
linq关系映射(1)
查看>>
解决python及round函数四舍五入的问题
查看>>
运维85条军规
查看>>
OSPF动态路由协议一致性测试简介
查看>>
for 014
查看>>
Linux 常用命名回忆
查看>>
学习nodejs -02
查看>>
【笔记】给Qt内嵌一个Chrome吧
查看>>
GIT指令
查看>>
php 性能分析工具 xhprof 使用
查看>>
C++Builder 2010深入TForm类之方法
查看>>
Horizon View 网络配置要点
查看>>
java实现spark streaming与kafka集成进行流式计算
查看>>
这个招聘不错!!
查看>>
7月第2周游戏运营类网站/频道:91.com首次第一
查看>>
7月28日全球域名商(国际域名)解析新增量TOP20
查看>>