`
奔跑的羚羊
  • 浏览: 570626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

快速创建一个pod、service

阅读更多
1. 查看机器节点
# kubectl get node



2. 用命令启动一个nginx
#kubectl run my-nginx --image=nginx --replicas=2 --port=80



3. 暴露服务
# kubectl expose deployment my-nginx --port=8080 --target-port=80 --external-ip=x.x.x.168


参数说明
--port 容器的端口
--container-port和target-port是一个意思,指的是宿主机转发的端口,可以随意指定一个,也可以不指定
--external-ip 对外暴露的ip地址,一般用公网IP地址,执行那个命令过后,我们就可以在公网上访问了,但是这里有个问题就是这个IP地址必须是安装了k8s的机器的IP,如果你随便用一个IP是不能访问的,这里也给应用上造成了不便
--type=LoadBalancer

4. 查看pod
# kubectl get po



5. 查看service
# kubectl get svc


# kubectl get service my-nginx


6. 删除
# kubectl delete deployment,service my-nginx



7. 查看子网
通过etcdctl查看node机器的子网分配情况
# etcdctl ls -r |grep subnets
# etcdctl get /coreos.com/network/subnets/10.0.101.0-24



8. 查询pod明细
# kubectl describe po my-nginx-2494149703-2m6sc


初次创建要下载镜像,可能等待的时间比较长
Pod分配到了kube-node-1,容器的ip:10.0.64.2
那么我们在kube-node-1上,测试nginx是否正常启动
# curl http://10.0.64.2


至此,nginx已成功启动

9. 查看service明细
#kubectl describe service/my-nginx


10.254.242.11是Service的虚拟IP地址,对该虚拟地址的8080端口访问会被重定向到两个 Endpoints中的一个;这两个Endpoints就是上面创建的两个Pods.
Kubernetes中的Service使用了虚拟ip地址;该地址无法ping通过,但访问8080端口时,可以访问到对应的资源
# curl http://10.254.242.11:8080



10. 查看iptables的规则
# iptables-save | grep default/my-nginx


访问10.254.242.11/32 8080端口的请求会被重定向到10.0.64.2/32或10.0.101.2/32的80端口。这些规则是由kube-proxy生成;如果需要某台机器可以访问Service,则需要在该主机启动kube-proxy

11. 用文件启动一个nginx
编辑nginx-pod.yaml
# cat nginx-pod.yaml               
apiVersion: v1
kind: Pod
metadata:
        name: nginx-test
        labels:
                app: nginx-test
spec:
        containers:
        - name: nginx-test
          image: nginx
          ports:
          - containerPort: 80
#kubectl create -f nginx-pod.yaml


12. 用文件配置一个Service
# cat nginx_svc.yaml
apiVersion: v1
kind: Service
metadata:
        name: nginx-test
        labels:
                app: nginx-test
spec:
        selector:
                run: nginx-test
        ports:
                protocol: TCP
                port: 8080
                targetPort: 80
# kubectl create -f nginx_svc.yaml





参考:http://kubernetes.io/docs/user-guide/quick-start/

  • 大小: 5.2 KB
  • 大小: 4.3 KB
  • 大小: 4.3 KB
  • 大小: 7.2 KB
  • 大小: 7.5 KB
  • 大小: 6.1 KB
  • 大小: 3.8 KB
  • 大小: 16.3 KB
  • 大小: 56.3 KB
  • 大小: 25.3 KB
  • 大小: 10.9 KB
  • 大小: 22.7 KB
  • 大小: 29.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics