本文共 2822 字,大约阅读时间需要 9 分钟。
kubectl自动补全功能设置
执行:1、yum install -y bash-completion2、source <(kubectl completion bash)3、echo "source <(kubectl completion bash)" >> ~/.bashrc1、创建
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 podskubectl get pods,deployment,replicasetkubectl api-resources 查看简写的命令
比如:service 就是cscomponentstatuses就是cs3、若是有异常
kubectl describe pods nginx-test-795c895f4c-zpr874、删除
kubectl delete deploy/nginx-test5、创建好控制器后,将 它发布出去
--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查看service 被转发到哪个node上
安装ipvsadm 这个工具
1、yum install ipvsadm -y2、查看:
3、访问:
端口(34234):
过程:访问http://192.168.1.23:34234/ 会通过service 帮你转发到集群端口,集群端口会通过ipvsadm 帮你转发到 3个副本上
4、查看日志:
每个节点上都要加上:
vi /opt/kubernetes/cfg/kube-proxy 新增如下(启用lvs,就需要配置一下,可能会有问题):--masquerade-all=true \再重启 systemctl restart kube-proxy
由kube-proxy 动态帮你完成,转发到哪个pod上
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-testkubectl rollout undo deployment/nginx-test 回滚到上一个版本8、再次验证: 可以看到nginx版本变为1.14
9、删除
如果删除pod,控制器会帮你再新建一个pod,所以需要删除控制器kubectl delete deploy/nginx-testkubectl delete svc/nginx-service10、可以进入pod
kubectl exec -it pod名称 bashYAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。后文会说明定义YAML文件创建Pod和创建Deployment。
YAML语法规则:
详解
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: nginxspec 指定这个资源(Deployment)内容
replicas: 3 设置3个副本template: 以下就是容器的设置
metadata: 关联到上面的标签labels:app: nginxspec:containers:执行:kubectl apply -f deployment.yaml
部署service,将应用发布出去
apiVersion: v1kind: Servicemetadata:name: nginx-servicelabels:app: nginxspec:type: NodePortports:执行:kubectl apply -f deployment-service.yaml
查看: 验证:curl 192.168.1.23:45915 -I回滚:通过命令回滚可以写在一个yaml配置文件里,需要用---来分割:
说明
1、第1和第2 :控制器和pod绑定2、第2和第3: service需要和pod绑定3、第3和第4:要设置一样的标签导出现有的ymal文件:
[root@docker demo]# kubectl get deployment/nginx-deployment -o=yaml --export > my-deploy.yaml转载于:https://blog.51cto.com/jacksoner/2328755