最近需要使用kubernetes部署一个服务,因为同事之前已经在服务器上用kubernetes部署过其它的服务,所以环境已经配置好,此文省略kubernetes的安装部分,只记录怎么用kubernetes部署一个docker镜像。
前提:需要拥有一个部署完毕并且可以正常运行的k8s集群
步骤1:把镜像推到私有镜像库中
#登录镜像仓库(< username >镜像库登录账号,<registry.cn-beijing.aliyuncs.com>阿里镜像库地址)
sudo docker login --username= <username> <registry.cn-beijing.aliyuncs.com>
>>[sudo]password for root: sudo需要root权限,输入root的密码
>>Password: 输入镜像库的登录密码
#根据imageID给某个镜像添加名称:版本
sudo docker tag < imageID > <registry.cn-beijing.aliyuncs.com/demo_group/demo:1.0.0>
#把命名好的镜像推到已经登录的镜像库
sudo docker push <registry.cn-beijing.aliyuncs.com/demo_group/demo:1.0.0>
步骤2:编辑配置文件
demo.yaml
步骤3:把demo.yaml放到master节点服务器上
scp demo.yaml root@host://root/
步骤4:在master节点上使用kubectl命令来创建一个运行着nginx服务器的容器
kubectl create -f demo.yaml
kubectl 命令
#使用yaml文件创建容器
kubectl create -f demo.yaml
#查看
kubectl get rc #查看rc控制器,rc保证始终pod运行
kubectl get service #查看运行的服务
kubectl get po #查看运行的pod
#删除
kubectl delete rc <ios-demo> #删除rc控制器,会自动停止控制的pod运行
kubectl delete service <ios-demo-service> #删除服务
kubectl <delete po ios-demo-4g67z> #删除pod,但对于有rc控制的pod来说没有意义,因为删除pod后rc会自动重启一个pod,删除rc会自动删除控制的pod
demo.yaml文件
apiVersion: v1 # for versions before 1.6.0 use extensions/v1beta1
kind: ReplicationController
metadata:
name: ios-demo
spec:
replicas: 1
template:
metadata:
labels:
name: ios-demo
spec:
nodeSelector:
zone: video
containers:
- name: ios-demo-containers
image: registry.cn-beijing.aliyuncs.com/demo_group/demo:1.0.0
env:
- name: LANG
value: C.UTF-8
ports:
- containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
name: ios-demo-service
labels:
name:ios-demo-service
spec:
type: NodePort
ports:
- name: djangoport
protocol: TCP
port: 8000 #docker监听端口
targetPort: 8000 #映射到虚拟机的8000端口
nodePort: 32800 #映射到服务器对外端口32800
selector:
name: ios-demo
**注释:<>指代需替换的部分,实际使用时语句不包含该字符
网友评论