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-deploymentkubectl 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

 

posted @ 2018-04-20 20:48  AaronCnblogs  阅读(150)  评论(0)    收藏  举报