Docker Kubernetes 命令行创建Pod
Docker Kubernetes 命令行创建Pod
环境:
- 系统:Centos 7.4 x64
- Docker版本:18.09.0
- Kubernetes版本:v1.8
- 管理节点:192.168.1.79
- 工作节点:192.168.1.78
- 工作节点:192.168.1.77
管理节点:创建并运行Nginx镜像
kubectl run nginx --image=nginx --replicas=3
kubectl run:运行容器 nginx:服务名 --image:镜像名称 --replicas:副本数
命令:kubectl get pods NAME READY STATUS RESTARTS AGE nginx-7c87f569d-7wtw6 1/1 Running 1 18h nginx-7c87f569d-cvhw5 1/1 Running 1 18h nginx-7c87f569d-jq49n 1/1 Running 1 18h
1、创建内网访问的service
管理节点:创建service通过deployment资源管理,并暴露一个内网访问地址
kubectl expose deployment nginx --port=88 --target-port=80
kubectl expose deployment 发布服务名 --port=暴露端口 --target-port=容器端口
注:同过kubernetes负载均衡暴露出一个唯一的IP地址。
命令:kubectl get service nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx ClusterIP 10.10.10.187 <none> 88/TCP 1m
工作节点:测试内网访问
curl -I 10.10.10.187:88
HTTP/1.1 200 OK Server: nginx/1.15.6 Date: Thu, 22 Nov 2018 07:00:44 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 06 Nov 2018 13:32:09 GMT Connection: keep-alive ETag: "5be197d9-264" Accept-Ranges: bytes
2、创建内网访问基础上,创建外网访问暴露端口
管理节点:创建Service通过deployment 并暴露88端口(在88端口负载TCP流量)
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80
kubectl expose deployment 资源名 --port=暴露内网端口 --type=协议类型 --target-port=容器端口
管理节点:查看外网暴露端口
kubectl get service nginx
# 32428为外网暴露随机端口 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx NodePort 10.10.10.134 <none> 88:32428/TCP 4m
外网测试访问
curl -I http://192.168.1.78:32428
HTTP/1.1 200 OK Server: nginx/1.15.6 Date: Thu, 22 Nov 2018 07:16:30 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 06 Nov 2018 13:32:09 GMT Connection: keep-alive ETag: "5be197d9-264" Accept-Ranges: bytes