目录
列举一下会用到的docker国内加速镜像
将以下内容写入/etc/docker/daemon.json
即可
daemon.json
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "registry-mirrors": [ "https://ccr.ccs.tencentyun.com", "https://docker.m.daocloud.io", "https://docker.imgdb.de", "https://docker-0.unsee.tech", "https://docker.hlmirror.com", "https://docker.1ms.run", "https://func.ink", "https://lispy.org", "https://docker.xiaogenban1993.com" ] }
|
Pod
基础命令
创建一个nginx Pod
1 2 3 4 5 6
| #创建一个nginx pod #--image 指定镜像 #-n 指定命名空间 kubectl run mynginx --image=nginx:1.14 -n swgx #镜像也可以指定完整镜像地址 kubectl run mynginx --image=docker.1ms.run/nginx:latest -n swgx
|
获取Pod的信息
1 2 3 4
| #获取pod信息 #-o wide 显示更详细的信息 kubectl get pod -n swgx kubectl get pod -o wide -n swgx
|
查看指定Pod的详情
1 2
| #查看pod详细信息 kubectl describe pod mynginx -n swgx
|
查看Pod的运行日志(容器启动命令的输出内容)
1 2
| #查看pod的运行日志 kubectl logs mynginx -n swgx
|
测试部署成功的nginx
1 2
| #查看部署成功的nginx,ip可以在'kubectl get pod -o wide -n swgx'这条命令看到 curl 172.168.224.37:80
|
以命令行的形式进入pod
1 2
| #以命令行的形式进入pod kubectl exec -n swgx -it mynginx -- /bin/bash
|
删除Pod
1 2
| #删除pod kubectl delete pod mynginx -n swgx
|
YAML方式创建Pod
创建nginx-swgx.yaml
并写入如下内容
nginx-swgx.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| apiVersion: v1
kind: Pod metadata: name: mynginx namespace: swgx spec: containers: - name: nginx image: docker.1ms.run/nginx:latest ports: - containerPort: 80 volumeMounts: - name: nfs-data mountPath: /usr/share/nginx/html volumes: - name: nfs-data nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067/webserverextensions/www/help/webapi
|
创建Pod
1 2 3
| #yaml方式创建pod #-f 指定yaml文件 kubectl create -f nginx-swgx.yaml
|
实际部署
先运行一个可以持续存在的进程保证容器持久存在,然后进入容器进行wisemap的依赖项配置
创建wisemap_tmp.yaml
并写入如下内容,这会创建一个容器运行tail
进程保证容器的存在
wisemap_tmp.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| apiVersion: v1 kind: Pod metadata: name: wisemap namespace: swgx spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["tail"] args: ["-f", "/dev/null"] volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 volumes: - name: nfs-wisemap nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067
|
然后进入容器进行依赖项配置并测试服务能否启动,测试完成后删除Pod以及wisemap_tmp.yaml
1 2 3 4
| #进入容器 kubectl exec -n swgx -it wisemap -- /bin/bash #配置wisemap完成之后删除Pod kubectl delete pod wisemap -n swgx
|
接下来正式创建wisemap Pod
创建wisemap.yaml
并写入如下内容
wisemap.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| apiVersion: v1 kind: Pod metadata: name: wisemap namespace: swgx spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["/opt/WiseMapGisServer-v6.2.0-28067/server/bin/mgserver.sh"] volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 - name: wisemaphttp image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: [ "/opt/WiseMapGisServer-v6.2.0-28067/webserverextensions/apache2/bin/apachectl", ] args: ["-D", "FOREGROUND"] ports: - containerPort: 8008 volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 volumes: - name: nfs-wisemap nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067
|
创建wisemap Pod
1
| kubectl create -f ./wisemap.yaml
|
发送一个创建session的请求来验证是否部署成功
1
| kubectl describe pod wisemap -n swgx | grep "^IP: " | awk '{print $2}' | xargs -i curl 'http://{}:8008/WiseMap/mapagent/mapagent.fcgi?OPERATION=CREATESESSION&VERSION=4.0.0&LOCALE=&CLIENTAGENT=&SESSION=' -w '\n'
|
Deployment
基础命令
创建Deployment
1 2 3 4 5
| #创建一个nginx Deployment #--image 指定镜像 #-n 指定命名空间 #--replicas 指定副本数量 kubectl create deployment mynginx --image=docker.1ms.run/nginx:latest -n swgx --replicas=3
|
获取Deployment的信息
1 2
| #获取Deployment的信息 kubectl get deployment -o wide -n swgx
|
查看指定Deployment的详情
1 2
| #查看Deployment详细信息 kubectl describe deployment mynginx -n swgx
|
删除Deployment
1 2
| #删除Deployment kubectl delete deployment mynginx -n swgx
|
YAML方式创建Deployment
创建nginx-swgx.yaml
并写入如下内容
nginx-swgx.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| apiVersion: apps/v1
kind: Deployment metadata: name: mynginx-deployment namespace: swgx spec: replicas: 3 selector: matchLabels: app: mynginx template: metadata: labels: app: mynginx spec: containers: - name: mynginx image: docker.1ms.run/nginx:latest ports: - containerPort: 80 volumeMounts: - name: nfs-data mountPath: /usr/share/nginx/html volumes: - name: nfs-data nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067/webserverextensions/www/help/webapi
|
创建Deployment
1
| kubectl create -f nginx-swgx.yaml
|
实际部署
创建wisemap.yaml
并写入如下内容
wisemap.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| apiVersion: apps/v1 kind: Deployment metadata: name: wisemap-deployment namespace: swgx spec: replicas: 1 selector: matchLabels: app: wisemap template: metadata: labels: app: wisemap spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["/opt/WiseMapGisServer-v6.2.0-28067/server/bin/mgserver.sh"] volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 - name: wisemaphttp image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: [ "/opt/WiseMapGisServer-v6.2.0-28067/webserverextensions/apache2/bin/apachectl", ] args: ["-D", "FOREGROUND"] ports: - containerPort: 8008 volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 volumes: - name: nfs-wisemap nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067
|
Service
基础命令
暴漏服务
1 2
| kubectl expose deployment mynginx-deployment --port=80 --type=NodePort -n swgx kubectl expose deployment wisemap-deployment --port=8008 --type=NodePort -n swgx
|
获取Service的信息
1 2
| #获取Service的信息 kubectl get service -o wide -n swgx
|
查看指定Service的详情
1 2 3
| #查看Service详细信息 kubectl describe service mynginx-deployment -n swgx kubectl describe service wisemap-deployment -n swgx
|
删除Service
1 2 3
| #删除Service kubectl delete service mynginx-deployment -n swgx kubectl delete service wisemap-deployment -n swgx
|
实际部署
更新wisemap.yaml
wisemap.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| apiVersion: apps/v1 kind: Deployment metadata: name: wisemap-deployment namespace: swgx spec: replicas: 1 selector: matchLabels: app: wisemap template: metadata: labels: app: wisemap spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["/opt/WiseMapGisServer-v6.2.0-28067/server/bin/mgserver.sh"] volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 - name: wisemaphttp image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: [ "/opt/WiseMapGisServer-v6.2.0-28067/webserverextensions/apache2/bin/apachectl", ] args: ["-D", "FOREGROUND"] ports: - containerPort: 8008 volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 volumes: - name: nfs-wisemap nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067 --- apiVersion: v1 kind: Service metadata: name: wisemap-service namespace: swgx spec: selector: app: wisemap ports: - port: 8008 targetPort: 8008 nodePort: 38008 type: NodePort
|
PVC
实际应用
先将服务包拷贝到pvc中
创建wisemap_testpvc.yaml
并写入如下内容
wisemap_testpvc.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| apiVersion: v1 kind: Pod metadata: name: wisemap namespace: swgx spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["tail"] args: ["-f", "/dev/null"] volumeMounts: - name: nfs-wisemap mountPath: /opt/WiseMapGisServer-v6.2.0-28067 - name: swgx-ce-pvc mountPath: /opt/test_pvc volumes: - name: nfs-wisemap nfs: server: 172.16.104.24 path: /home/nfs-master1/test-master1-data-storage-pvc-e94219f3-2ef7-4056-a3b1-d830e4b5bda0/wisemap/WiseMapGisServer-v6.2.0-28067 - name: swgx-ce-pvc persistentVolumeClaim: claimName: swgx-ce-pvc
|
执行如下shell来拷贝服务包
1 2 3 4 5 6 7 8 9 10 11
| #创建Pod kubectl create -f wisemap_testpvc.yaml #进入Pod kubectl exec -n swgx -it wisemap -- /bin/bash #创建目录并拷贝包 mkdir -p /opt/test_pvc/swgx/WiseMapGisServer-v6.2.0-28067 cp -Rpf /opt/WiseMapGisServer-v6.2.0-28067/* /opt/test_pvc/swgx/WiseMapGisServer-v6.2.0-28067/ #退出Pod exit #删除Pod kubectl delete pod wisemap -n swgx
|
创建Deployment
创建wisemap.yaml
并写入如下内容
wisemap.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| apiVersion: apps/v1 kind: Deployment metadata: name: wisemap-deployment namespace: swgx spec: replicas: 1 selector: matchLabels: app: wisemap template: metadata: labels: app: wisemap spec: containers: - name: wisemapserver image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: ["/opt/WiseMapGisServer-v6.2.0-28067/server/bin/mgserver.sh"] volumeMounts: - name: swgx-ce-pvc mountPath: /opt/WiseMapGisServer-v6.2.0-28067 subPath: swgx/WiseMapGisServer-v6.2.0-28067 - name: wisemaphttp image: docker.1ms.run/ubuntu:16.04 env: - name: LANG value: C.UTF-8 - name: LC_ALL value: C.UTF-8 command: [ "/opt/WiseMapGisServer-v6.2.0-28067/webserverextensions/apache2/bin/apachectl", ] args: ["-D", "FOREGROUND"] ports: - containerPort: 8008 volumeMounts: - name: swgx-ce-pvc mountPath: /opt/WiseMapGisServer-v6.2.0-28067 subPath: swgx/WiseMapGisServer-v6.2.0-28067 volumes: - name: swgx-ce-pvc persistentVolumeClaim: claimName: swgx-ce-pvc --- apiVersion: v1 kind: Service metadata: name: wisemap-service namespace: swgx spec: selector: app: wisemap ports: - port: 8008 targetPort: 8008 nodePort: 38008 type: NodePort
|
应用此yaml即可