上一章我们通过kubectl run简单运行了一个.netcore网站,但实际的开发中,我们都是通过yaml来实现的。
1.编写yaml文件
关于yaml文件的格式在此就不多描述了,不熟悉的可以去网上搜一下示例。
apiVersion: apps/v1beta2 #指定版本,支持的版本可以通过kubectl api-versions查询
kind: Deployment #指定类型,这一次我们要创建一个Deployment
metadata: #元数据
name: cys-netcore #delpoyment的名称,必须在deployment中保持唯一
spec: #deployment的详细内容
replicas: 1 #副本数量
selector: #选择器,选择label中的app=cys-netcore的
matchLabels:
app: cys-netcore
template:
metadata:
labels:
app: cys-netcore #指定一个label名为app,值为cys-netcore,对应上面的selector
spec:
containers:
- name: cys-netcore #容器名
image: chenyishi/webdocker_s_provider #镜像
ports:
- containerPort: 1000 #暴漏的端口
env: #环境变量
- name: serverport
value: "1000"
2.运行yaml
kubectl create -f netcore.yaml
我们可以查看创建出来的资源
我们可以查看一下我们指定的label
kubectl get pod cys-netcore-5ffd8bd66b-t5r5x --show-labels
我们也可以根据label查询pod
kubectl get pod -l app=cys-netcore
3.滚动升级kubectl set
kubectl set命令可以执行滚动升级命令模板如下
kubectl set env deployment/cys-netcore serverport=1000 #kubectl set env deployment名 环境变量key=value
查看历史版本
kubectl rollout history deployment.apps/cys-netcore
查看指定版本信息
kubectl rollout history deployment.apps/cys-netcore --revision=5
4.kubectl edit编辑更多信息
kubectl edit deploy/cys-netcore
打开文件后,编辑环境变量,保存退出,即可通过kubectl rollout history查看记录
5.kubectl rollout undo回滚
kubectl rollout undo deploy/cys-netcore #回滚到上一版本
kubectl rollout undo deploy/cys-netcore --to-revision=2 #回滚到指定版本
6.扩容kubectl scale
kubectl scale deployment cys-netcore --replicas=2
7.自动扩容
kubectl autoscale deployment cys-netcore --min=10 --max=20 --cpu-precent=70
8.yaml创建service
创建配置文件
apiVersion: v1
kind: Service
metadata:
name: netcore-service
labels:
app: netcore
spec:
ports:
- port: 1001
targetPort: 1000
selector:
app: cys-netcore
type: NodePort
kubectl create -f netcore-service.yaml
访问测试
9.查看日志 kubectl logs
kubectl logs pod/cys-netcore-5ffd8bd66b-q4b7j
10.查看service的ip节点
kubectl get ep netcore-service