总结:以下资源访问: 获取特定资源的所有当前资源 获取当前所有资源 获取当前所有资源 获取特定状态 在容器中输入命令行 查看特定日志
随着容器技术的不断发展,K8s 变得越来越流行。 网上关于k8s的文章很多,但大部分都是关于集群部署的。
本文主要介绍作为应用开发者如何使用k8s。
github
准备初步知识
Docker,在学习k8s之前就了解Docker是错误的没有。
工具
brew install kubectl
kubectl是k8s的命令行工具,用于管理k8s集群。 以上是Mac上的安装方法。 其他操作系统请参考官方文档。 当然,您也可以使用仪表板来管理您的容器。
集群
k8s集群。 生产环境通常有cluster集群,测试环境通常有cluster集群。
命名空间
集群中存在不同的命名空间,用于区分不同的业务团队。
Pod
Pod 是 k8s 中最小的可部署单元。 一个 Pod 通常运行一个容器,但也可以运行多个容器。 类似于 docker-compose。
部署
部署用于控制 Pod,例如控制应用程序拥有的 Pod 数量。
配置文件
k8s配置文件的位置是~/.kube/config。 此外,您可以使用 kubectl config 命令查看和更改配置。 使用命令更改配置也会更改配置文件。
配置文件允许您指定集群、命名空间、用户设置以及配置上下文。 以下是配置文件的简化版本。
# 该配置文件配置用户shanyue,集群开发者,dev: v1clusters:- cluster:certificate-authority: contextapiVersion 在 /Users/shanyue/.minikube/ca 中设置。 crt 服务器:https://192.168.99.100:8443 名称:devcontexts:- 上下文:集群:dev 命名空间:业务用户:shanyue 名称:devcurrent-上下文:devkind: Configpreferences: {}users:- 名称:shanyue 用户:客户端-证书:/Users/shanyue/.minikube/client.crt 客户端-密钥:/Users/shanyue/.minikube/client.key
其中当前-context 表示当前上下文。 您还可以使用以下命令设置上下文:
# 显示配置 kubectl config view# 显示集群列表 kubectl config get-clusters# 显示上下文列表 kubectl config get-contexts# 设置当前上下文 kubectl config use-context dev
创建资源
kubectl create表示基于文件(deployment或pod)创建资源。
kubectl run表示根据镜像创建资源。
kubectl create -f app.yamlkubectl run --image=k8s.gcr.io/echoserver:1.10 --port=8080
通常,使用 CI 部署时,您可以使用 kubectl apply 命令根据配置文件更新资源。
一个配置文件可以包含多个设置以及不同类型的部署和服务设置。 以下是使用节点作为服务器语言的示例配置。
apiVersion: v1kind: Servicemetadata: name: app namespace: dev label: name: appspec: ports: - port: 8080 targetPort: 8080 protocol: TCP 选择器: name: app-[k4 ] -apiVersion:扩展/v1beta1kind:部署元数据:名称:应用程序命名空间:开发标签:名称:appspec:模板:元数据:标签:名称:应用程序规范:容器:-名称:应用程序image: Node imagePullPolicy: Always env: - name: PORT value: "8080" ports: - ContainerPort: 8080
访问资源
以下$app Pod名称
# 获取当前上下文下的所有 Deployments kubectl getdeployments# 获取当前上下文下的所有 Podkubectl get pods# 当前集群下的所有存在的 Podkubectl get pods --all [k4 ]namespaces# 获取特定 Pod 的状态 kubectl description pod $app# 在 Pod 容器中输入命令行 kubectl exec [k4 ]it $app bash# 显示 pod 日志 kubectl messages $app
评论前必须登录!
注册