最困难的耗时间 | kubernetes-the-hard-way
工具:
kubectl
1 | # 节点 |
1 | # 查看当前 minikube 生成集群的基本信息 |
minikube
使用minikube创建虚拟机,在VirtualBox里面
需要安装kubernetskubectl brew install kubectl
1 | # 创建单节点的 K8s 集群 |
- 阿里云安装
minikube
1 | # Mac OSX 验证 |

pod
最小的调度单位
1 | apiVersion: v1 |
1 | kubectl create -f pod_nginx.yml |
1 | ~ kubectl get pods |
1 | ~ kubectl get pods -o wide |
横向扩展
ReplicsSet:v1版本不支持,扩展ReplicationController
1 | kubectl get pods |
1 | apiVersion: apps/v1 |
Deployments
- example yaml file
1 | apiVersion: apps/v1 |
1 | # 操作示例 |

看 NAME 会一层一层的加
升级 image
实现平滑升级,过渡
1 | # 对 image 升级 |

回滚
1 | $ kubectl get rs |
Service
port simple example
1 | # 创建 |
对外服务的三种方式(端口)
kubectl exposeyaml文件定义serviceClusterIP(外界无法访问)NodePort(绑定到Node,对外提供访问的)LoadBalancer(云服务商提供)
- DNS
ClusterIP
内部网络
1 | # ClusterIP |
Rolling Update todo,task
NodePort
对外提供访问
1 | # pod_nginx.yml |
example
1 | # 创建 pod |
通过yaml文件创建service
1 | # service_nginx.yml |
1 | # lables |
lable
1 | # 先创建 pod |
1 | # pod_busybox.yml |
生产环境一般不用ClusterIP、NodePort,而是LoadBalance、ExternalName。
LoadBalance
external-dns