//显示节点信息 kubectl get nodes //显示所有信息(看到pod, rs, deployment) kubectl get all //同时显示pod, service kubectl get pods,svc //创建pod kubectl run [pod的名字] --image=[image的名字] //创建pod的时候apply和create作用一样,用yaml创建pod kubectl apply -f [yaml文件名] 或 kubectl create -f [yaml文件名] //创建pod,并使用pod.yaml作为pod的定义文件 kubectl run [pod的名字] --image=[image的名字] --dry-run=client -o yaml > pod.yaml kubectl apply -f pod.yaml //删除pod kubectl delete pod [pod的名字] //编辑pod kubectl edit pod [pod的名字] //显示pod信息 kubectl get pods //显示更多pod信息 kubectl get pods -o wide //查看某个pod的具体信息 kubectl describe pod [pod的名字] //用yaml创建rc/replicaset kubectl apply -f [yaml文件名] //查看rc kubectl get replicationcontroller //查看replicaset kubectl get replicaset //更改replicaset的yml文件后应用 kubectl replace -f [yaml文件名] //scale replicas to 6 kubectl scale --replicas=6 -f [yaml文件名] 或 kubectl scale --replicas=6 replicaset [replicaset的名字] //这种方法不会改变yaml文件 kubectl scale --replicas=6 deployment [deployment的名字] //这种方法不会改变yaml文件 //查看某个rs的具体信息 kubectl describe replicaset [rs的名字] //编辑rs kubectl edit replicaset [rs的名字] //删除replicaset,并把相关联的所有pod删除 kubectl delete replicaset [rs的名字] //创建deployment kubectl create -f [yaml文件名] //显示deployments kubectl get deployments //把现有的deploment的yaml文件转出来 kubectl get deploment [deploment名] -o yaml > [想要的yaml文件名] //创建service kubectl create -f [yaml文件名] //显示services kubectl get services 或 kubectl get svc //查看service的url minikube service [service名] --url //启动service minikube service [service名]
一般情况一个pod对应一个container,如果需要scale up或scale down一般都是通过加减pod数量而不会去更改container,不过一个pod也可以有多个container,比如我们可能需要第二个container起到存放数据、支持的作用。
1. 用yaml创建PodPod的yaml文件:
apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx2. 用yaml创建Replication Controller和Replica Set
RC的yaml文件:
apiVersion: v1 kind: ReplicationController metadata: name: myapp-rc labels: app: myapp type: front-end spec: //把pod的yaml写下来 template: metadata: name: myapp-pod labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx replicas: 3
Replica Set的yaml文件:
apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp-replicaset labels: app: myapp type: front-end spec: //把pod的yaml写下来 template: metadata: name: myapp-pod labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx replicas: 3 //和rc最大的不同是有selector selector:3. 用yaml创建Deployment
apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment labels: tier: frontend app: nginx spec: template: metadata: name: nginx-2 labels: app: myapp spec: containers: - name: nginx image: nginx replicas: 3 selector: matchLabels: app: myapp4. Update and Rollback
//create并record change kubectl create -f [deployment的yaml文件名] --record //update kubectl apply -f [deployment的yaml文件名] 或 kubectl set image deployment/[deployment的名字] [container名]=[新image名] //rollback kubectl rollout undo deployment/[deployment的名字] //查看rollout status kubectl rollout status deployment/[deployment的名字] kubectl rollout history deployment/[deployment的名字]5. Service
Service Types: NodePort, ClusterIP, LoadBalancer
NodePort的yaml文件:
apiVersion: v1 kind: Service metadata: name: myapp-service spec: type: NodePort ports: //只有port是必须的,如果不写targetPort默认就和port值一样,如果不写nodePort就会在30000-32767自动分配一个 - targetPort: 80 port: 80 nodePort: 30008 selector: app: myapp type: front-end
ClusterIP的yaml文件:
apiVersion: v1 kind: Service metadata: back-end spec: //不写默认也是ClusterIP type: ClusterIP ports: - targetPort: 80 port: 80 selector: app: myapp type: back-end
LoadBalancer的yaml文件(只对云平台如AWS有效):
apiVersion: v1 kind: Service metadata: name: myapp-service spec: type: LoadBalancer ports: - targetPort: 80 port: 806. 编辑pod
//方法1: //编辑pod,在保存时会生成一个临时文件,则delete之前的pod,再用新生成的文件create一个新pod kubectl edit pod [pod的名字] //方法2: kubectl get pod [pod名] -o yaml > [新yaml文件名] //用vi [新yaml文件]来修改,然后delete之前的pod,再用新yaml文件create一个新pod
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)