ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kubernetes--k8s之资源的yaml定义与常用命令(pod、deployment、service)

2021-04-26 23:30:19  阅读:501  来源: 互联网

标签:paas kubernetes -- nginx master deployment k8s root


一、pod相关:

yaml语言
pod的yaml文件详解
pod的yaml文件实例
重启pod的方法

二、deployment相关:

deployment的yaml文件详解

# 导出yaml文件
[root@k8s-master paas]# kubectl create deployment nginx --image=nginx:1.14 --dry-run=client -oyaml > nginx-deployment.yaml 
# 修改后的yaml为:
[root@k8s-master paas]# cat nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  namespace: kube-system
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web
    spec:
      nodeSelector:
        nodeName: node
      containers:
      - image: nginx:1.14
        name: nginx
        ports:
          - name: http
            containerPort: 80
            protocol: TCP
        resources: {}
status: {}

# 生成pod
[root@k8s-master paas]# kubectl apply -f nginx-deployment.yaml
[root@k8s-master paas]# kubectl get pod -nkube-system |grep nginx
nginx-6bb96fb8c5-cnw9n               1/1     Running   0          3m34s
nginx-6bb96fb8c5-zcxt7               1/1     Running   0          3m36s
nginx-6bb96fb8c5-zqvlr               1/1     Running   0          3m32s

# 手动扩(缩)容
[root@k8s-master paas]# kubectl scale deployment nginx -nkube-system --replicas=1
# describe deployment中的events能看到扩缩容历史
[root@k8s-master paas]# kubectl describe deployment nginx -nkube-system |grep -A 100 Events
Events:
  Type    Reason             Age                   From                   Message
  ----    ------             ----                  ----                   -------
  Normal  ScalingReplicaSet  48m                   deployment-controller  Scaled up replica set nginx-689f89d84 to 3
  Normal  ScalingReplicaSet  37m                   deployment-controller  Scaled up replica set nginx-689f89d84 to 4
  Normal  ScalingReplicaSet  25m                   deployment-controller  Scaled up replica set nginx-689f89d84 to 11
  Normal  ScalingReplicaSet  25m (x2 over 45m)     deployment-controller  Scaled down replica set nginx-689f89d84 to 1
  Normal  ScalingReplicaSet  20m                   deployment-controller  Scaled up replica set nginx-9b586479c to 1
  Normal  ScalingReplicaSet  20m                   deployment-controller  Scaled down replica set nginx-689f89d84 to 0
  Normal  ScalingReplicaSet  16m                   deployment-controller  Scaled down replica set nginx-9b586479c to 2
  Normal  ScalingReplicaSet  16m                   deployment-controller  Scaled up replica set nginx-6bb96fb8c5 to 2
  Normal  ScalingReplicaSet  7m44s (x2 over 18m)   deployment-controller  Scaled up replica set nginx-9b586479c to 3
  Normal  ScalingReplicaSet  6m53s (x2 over 17m)   deployment-controller  Scaled up replica set nginx-6bb96fb8c5 to 1
  Normal  ScalingReplicaSet  6m49s (x2 over 16m)   deployment-controller  Scaled down replica set nginx-9b586479c to 1
  Normal  ScalingReplicaSet  6m49s                 deployment-controller  Scaled up replica set nginx-6bb96fb8c5 to 3
  Normal  ScalingReplicaSet  6m47s (x10 over 16m)  deployment-controller  (combined from similar events): Scaled down replica set nginx-9b586479c to 0

升级与回滚:

# 升级镜像(--record 记录命令信息方便后期查看)
[root@k8s-master paas]# kubectl set image deployment/nginx nginx=nginx:1.7.9 -nkube-system --record

# 查看升级历史
[root@k8s-master paas]# kubectl rollout history deployment nginx -nkube-system
deployment.apps/nginx
REVISION  CHANGE-CAUSE
1         <none>  # 第一次升级没有加--record,所以看不到命令信息
4         kubectl set image deployment/nginx nginx=nginx:1.9.1 --namespace=kube-system --record=true
5         kubectl set image deployment/nginx nginx=nginx:1.7.9 --namespace=kube-system --record=true

# 回滚到上一个版本
[root@k8s-master paas]# kubectl rollout undo deployment nginx -nkube-system
deployment.apps/nginx rolled back

#回退到指定版本
[root@k8s-master paas]# kubectl rollout undo deployment nginx -nkube-system --to-revision=1
deployment.apps/nginx rolled back

# 查看升级与回滚状态
[root@k8s-master paas]# kubectl rollout status deployment nginx -nkube-system
deployment "nginx" successfully rolled out

三、service
#1)ClusterIP 类型

# 生成pod
[root@k8s-master paas]# kubectl apply -f nginx-deployment.yaml
[root@k8s-master paas]#  kubectl get pod -nkube-system | grep nginx
nginx-689f89d84-9x9vl                1/1     Running   0          39m
nginx-689f89d84-l8zm9                1/1     Running   0          39m
nginx-689f89d84-mpb8t                1/1     Running   0          39m
nginx-689f89d84-slvqv                1/1     Running   0          39m

# 生成service的yaml文件,默认type为ClusterIP
[root@k8s-master paas]# kubectl expose deployment nginx --port=80 --target-port=80 --dry-run=client -oyaml -nkube-system> nginx-service.yaml
[root@k8s-master paas]# cat nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: nginx
  namespace: kube-system
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: web
status:
  loadBalancer: {}

# 生成svc
[root@k8s-master paas]# kubectl apply -f nginx-service.yaml
[root@k8s-master paas]# kubectl get svc -nkube-system
NAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   3d6h
nginx      ClusterIP   10.98.9.96   <none>        80/TCP                   48s

# 集群任一节点访问nginx
[root@k8s-node1 ~]# curl 10.98.9.96:80
<!DOCTYPE html>
……
<title>Welcome to nginx!</title>
……
</html>

集群节点ping不通ClusterIP解决办法

2)NodePort类型

# 
# 创建新的service.yaml,其中type: NodePort
[root@k8s-master paas]# cat nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: nginx-nodeport-type
  namespace: kube-system
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: web
  type: NodePort
status:
  loadBalancer: {}

[root@k8s-master paas]# kubectl apply -f nginx-service.yaml
[root@k8s-master paas]# kubectl get svc -nkube-system | grep NodePort
NAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
nginx-nodeport-type   NodePort    10.96.110.166   <none>        80:32529/TCP             9m41s

可以用集群任一节点ip:32529访问nginx,也可以在集群内用CLUSTER-IP访问,
下面是用node节点访问:
在这里插入图片描述
下面是在集群内部用Cluster-IP访问

[root@k8s-node2 ~]# curl 10.96.110.166
<!DOCTYPE html>
……
<h1>Welcome to nginx!</h1>
……
</html>

3)LoadBalancer类型,可使用公有云负载均衡器

标签:paas,kubernetes,--,nginx,master,deployment,k8s,root
来源: https://blog.csdn.net/lzq00277/article/details/116073535

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有