k8s 资源文件基础练习

本文的镜像需自己制作

可以参考Docker进阶(制作镜像,共享卷,网络通信,私有仓库)_kali_yao的博客-CSDN博客​​​​​​

初始化资源文件

]# cat kubeadm-init.yaml 
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.1.21
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: master
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: 192.168.1.100:5000
kind: ClusterConfiguration
kubernetesVersion: v1.17.6
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.254.0.0/16
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs

apache资源文件 

~]# vim apache-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache-example
spec:
  selector:
    matchLabels:
      app: myapp-apache
  replicas: 1
  template:
    metadata:
      labels:
        app: myapp-apache
    spec:
      #nodeName: node-0001
      containers:
      - name: apache
        image: 192.168.1.100:5000/myos:httpd
        ports:
        - protocol: TCP
          containerPort: 80
      restartPolicy: Always
~]# vim httpd-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-example
spec:
  selector:
    matchLabels:
      app: myapp-httpd
  replicas: 3
  template:
    metadata:
      labels:
        app: myapp-httpd
    spec:
      containers:
      - name: httpd
        image: 192.168.1.100:5000/myos:httpd
        ports:
        - protocol: TCP
          containerPort: 80
      restartPolicy: Always
]# cat httpd-example-v1.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-example
spec:
  selector:
    matchLabels:
      app: myapp-httpd
  replicas: 1
  template:
    metadata:
      labels:
        app: myapp-httpd
    spec:
      containers:
      - name: httpd
        image: 192.168.1.100:5000/myos:httpd
        ports:
        - protocol: TCP
          containerPort: 80
      restartPolicy: Always
~]# cat httpd-example-v2.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd-example
spec:
  selector:
    matchLabels:
      app: myapp-nginx
  replicas: 3
  revisionHistoryLimit: 10
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: myapp-nginx
    spec:
      containers:
      - name: nginx
        image: 192.168.1.100:5000/myos:nginx
        ports:
        - protocol: TCP
          containerPort: 80
      restartPolicy: Always
~]# cat deployment-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-example
spec:
  selector:
    matchLabels:
      app: myos
  replicas: 1
  template:
    metadata:
      labels:
        app: myos
    spec:
      containers:
      - name: myos
        image: 192.168.1.100:5000/myos:v1804
        stdin: true
        tty: true
      restartPolicy: Always
~]# cat daemonset-example.yaml 
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daemonset-example
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: myapp1
  template:
    metadata:
      labels:
        app: myapp1
    spec:
      #tolerations:
      #- key: "node-role.kubernetes.io/master"
      #  operator: "Equal"
      #  value: ""
      #  effect: "NoSchedule"
      containers:
      - name: myos
        image: 192.168.1.100:5000/myos:v1804
        stdin: true
        tty: true
      restartPolicy: Always

service服务资源文件 

]# cat service-example.yaml 
---
apiVersion: v1
kind: Service
metadata:
  name: apache-service
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: myapache
  type: ClusterIP
]# cat web-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-example
spec:
  selector:
    matchLabels:
      app: myapp-web
  replicas: 3
  #revisionHistoryLimit: 10
  #strategy:
  #  rollingUpdate:
  #    maxSurge: 25%
  #    maxUnavailable: 25%
  #  type: RollingUpdate
  template:
    metadata:
      labels:
        app: myapp-web
    spec:
      #nodeName: node-0001
      #nodeSelector:
      #  disktype: ssd
      #affinity:
      #  podAffinity:
      #    requiredDuringSchedulingIgnoredDuringExecution:
      #    - labelSelector:
      #        matchExpressions:
      #        - key: app
      #          operator: In
      #          values:
      #          - myapp-php
      #      topologyKey: kubernetes.io/hostname
      #  podAntiAffinity:
      #    preferredDuringSchedulingIgnoredDuringExecution:
      #    - weight: 1
      #      podAffinityTerm:
      #        labelSelector:
      #          matchExpressions:
      #          - key: app
      #            operator: In
      #            values:
      #            - myapp-apache
      #        topologyKey: kubernetes.io/hostname
      containers:
      - name: nginx
        image: 192.168.1.100:5000/myos:nginx
        ports:
        - protocol: TCP
          containerPort: 80
      restartPolicy: Always

pod资源文件 

~]# cat pod-example.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: myapp
spec:
  containers:
  - name: myos
    image: 192.168.1.100:5000/myos:v1804
    stdin: true
    tty: true
  restartPolicy: Always

 apache的service资源文件

~]# cat loadbalance.yaml 
---
apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: myapache
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  clusterIP:
  externalIPs:
  - 192.168.1.101
  type: LoadBalancer

调用pv资源文件 

~]# cat configmap-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  selector:
    matchLabels:
      app: myweb
  replicas: 1
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: php-fpm
        image: 192.168.1.100:5000/myos:php-fpm
      - name: nginx
        image: 192.168.1.100:5000/myos:nginx
        ports:
        - protocol: TCP
          containerPort: 80
        volumeMounts:
        - name: nginx-php
          subPath: nginx.conf
          mountPath: /usr/local/nginx/conf/nginx.conf
      volumes:
      - name: nginx-php
        configMap:
          name: nginx-conf

定时任务资源文件 

~]# cat cronjob-example.yaml 
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-pi
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: 192.168.1.100:5000/myos:v1804
            command: ["sleep",  "30"]
          restartPolicy: OnFailure

]# cat job-example.yaml 
---
apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: 192.168.1.100:5000/myos:v1804
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(500)"]
      restartPolicy: OnFailure

pvc资源文件 

]# cat pvc-example.yaml 
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nfs
spec:
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  selector:
    matchLabels:
      app: web-nfs

调用pvc资源文件 

]# cat php-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-example
spec:
  selector:
    matchLabels:
      app: myapp-php
  replicas: 1
  template:
    metadata:
      labels:
        app: myapp-php
    spec:
      #affinity:
      #  nodeAffinity:
      #    preferredDuringSchedulingIgnoredDuringExecution:
      #    - weight: 1
      #      preference:
      #        matchExpressions:
      #        - key: cpu
      #          operator: In
      #          values:
      #          - high
      #    requiredDuringSchedulingIgnoredDuringExecution:
      #      nodeSelectorTerms:
      #      - matchExpressions:
      #        - key: mem
      #          operator: In
      #          values:
      #          - high
      #          - mid
      containers:
      - name: php-fpm
        image: 192.168.1.100:5000/myos:php-fpm
        ports:
        - protocol: TCP
          containerPort: 9000
      restartPolicy: Always
]# cat volume-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  selector:
    matchLabels:
      app: myweb
  replicas: 1
  template:
    metadata:
      labels:
        app: myweb
    spec:
      nodeSelector:
        kubernetes.io/hostname: node-0003
      containers:
      - name: myos
        image: 192.168.1.100:5000/myos:v1804
        stdin: true
        tty: true
        #volumeMounts:
        #- name: web-site
        #  mountPath: /var/www/html
      - name: apache
        image: 192.168.1.100:5000/myos:httpd
        ports:
        - protocol: TCP
          containerPort: 80
        #volumeMounts:
        #- name: my-cache
        #  mountPath: /var/cache
        #- name: my-data
        #  mountPath: /var/www/html
      #volumes:
      #- name: my-cache
      #  emptyDir: {}
      #- name: my-data
      #  hostPath:
      #    path: /var/webroot
      #    type: DirectoryOrCreate
      #- name: web-site
      #  persistentVolumeClaim:
      #    claimName: pvc-nfs

pv资源文件 

]# cat pv-example.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name:  pv-nfs
  labels:
    app: web-nfs
spec:
  volumeMode: Filesystem
  capacity:
    storage: 10Gi
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /var/webroot
    server: 192.168.1.100

hpa资源文件 

~]# cat hpa-example.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
spec:
  selector:
    matchLabels:
      app: apache
  replicas: 1
  template:
    metadata:
      labels:
        app: apache
    spec:
      containers:
      - name: apache
        image: 192.168.1.100:5000/myos:httpd
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 200m
      restartPolicy: Always

---
apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: apache
  type: ClusterIP

---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: myweb
spec:
  minReplicas: 1
  maxReplicas: 3
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myweb
  targetCPUUtilizationPercentage: 50

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值