前提:镜像已上传到Docker私有仓库,k8s 已搭建好。
k8s 常用命令:
#创建pods 或 services
kubectl create -f xxx.yaml
#删除 pods 或 services
kubectl delete -f xxx.yaml
# 删除所有的pods
kubectl delete pods --all --grace-period=0 --force
$ minikube start # 启动集群
$ kubectl get nodes # 查看节点信息
$ hostname # 查看计算机名
$ kubectl cluster-info # 查看集群信息
#部署一个应用
$ kubectl run kubernetes-bootcamp \
--image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
--port=8080
#查看当前pod
$ kubectl get pods
#将容器的端口映射到节点的端口
$ kubectl expose deployment/kubernetes-bootcamp \
--type="NodePort" \
--port 80880
#查看应用被映射到节点的哪个端口
$ kubectl get services
#访问应用
$ curl host01:30463
#查看运行副本数
$ kubectl get deployments
#增加3个副本
$ kubectl scale deployments/kubernetes-bootcamp --replicas=3
#删除其中一个副本
$ kubectl scale deployments/kubernetes-bootcamp --replicas=2
#升级到V2
$ kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
#退回V1版本
$ kubectl rollout undo deployments/kubernetes-bootcamp
- 创建 research-web.yaml
apiVersion: v1
kind: Service
metadata:
name: hiup-tomcat
namespace: default
labels:
app: hiup-tomcat
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30081 #service对外开放端口
selector:
app: hiup-tomcat
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
name: hiup-tomcat #名称
labels:
app: hiup-tomcat #标注
spec:
replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
selector:
matchLabels:
app: hiup-tomcat
template:
metadata:
labels:
app: hiup-tomcat
spec:
containers: #docker容器的配置
- name: hiup-tomcat
image: 192.168.130.129:5000/hiup-tomcat1.0:latest # pull镜像的地址 ip:prot/dir/images:tag
imagePullPolicy: IfNotPresent #pull镜像时机,
ports:
- containerPort: 8080 #容器对外开放端口
-
执行#创建pods 或 services 命令
kubectl create -f tomcat.yaml -
查看# pods 或 services
kubectl get pods
kubectl get services
-
浏览器地址访问
http://192.168.120.157:30081/static/CR/webHtml/login.html
遇到的问题
- k8s 拉取 docker 镜像失败问题
①:docker私有仓库没有上传。-- 在仓库上传,在本地拉取镜像测试。
②:docker私有仓库没有配置当前ip地址。
linux :
cd /etc/docker/
vim daemon.json
配置 私有仓库地址+5000 (默认5000)
重启守护进程
systemctl daemon-reload
重启docker
systemctl restart docker
保证registry 容器启动。
上传到私有仓库:
docker tag research-tomcat:latest 192.168.130.129:5000/research-tomcat:latest
docker push 192.168.130.129:5000/research-tomcat:latest
从私有仓库拉取镜像
docker pull 192.168.130.129:5000/research-tomcat:latest
- 一大片pods ,需要清除,如何清除问题。
执行强制删除所有的pods命令
kubectl delete pods --all --grace-period=0 --force