kubernetes创建资源对象

1.创建deployment资源对象

# cat nginx-deployment.yml
apiVersion: apps/v1beta2     
kind: Deployment
metadata: 
    name: nginx-deployment
spec:
    replicas: 3
    selector:
      matchLabels:
        app: nginx
    template:              #定义pod的模板
      metadata:            #当前pod的元数据
        labels:            #至少定义一个labels标签,可以创建任意一个key:value
          app: nginx
      spec:                #当前pod的规格说明
        containers:        #容器
          - name: nginx    #容器名字
            image: nginx:1.10
            ports:
            - containerPort: 88

创建deployment资源:            
kubectl create -f nginx-deployment.yml

查看资源信息:
kubectl get deployment
kubectl get rs(ReplicaSet)
kubectl get pods --show-labels
kubectl get pods -l app=nginx
kubectl describe deployment nginx
kubectl describe deployment nginx-deployment

删除资源对象:
kubectl delete -f nginx-deployment.yml
kubectl delete deployment nginx
kubectl delete service nginx

镜像更新:
    镜像更新有如下三种方法:
    1.kubectl set image deployment/nginx-deployment nginx=nginx:latest  
    2.kubectl apply -f nginx-test.yml
    3.kubectl edit deployment/nginx-deployment

查看deployment版本:    
kubectl rollout history deployment/nginx-deployment                  #查看deployment历史版本记录
kubectl rollout history deployment/nginx-deployment --revision=2  #查看deployment指定历史版本

deployment版本回滚:
kubectl rollout undo deployment/nginx-deployment    
kubectl rollout undo deployment/nginx-deployment --to-revision=1

扩缩容:
kubectl scale deployment nginx-deployment --replicas=10
kubectl autoscale deployment nginx-deployment -min=10 -max=15 -cpu-percent=80


2.创建service资源对象

#cat nginx-service.yml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  ports: 
    - port: 80
      targetport: 88
    selector:
      app: nginx


3.创建pod资源对象

# cat pod.yml
apiVersion: v1
kind: Pod
metadata:
  name: pod-test
  labels:
    os: centos
spec:
  containers:
  - name: hello
    image: centos:7
    env:
    - name: Test
      value: "123456"
    command: ["bash","-c","while True;do date;sleep 1;done"]	
  restartPolicy: OnFailure

kubectl create -f pod.yml    
kubectl get pods pod-test
kubectl describe pod pod-test
kubectl replace -f pod.yml --force   #替换资源
kubectl delete pod pod-test
kubectl logs pod-test
kubectl exec -it pod-test bash

 

Pod管理:健康检查
    提供probe机制,有两种类型
        1.livenessProbe
            如果检查失败,将杀死容器,然后根据pod重启策略来决定是否重启
        2.readinessProbe
            如果检查失败,会把pod从服务代理分发后端踢除
    Probe支持以下三种检查方式:
        1.httpGet
            发送http请求,返回200-400范围状态码为成功
        2.exec
            执行shell命令返回0
        3.tcpSocket
            发起tcp socket建立成功

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    os: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
      - containerPort: 80
    livenessProbe:   
      httpGet:
        path: /index.html
        port: 80
  restartPolicy: OnFailure

Pod管理:数据持久化和共享

#emptyDir示例:
apiVersion: v1
kind: Pod
metadata:
  name: emptydirpod
spec:
  containers:
  - image: nginx:7
    name: ednginx
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}
#hostPath示例:
apiVersion: v1
kind: Pod
metadata:
  name: hostpathpod
spec:
  containers:
  - image: nginx:1.10
    name: ednginx
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
  volumes:
  - name: test-volume
    hostPath: 
      path: /data
      type: Directory

Pod管理:httpPort

#httpPort示例
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod2
  labels: 
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
      - name: http
        containerPort: 80
        hostIP: 0.0.0.0
        hostPort: 89
        protocol: TCP
      - name: https
        containerPort: 443
        hostIP: 0.0.0.0
        hostPort: 443
        protocol: TCP

登录地址:http://192.168.116.147:89/ 即可访问nginx页面
kubectl logs nginx-pod2 -f         #-f 相当于tailf命令一样可以实时刷新log


4.创建RC资源对象
...

 

 

 

参考:https://blog.csdn.net/liyingke112/article/details/76155428

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值