kubectl管理kubernetes集群 K8S



#查看集群节点

kubectl get nodes 


#查看版本

kubectl version


#建立pod

kubectl run nginx --image=nginx --port=80 --replicas=2

kubectl run nginx --image=docker.io/nginx --replicas=1 --port=9000


#后续扩容

kubectl scale --replicas=3 deployment/nginx


kubectl get deployment 

kubectl get pods

kubectl get pods -o wide


#想要删除一个容器的时候,

#kubectl get pod 删除了之后还依然有,这个是因为创建deployment的时候参数--replicas=1起作用了。

kubectl delete pod nginx-2187705812-8r0h4


#彻底删除

kubectl delete deployment nginx


#在node1上查看mysql docker实例

docker ps -a


kubectl其他参数:

logs      取得pod中容器的log信息

exec    在容器中执行一条命令

cp        从容器拷出或者想容器中拷入文件

attach    attach到一个运行的容器上


kubectl logs mysql-2261771434-r8td1

kubectl exec mysql-2261771434-r8td1 ls

kubectl exec -it mysql-2261771434-r8td1 bash

# 使用kubectl cp 你的容器实例中必须有tar命令,如果没有的话就会失败,yum install tar net-tools -y 

kubectl cp mysql-2261771434-r8td1:/tmp/hosts /etc/hosts

#拷贝出来

kubectl cp mysql-2261771434-r8td1:/tmp/test.txt /opt/test.txt

#拷贝回来

kubectl cp /opt/test.txt mysql-2261771434-r8td1:/tmp/test.txt

# 用户取得pod中容器的实时信息,可以持续不断实时的取出信息。类似于tail -f

kubectl attach mysql-2261771434-r8td1  


#扩容

kubectl scale deployment nginx-deployment --replicas 10

#如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展:

kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80 

#更新镜像也比较简单:

kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

#回滚到上一个版本:

kubectl rollout undo deployment/nginx-deployment

#也可以使用 --revision参数指定某个历史版本:

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

deployment "nginx-deployment" rolled back


#Deployment 历史记录

-创建 Deployment 的时候使用了--record参数可以记录命令,我们可以很方便的查看每次 revision 的变化。

kubectl rollout history deployment/alpine-fbgweb


REVISION        CHANGE-CAUSE

1               kubectl apply --filename=/data/scripts/app/fbgweb.yaml --record=true

2               kubectl apply --filename=/data/scripts/app/fbgweb.yaml --record=true


-查看单个revision 的详细信息

kubectl rollout history deployment alpine-fbgweb --revision=1


#学习-nginx 部署


#命令查看

kubectl get pods
kubectl get deployment


#通过端口将应用连接到公网

kubectl expose deployment nginx --port=80 --type=LoadBalancer


# 删除deployment 与service

kubectl delete deployment nginx
kubectl delete service nginx


#配置文件方式

vim nginx-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
    containers:
    - name: nginx
      image: nginx
      imagePullPolicy: IfNotPresent
      ports:
      - containerPort: 80
    restartPolicy: Always


#发布到kubernetes集群中

kubectl create -f nginx-pod.yaml 
pod"nginx"created


#查看pod

kubectl get pods


#定义与之关联的service 文件

vim nginx-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  sessionAffinity: ClientIP
  selector:
    app: nginx
  ports:
    - port: 80
      nodePort: 3008


#创建service

kubectl create -f nginx-svc.yaml


#查看刚刚创建的service

kubectl get service


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回