检查组件运行状态

  1. kubectl get cs
  2. # 输出如下
  3. NAME STATUS MESSAGE ERROR
  4. # 调度服务,主要作用是将 POD 调度到 Node
  5. scheduler Healthy ok
  6. # 自动化修复服务,主要作用是 Node 宕机后自动修复 Node 回到正常的工作状态
  7. controller-manager Healthy ok
  8. # 服务注册与发现
  9. etcd-0 Healthy {"health":"true"}

检查 Master 状态

  1. kubectl cluster-info
  2. # 输出如下
  3. Kubernetes master is running at https://192.168.1.201:6443
  4. KubeDNS is running at https://192.168.1.201:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  5. To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

检查 Nodes 状态

  1. kubectl get nodes
  2. # 输出如下
  3. NAME STATUS ROLES AGE VERSION
  4. kubernetes-master Ready master 118m v1.15.3
  5. kubernetes-node-01 Ready <none> 116m v1.15.3
  6. kubernetes-node-02 Ready <none> 116m v1.15.3

运行第一个容器实例*

  1. # 使用 kubectl 命令创建两个监听 80 端口的 Nginx Pod(Kubernetes 运行容器的最小单元)
  2. kubectl run nginx --image=nginx --replicas=2 --port=80
  3. # 输出如下
  4. kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
  5. deployment.apps/nginx created

查看全部 Pods 的状态

  1. kubectl get pods
  2. # 输出如下
  3. NAME READY STATUS RESTARTS AGE
  4. nginx-7c45b84548-2d6sn 1/1 Running 0 19s
  5. nginx-7c45b84548-g7lqh 1/1 Running 0 19s

查看已部署的服务

  1. kubectl get deployment
  2. # 输出如下
  3. NAME READY UP-TO-DATE AVAILABLE AGE
  4. nginx 2/2 2 2 34s

发布服务*

  1. # 使用负载均衡模式发布服务,让用户可以访问
  2. kubectl expose deployment nginx --port=80 --type=LoadBalancer
  3. # 输出如下
  4. service/nginx exposed

查看已发布的服务

  1. kubectl get services
  2. # 输出如下
  3. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  4. kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 120m
  5. nginx LoadBalancer 10.107.22.149 <pending> 80:30407/TCP 13s

查看服务详情

  1. kubectl describe service nginx
  2. # 输出如下
  3. Name: nginx
  4. Namespace: default
  5. Labels: run=nginx
  6. Annotations: <none>
  7. Selector: run=nginx
  8. Type: LoadBalancer
  9. IP: 10.107.22.149
  10. Port: <unset> 80/TCP
  11. TargetPort: 80/TCP
  12. NodePort: <unset> 30407/TCP
  13. Endpoints: 10.244.140.92:80,10.244.141.223:80
  14. Session Affinity: None
  15. External Traffic Policy: Cluster
  16. Events: <none>

验证是否成功

通过浏览器访问 Node 服务器,此时 Kubernetes 会以负载均衡的方式访问部署的 Nginx 服务,能够正常看到 Nginx 的欢迎页即表示成功

http://192.168.1.[211/212]:30407/

停止服务*

删除已部署的服务

kubectl delete deployment nginx

# 输出如下
deployment.extensions "nginx" deleted

删除已发布的服务

kubectl delete service nginx

# 输出如下
service "nginx" deleted