`
奔跑的羚羊
  • 浏览: 576404 次
  • 性别: 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
分享到:
评论

相关推荐

    Kubernetes核心实战11

    例如,使用`kubectl run`命令可以快速创建一个Pod,而通过YAML文件则能更精细地定义资源属性,如命名空间(Namespace)。 2. Namespace(名称空间): 名称空间提供了一种在单一集群中隔离资源的方法,允许多个...

    深入浅出Istio:Service Mesh快速入门与实践-072-1421

    如果一个命名空间的标签`sidecar.istio.io/inject`被设置为`enabled`或`true`,那么在该命名空间内创建的新工作负载(Pod)会自动注入Istio Sidecar。相反,如果标签设置为`disabled`或`false`,则不会进行注入。...

    深入浅出Istio Service Mesh快速入门与实践-高清-完整目录-2019年3月

    Spring Cloud 是一个基于 Spring Boot 的框架,用于简化开发分布式系统的服务。它提供了构建云原生应用所需的工具,包括配置管理、服务发现、断路器、智能路由、微批处理、控制总线等。Spring Cloud 在服务网格概念...

    K8S监控模板,用于k8S集群Pod监控

    - kube-state-metrics:收集K8S对象的状态信息,如Pod、Deployment、Service等。 - Prometheus:流行的开源监控系统,可与K8S集成,收集和存储指标。 - Grafana:可视化工具,用于展示Prometheus收集的数据,创建...

    k8s是一个开源的容器编排平台.docx

    - **应用场景**: Pod的设计是为了更好地模拟多进程的应用模型,在单个Pod内可以包含一个Web服务器容器和一个数据库容器,这些容器紧密耦合,共享相同的网络命名空间。 2. **Deployment(部署)** - **定义**: 一...

    kubernetes手册2018最新版_强烈推荐_书签版

    Service定义了访问Pod的方式,提供了一种将一组功能相同的Pod作为一个服务的方式。 2.5 Namespace Namespace用于逻辑上隔离Kubernetes的资源对象,使得在一个集群中可以运行多个应用或项目。 2.6 Deployment ...

    k8s教程-零基础快速入门

    Pod是K8s中最小的可部署单元,它封装了一个或多个紧密关联的容器。Service则用于定义一组Pod的逻辑集合,并提供一种稳定的方式与这些Pod交互。Deployment用来管理Pod的生命周期,包括创建、更新和回滚。ReplicaSet则...

    kubernetes权威指南例子代码,k8s 例子 hello-world

    4. **暴露服务**:为了使外部可以访问到应用,我们需要创建一个Service对象。Service定义了一种访问Pod的方式,比如通过ClusterIP、NodePort或LoadBalancer。对于"hello-world",可能使用NodePort来暴露服务,使得...

    Kubernetes Dashboard实验手册1

    在Dashboard中选择"CREATE FROM TEXT INPUT",然后输入包含Pod定义的YAML代码,如创建一个简单的Nginx Pod。完成后,点击"UPLOAD",Pod将被创建,你可以通过点击Pod名称查看其详细信息。 3. "CREATE FROM FILE"方式...

    The Kubernetes Book 英文原版

    Minikube是一个流行的Kubernetes安装工具,可以在本地机器上快速安装Kubernetes。Google Container Engine(GKE)是Google云平台上的Kubernetes安装方式。 Kubernetes的配置 Kubernetes的配置主要包括Pod、Replica...

    Networking and Kubernetes

    当创建一个Service时,Kubernetes会自动为其分配一个稳定的内部IP地址,并通过DNS解析使其他组件能够轻松发现该服务的位置。 - **Ingress控制器配置**:Ingress控制器的作用在于将来自外部的HTTP或HTTPS请求路由到...

    《Kubernetes权威指南》第2版示例文件.rar

    1. **Pods**:Kubernetes的基本执行单元,一个Pod可以包含一个或多个紧密相关的容器。yaml文件中可能包含了各种Pod配置,如容器镜像、环境变量、卷挂载等。 2. **Deployments**:负责管理Pod的生命周期,确保特定...

    kubernetes指南(中文版)

    Service为一组功能相同的Pod定义了一个访问入口,通过标签选择器来选择Pod。而Deployment则提供了一种声明式的方法来部署和更新Pod以及ReplicaSets。Ingress是一个API对象,管理外部访问到集群内部服务的HTTP和HTTPS...

    K8s架构1

    **Service**是K8s的一个重要概念,它提供了一个稳定的网络标识(Cluster IP)来访问Pod,即使Pod可能生老病死。K8s使用iptables或IPVS实现四层负载均衡,确保Service的稳定性。 **Controller**是K8s中的关键管理...

    k8s docker集群搭建

    - 创建Pod、Service、Deployment等资源对象。 - 使用kubectl命令行工具部署应用。 #### 四、Kubernetes 的优势 - **容器编排**:Kubernetes提供了高级别的容器编排能力,可以轻松管理复杂的容器应用部署。 - **轻...

    kubernetes(k8s)内部署ambry,es,mongodb,mysql,orientdb,rocketmq集群模式的方法

    在k8s中部署Ambry集群,你需要创建一个Deployment来定义Pod的副本数量,以及使用StatefulSet确保持久化存储和有序的Pod标识。配置文件应包括环境变量、容器镜像、存储卷声明和Service定义,以便提供对外访问的端点。...

    Docker+Kubernetes+Jenkins视频教程

    * Deployment:是一个控制器,用于管理Pod的创建、更新和删除。 * Service:是一个网络入口,提供了访问Pod的能力。 * Namespace:是一个用于隔离资源的逻辑分区,提供了资源的多租户能力。 Kubernetes提供了丰富的...

    2.K8S初体验1

    在这个例子中,Pod包含一个名为`myapp-container`的容器,使用`busybox`镜像,并执行简单的命令。 Kubernetes还引入了`Init Containers`,这是一种特殊的容器,它们在主业务容器启动之前运行,通常用于设置环境,如...

Global site tag (gtag.js) - Google Analytics