Deployment
运行一个Deployment:kubectl run nginx-deployment --image=nginx:1.7.9 --replicas=2 //创建一个ReplicaSet
查看Deployment状态:kubectl get deployment nginx-deployment
了解更详细信息:kubectl describe deployment nginx-deployment
查看副本信息:
kubectl get replicaset
kubectl describe replicaset nginx-deployment-1260880958 //由Deployment创建
查看Pod:
kubectl get pod
kubectl describe pod nginx-deployment-1260880958-kn8w3 //由Replicas创建
通过YAML创建
kubectl apply -f nginx.yml
nginx.yml内容:
apiVersion: extensions/v1beta1 //当前配置格式的版本
kind: Deployment //要创建的资源类型
metadata:
name: nginx-deployment
spec:
replicas: 2 //副本数量
template: //Pod模板
metadata:
labels: //自定义属性,key-value
app: web_server
spec:
containers:
- name: nginx
image: nginx:1.7.9
nodeSelector:
disktype: ssd //指定将Pod部署到具有label disktype=ssd的Node上
删除资源:kubectl delete deployment nginx-deployment或kubectl delete -f nginx.yml
将Master作为Node:kubectl taint node k8s-master node-role.kubernetes.io/master-
恢复Master Only:kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule
标注node1是配置了SSD的节点:kubectl label node k8s-node1 disktype=ssd
查看label:kubectl get node --show-labels
删除label:kubectl label node k8s-node1 disktype-
查看Kubernetes运行的DaemonSet:
kubectl get daemonset --namespace=kube-system
kubectl get pod --namespace=kube-system -o wide
部署网络:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kind: DaemonSet
metadata:
name: kube-flannel-ds
namespace: kube-system
spec:
template:
spec:
hostNetwork: true //直接使用Node网络,相当于docker run --network=host
containers:
- name: kube-flannel
image:quay.io/coreos/flannel:v0.8.0-amd64
command: ["/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr"]
- name: install-cni
image: quay.io/coreos/flannel:v0.8.0-amd64
command: ["/bin/sh", "-c", "set -e -x; cp -f /etc/kube-flannel/cni-conf.json"]
查看YAML配置:kubectl edit daemonset kube-proxy --namespace=kube-system
kind: DaemonSet
spec:
template:
spec:
containers:
- command:
- /usr/local/bin/kube-proxy
- --kubeconfig=/var/lib/kube-proxy/kubeconfig.conf
- --cluster-cidr=10.244.0.0/16
image: gcr.io/google_containers/kube-proxy-amd64:v1.7.4
name: kube-proxy
status: //当前DaemonSet的运行状态,只能通过kubectl edit查看,也可以查看Deployment,如:kubectl edit deployment nginx-deployment
currentNumberScheduled: 3
desireNumberScheduled: 3
numberAvailable: 3
numberMisscheduled: 0
numberReady: 3
observedGeneration: 1
updatedNumberScheduled: 3
直接在Docker中启动Prometheus Node Exporter:
docker run -d \
-v "/proc:/host/proc" \
-v "/sys:/host/sys" \
-v "/:/rootfs" \
--net=host \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
转换成YAML配置文件node_exporter.yml:
kind: DaemonSet
spec:
template:
spec:
hostNetwork: true //直接使用Host网络
containers:
- name: node-exporter
image: prom/node-exporter
command: //容器启动命令
- /bin/node_exporter
- --path.procfs
- /host/proc
- --path.sysfs
- /host/sys
- --collector.filesystem.ignored-mount-points
- ^/(sys|proc|dev|host|etc)($|/)
volumeMounts: //Host路径映射
- name: proc
mountPath: /host/proc
- name: sys
mountPath: /host/sys
- name: root
mountPath: /rootfs
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
- name: root
hostPath:
path: /
启动DaemonSet:kubectl apply -f node_exporter.yml

浙公网安备 33010602011771号