云原生 | K8s
实战
通过kubectl发布服务
-
创建服务
hello-minikubel
kubectl create deployment hello-minikube1 --image=registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10
-
暴露端口
kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8080
-
访问端口
minikube service hello-minikube1
-
查看所有的deployment服务
kubectl get deployments
查看pods
kubectl get pods
查看services
kubectl get services
或者kubectl get svc
可以知道映射到端口号查看创建的 Pod 和 Service
kubectl get pod,svc -n kube-system
-
删除服务
kubectl delete deployment -n default hello-minikube1 --force --grace-period=0
部署Nginx服务
# 创建一个部署,使用镜像nginx:latest 部署名称为hello-nginx
kubectl create deployment hello-nginx --image=nginx:latest
# 查看部署列表
kubectl get deployments
# 查看pods列表
kubectl get pods
# 查看时间
kubectl get events
# 查看集群配置
kubectl config view
# 导出一个部署的应用 80是容器对外暴露的端口,会被分配一个随机端口以供访问
kubectl expose deployment hello-nginx --type=NodePort --port=80
# 列出hello-nginx的信息 自动打开浏览器
minikube service hello-nginx
Kubernets部署应用
-
定义预期状态,编写deployment.yaml文件
apiVersion: apps/v1 kind: Deployment metadata: name: my-go-app spec: replicas: 1 selector: matchLabels: app: go-app template: metadata: labels: app: go-app spec: containers: - name: go-app-container image: rob1king1/minikube-go resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 3000
Kubernetes Deployment
对象(清单文件的kind
里指定的)表示运行在集群中的应用。文件里还指定了应用需要一个副本运行(replicas
),以及运行的容器名和容器的镜像、资源大小等信息指令生成
kubectl create deployment web --image=nginx -o yaml --dry-run > nginx.yaml
-
使用
deployment.yaml
创建Deployment
对象来运行Go
应用程序的容器kubuctl apply -f delpyment.yaml
kubectl create -f deployment.yaml
-
可以查看pods和services的状态,event的信息
-
暴露应用,可以输出到文件中yaml,然后apply即可
kubectl expose deployment my-go-app --type=NodePort --name=go-app-svc --target-port=3000
-
查看应用的端口和ip地址
//查看ip minikube ip //查看端口 kubectl get svc
-
列出hello-nginx的信息 自动打开浏览器
minkube service go-app-svc
评论区