k8s2

1、rc资源的滚动升级

 

 

 交互式就是手动修改配置文件

 

 

 

 

 

 

 

 升级一个干掉一个始终保证又5个pod运行

 

 

 

 

 

2、svc资源讲解

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 做完记得重启 systemctl restart kube-apiserver.service

 

service帮助pod暴露端口

创建一个service

apiVersion: v1
kind: Service   #简称svc
metadata:
  name: myweb
spec:
  type: NodePort  #默认ClusterIP
  ports:
    - port: 80          #clusterIP
      nodePort: 30000   #node port
      targetPort: 80    #pod port
  selector:
    app: myweb2
 

kubectl scale rc nginx --replicas=2 #调整rc的副本书

kubectl exec -it pod_name /bin/bash #进入pod容器

修改nodePort范围

 
vim  /etc/kubernetes/apiserver
KUBE_API_ARGS="--service-node-port-range=3000-50000"
 

命令行创建service资源

kubectl expose rc nginx --type=NodePort --port=80

service默认使用iptables来实现负载均衡, k8s 1.8新版本中推荐使用lvs(四层负载均衡 传输层tcp,udp)

 

 

 

 

 

 

 

 

 

 

 

 rc滚动升级的时候会创建新的rc,新的rc会创建新的pod,然后新的pod会代替老的pod第一个rc也会被删除

deployment升级是两个rs rs是rc的升级版,再新老替换时pod会删除,但rs只是模板调成0,方便以后回滚

 

 

 

 

 

 

 

3、deployment资源讲解

解决rc问题的痛点

 

 

 

 

 

 

 

 

  

 

 

 

 

 

  

 

 

 

 

 

 

 

 deplon

有rc在滚动升级之后,会造成服务访问中断,于是k8s引入了deployment资源

创建deployment

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  strategy:   
    rollingUpdate:
      maxSurge: 1  
      maxUnavailable: 1 
    type: RollingUpdate
  minReadySeconds: 30
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 10.0.0.11:5000/nginx:1.13
        ports:
        - containerPort: 80
        resources:  
          limits:
            cpu: 100m
          requests:
            cpu: 100m

4、deployment的升级策略和命令行管理

 

 

 

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  strategy:   
    rollingUpdate:
      maxSurge: 1  
      maxUnavailable: 1 
    type: RollingUpdate
  minReadySeconds: 30
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 10.0.0.11:5000/nginx:1.13
        ports:
        - containerPort: 80
        resources:  
          limits:
            cpu: 100m
          requests:
            cpu: 100m

保留两个pod 一次升级升级两个 不定义策略就有默认的策略

deployment升级和回滚

命令行创建deployment

kubectl run nginx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

命令行升级版本

kubectl set image deployment nginx nginx=10.0.0.11:5000/nginx:1.15

查看deployment所有历史版本

kubectl rollout history deployment nginx

deployment回滚到上一个版本

kubectl rollout undo deployment nginx

deployment回滚到指定版本

kubectl rollout undo deployment nginx --to-revision=2

 

 

 

 

 

5、tomcat连接mysql

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6、讲docker-compose项目迁移到k8s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7、k8s的dns讲解

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vi  skydns-rc.yaml
...
  spec:
    nodeName: 10.0.0.13
    containers:
kubectl  create  -f   skydns-rc.yaml
kubectl create -f skydns-svc.yaml

 

 

 

 

 

 秒起,因为省了许多步骤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 两台配置文件都需要修改配置文件 

 

 

 

 

 

 

 

 

 

posted @ 2020-06-03 21:44  大轩123  阅读(255)  评论(0)    收藏  举报