1.Kubernetes的資源清單的介紹
官網參考:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#deployment-v1-apps
命令參考:kubectl explain pod
2. 自主式Pod資源清單
[kubeadm@server1 ~]$ mkdir mainfest
[kubeadm@server1 ~]$ cd mainfest/
[kubeadm@server1 mainfest]$ ls
[kubeadm@server1 mainfest]$ vim pod.yml
[kubeadm@server1 mainfest]$ cat pod.yml
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: myapp:v1
[kubeadm@server1 mainfest]$ kubectl create -f pod.yml
pod/myapp created
[kubeadm@server1 mainfest]$ kubectl get pod
NAME READY STATUS RESTARTS AGE
myapp 1/1 Running 0 9s
[kubeadm@server1 mainfest]$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myapp 1/1 Running 0 4m16s 10.244.1.13 server2 <none> <none>
[kubeadm@server1 mainfest]$ curl 10.244.1.13
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[kubeadm@server1 mainfest]$ kubectl delete -f pod.yml ##自主式pod清單的修改需要先刪除在創建
pod "myapp" deleted
[kubeadm@server1 mainfest]$ vim pod.yml
[kubeadm@server1 mainfest]$ cat pod.yml
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: myapp:v2
[kubeadm@server1 mainfest]$ kubectl create -f pod.yml
pod/myapp created
[kubeadm@server1 mainfest]$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myapp 1/1 Running 0 3s 10.244.2.14 server3 <none> <none>
[kubeadm@server1 mainfest]$ curl 10.244.2.14
Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>
3.控制器部署pod清單
[kubeadm@server1 mainfest]$ kubectl delete -f pod.yml
pod "myapp" deleted
[kubeadm@server1 mainfest]$ vim pod2.yml
[kubeadm@server1 mainfest]$ cat pod2.yml
apiVersion: apps/v1
kind: Deployment
metadata:
# Unique key of the Deployment instance
name: deployment-example
spec:
# 3 Pods should exist at all times.
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
# Apply this label to pods and default
# the Deployment label selector to this value
app: nginx
spec:
containers:
- name: nginx
# Run this image
image: myapp:v1
[kubeadm@server1 mainfest]$ kubectl create -f pod2.yml
deployment.apps/deployment-example created
[kubeadm@server1 mainfest]$ kubectl get pod
NAME READY STATUS RESTARTS AGE
deployment-example-7d5c95894c-4snlm 1/1 Running 0 29s
deployment-example-7d5c95894c-88t4h 1/1 Running 0 29s
deployment-example-7d5c95894c-tlxfs 1/1 Running 0 29s
[kubeadm@server1 mainfest]$ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
deployment-example-7d5c95894c-4snlm 1/1 Running 0 60s app=nginx,pod-template-hash=7d5c95894c
deployment-example-7d5c95894c-88t4h 1/1 Running 0 60s app=nginx,pod-template-hash=7d5c95894c
deployment-example-7d5c95894c-tlxfs 1/1 Running 0 60s app=nginx,pod-template-hash=7d5c95894c
[kubeadm@server1 mainfest]$ vim pod2.yml