2. Kubernetes组件实操收起
2.1 查看Kubernetes状态
(1)查看节点状态。
代码语言:javascript复制 kubectl get node
(2)查看现有命名空间。
代码语言:javascript复制 kubectl get namespace
(3)创建命名空间。
代码语言:javascript复制 kubectl create namespace new-namespace
(4)再次查看命名空间列表。
代码语言:javascript复制 kubectl get namespace
(5)删除新创建的命名空间。
代码语言:javascript复制 kubectl delete namespace new-namespace
3. 部署实验收起
3.1 运行第一个部署
(1)创建一个部署。
代码语言:javascript复制 kubectl create deployment mydep --image=nginx
(2)通过命令行查看部署。
代码语言:javascript复制 kubectl get deploy
(3)使用kubectl describe命令查看资源对象的详细信息。
代码语言:javascript复制 kubectl describe deployment mydep
(4)通过CCE控制台查看部署。点击控制台中的工作负载—>无状态负载,可以看到创建的工作负载mydep。
3.2 使用kubectl命令行工具查看对象
(1)使用kubectl get命令,get all可以查看所有对象。
代码语言:javascript复制 kubectl get all
(2)查看指定命名空间的对象。
代码语言:javascript复制 kubectl get all -n kube-system
(3)以交互模式查看对象的变化,按ctrl c退出交互模式。
代码语言:javascript复制 kubectl get deployment -w
(4)查看完整的对象信息。
代码语言:javascript复制 kubectl get deployment -o wide
3.3 创建自定义部署
(1)在master节点创建/labfile/deployfile目录,用于保存配置文件。后续创建deployment的yaml文件保存在此处。
代码语言:javascript复制 cd /
mkdir labfile
cd labfile/
mkdir deployfile
cd deployfile/
(2)创建部署文件。
代码语言:javascript复制 vim nginx-deployment.yaml
按'i'键进行编辑,文件内容如下:
代码语言:javascript复制 apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
(3)按Esc键退出编辑,输入“:wq”保存并退出,部署nginx-deployment。
代码语言:javascript复制 kubectl apply -f nginx-deployment.yaml
(4)查看创建结果。
代码语言:javascript复制 kubectl describe deployment nginx-deployment
kubectl get deployment
(5)查看Pod(等待约 2分钟,才会显示 Running状态)。
代码语言:javascript复制 kubectl get pod
(6)同样的,可以在CCE控制台中,刷新一下查看副本数及pod。
点击nginx-deployment,进入工作负载详情,下拉,在实例列表中可以看到pod的名称。
3.4 弹性伸缩部署
(1)编辑之前创建的nginx-deployment.yaml文件,将副本数量“replicas”改为5。
代码语言:javascript复制 vim nginx-deployment.yaml
按“i”键进行编辑,编辑第8行replicas的内容:
代码语言:javascript复制 apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 5
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
(2)按Esc键退出编辑,输入“:wq”保存并退出,然后应用变更后的nginx-deployment.yaml文件。
代码语言:javascript复制 kubectl apply -f nginx-deployment.yaml
(3)查看pod状态,确认Pod数量是否正确。
代码语言:javascript复制 kubectl get pod
(4)回到刚才实例列表页面,刷新一下可以看到pod实例扩展到5个了。
(5)删除创建的部署。
代码语言:javascript复制 kubectl delete deployment nginx-deployment
4. 守护程序集实验收起
DaemonSet 可以做一个守护进程的控制器。此处实验以fluentd日志收集系统为例,进行部署。
4.1 使用守护程序集
(1)创建文件夹,用于保存DemmonSet和Job文件。
代码语言:javascript复制 mkdir /labfile/daemonfile
cd /labfile/daemonfile/
(2)创建DaemonSet的yaml文件。
代码语言:javascript复制 vim DaemonSet.yaml
按“i”键进行编辑,内容如下:
代码语言:javascript复制 apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
namespace: kube-system
labels:
k8s-app: fluentd-logging
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
containers:
- name: fluentd-elasticsearch
image: fluent/fluentd:v1.4-1
(3)按Esc键退出编辑,输入“:wq”保存并退出,然后创建DaemonSet。
代码语言:javascript复制 kubectl apply -f DaemonSet.yaml
(4)查看创建的DaemonSet。此处, 需要在命令行中通过--namespace=kube-system指定namespace kube-system 。若不指定,则只 返回默认命名空间 default中的资源。实验中只有一个Node节点,所以运行的fluentd也只有1个。
代码语言:javascript复制 kubectl get daemonset --namespace=kube-system
(5)查看DaemonSet中Pod信息。
代码语言:javascript复制 kubectl get pod --namespace=kube-system -o wide
(6)在CCE控制台中,可以查看守护进程集DaemonSet。因为上面步骤创建DaemonSet指定了命名空间,所以命名空间选择kube-system。
可以点击工作负载名称,进入实例列表,查看实例的详情信息。
4.2 DaemonSet自动恢复
删除任意一个 Pod。
注意:用4.1步骤第(5)处查询的Pod名称替换下方命令中的【Pod名称】
代码语言:javascript复制 kubectl delete pod 【Pod名称】 --namespace=kube-system
查看DaemonSet自动恢复功能。
代码语言:javascript复制 kubectl get pod --namespace=kube-system
退出弹性云服务器ECS,本实验结束。
代码语言:javascript复制 exit