面向业务开发者的 k8s 基本命令
随着容器技术的发展,k8s 也越来越火热。在网络 上有许多关于 k8s 的文章,但大部分都是关于集群部署相关的,
而这篇文章主要讲作为应用开发者如何使用 k8s 。
准备
预备知识
- Docker,学习 k8s 之前了解 Docker 是毋庸置疑的。
工具
brew install kubectl 复制代码
kubectl
是 k8s 的命令行工具,用于管理 k8s 集群。以上是 Mac 下的安装方法,其它操作系统参考官方文档。当然,你也可以使用 Dashboard 管理容器。
Cluster
k8s 集群,一般生产环境有一个 Cluster 集群,测试环境有一个 Cluster 集群。
Namespace
在一个 Cluster 会有不同的 Namespace,可以区分不同的业务团队。
Pod
Pod 是 k8s 中最小的可部署单元。一般一个 Pod 运行一个 Container,但是有时也会运行多个 Container。类似 docker-compose。
Deployment
Deployment 用来控制 Pod,比如控制一个应用起几个 Pod。
配置文件
关于 k8s 的配置文件位置在 ~/.kube/config
。另外也可以使用命令 kubectl config
查看以及更改配置,使用命令更改配置的同时,配置文件也会改变。
配置文件可以指定 Cluster
,Namespace
,User
的配置,并设置 Context
。以下是一个简版的配置文件。
# 该配置文件配置了一个用户 shanyue,一个集群 dev,并且设置了 dev 的 context apiVersion: v1 clusters: - cluster: certificate-authority: /Users/shanyue/.minikube/ca.crt server: https://192.168.99.100:8443 name: dev contexts: - context: cluster: dev namespace: Business user: shanyue name: dev current-context: dev kind: Config preferences: {} users: - name: shanyue user: client-certificate: /Users/shanyue/.minikube/client.crt client-key: /Users/shanyue/.minikube/client.key 复制代码
其中 current-context
代表当前上下文,也可以通过以下命令来设置上下文。
# 查看配置 kubectl config view # 查看集群列表 kubectl config get-clusters # 查看 Context 列表 kubectl config get-contexts # 设置当前 Context kubectl config use-context dev 复制代码
创建资源
kubectl create
代表根据文件创建资源,可以是 Deployment,也可以是 Pod。
kubectl run
代表根据镜像创建资源。
kubectl create -f app.yaml kubectl run --image=k8s.gcr.io/echoserver:1.10 --port=8080 复制代码
一般在 CI 中作 deploy 时会使用 kubectl apply
命令,根据配置文件更新资源。
配置文件中可以写多份配置,也可以写 Deployment
,Service
各种 Kind 配置。以下是以 node 作为服务器语言样例的配置。
apiVersion: v1 kind: Service metadata: name: app namespace: dev labels: name: app spec: ports: - port: 8080 targetPort: 8080 protocol: TCP selector: name: app --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: app namespace: dev labels: name: app spec: template: metadata: labels: name: app spec: containers: - name: app image: node imagePullPolicy: Always env: - name: PORT value: "8080" ports: - containerPort: 8080 复制代码
访问资源
以下 $app 代表特定 Pod 的 Name
# 获取当前 Context 下所有的 Deployment kubectl get deployments # 获取当前 Context 下所有的 Pod kubectl get pods # 获取当前 Cluster 下所有的 Pod kubectl get pods --all-namespaces # 获取特定 Pod 的状态 kubectl describe pod $app # 进入某个 Pod 容器里边的命令行 kubectl exec -it $app bash # 查看某个 Pod 的日志 kubectl logs $app
本文转自掘金- 面向业务开发者的 k8s 基本命令
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
k8s与caas--容器云caas平台的落地实践
前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,降低运营门槛。加速向互联网技术和业务的双转型。容器云将对接各类代码托管库,实现自动化持续集成 和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构,轻量级应用部署和运维的理想平台。未来IT界会以容器化应用作为交付的标准。容器云为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。 对于企业来说,容器云价值体现在: 作为内部技术纽带,多应用统一部署平台,提高开发效率,减少运维成本。 平台产品化过程中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。 增加云企...
- 下一篇
配置kubectl客户端通过token方式访问kube-apiserver
使用的变量 本文档用到的变 量定义如下: $ export MASTER_IP=XX.XX.XX.XX # 替换为 kubernetes master VIP $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $ 创建 kubectl config 文件 $ # 设置集群参数 $ kubectl config set-cluster kubernetes \ --insecure-skip-tls-verify=true \ --server=${KUBE_APISERVER} $ # 设置客户端认证参数 $ kubectl config set-credentials crd-admin \ --token=7176d48e4e66ddb3557a82f2dd316a93 $ # 设置上下文参数 $ kubectl config set-context kubernetes \ --cluster=kubernetes \ --user=crd-admin \ --namespace=crd $ # 设置默认上下文 $ kubec...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7安装Docker,走上虚拟化容器引擎之路