#查看集群节点
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