前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes | 杂记

kubernetes | 杂记

作者头像
Amadeus
发布2022-10-25 17:09:13
2730
发布2022-10-25 17:09:13
举报
文章被收录于专栏:linux技术

前言#

基于centos7.9docker-ce-20.10.18kubelet-1.22.3-0

其他#

用于控制是否优先本地寻找镜像

代码语言:javascript
复制
imagePullPolicy: IfNotPresent

kubectl命令#

kubectl命令的自动补全

代码语言:javascript
复制
yum install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)

一些常用命令

代码语言:javascript
复制
# 查看某个资源的详细信息
kubectl describe <type> <name> -n <namespace>
# 查看pod的日志
kubectl logs <pod> -n <namespace>
# 查看当前支持的api版本
kubectl api-versions

kubectl get#

代码语言:javascript
复制
# 查看所有支持的资源
kubectl api-resources
# 查看集群健康状态
kubectl get cs
# 查看service资源
kubectl get svc/services
# 查看service映射的pod的端口和ip
kubectl get cp/endpoints
kubectl get ns/namespace
# 查看pod
kubectl get pod <podname> -n <namespace>
  -w/--watch: # 实时更新,类似tail的-f选项
  -o wide: # 查看更为详细的信息,比如ip和分配的节点
  -o jsonpath='{.metadata.uid}' # 查看pod的id

kubectl create#

代码语言:javascript
复制
kubectl create <resource> [Options]
  --dry-run=client:  仅尝试运行,不实际运行
  -o, --output='': 输出为指定的格式

namespace#

k8s与docker的namespace不同

docker中的namespace用于容器间的资源隔离

k8s中的namespace用于

  • k8s的抽象资源间的资源隔离,比如pods、控制器、service等
  • 资源隔离后,对这一组资源进行权限控制

创建命名空间及一系列资源

代码语言:javascript
复制
[root@k8s-node1 ~]# kubectl create namespace test
namespace/test created
[root@k8s-node1 ~]# kubectl create deployment my-dep --image=lizhenliang/java-demo --replicas=3 -n test
deployment.apps/my-dep created
[root@k8s-node1 ~]# kubectl expose deployment my-dep --port=80 --target-port=8080 --type=NodePort -n test
service/my-dep exposed
[root@k8s-node1 ~]# kubectl get pods,deployment,svc -n test
NAME                          READY   STATUS    RESTARTS   AGE
pod/my-dep-5f8dfc8c78-7w5nz   1/1     Running   0          41s
pod/my-dep-5f8dfc8c78-gt65r   1/1     Running   0          41s
pod/my-dep-5f8dfc8c78-n4vjd   1/1     Running   0          41s

NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/my-dep   3/3     3            3           41s

NAME             TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/my-dep   NodePort   10.110.205.138   <none>        80:31890/TCP   17s

yaml编写#

通过创建资源获取yaml

代码语言:javascript
复制
kubectl create deployment web --image=nginx:1.19 --dry-run=client -o yaml > deploy.yaml

通过已有资源获取yaml

代码语言:javascript
复制
kubectl get deployment nginx-deployment -o yaml > deploy2.yaml

查看api中的资源及解释

代码语言:javascript
复制
kubectl explain pods.spec.container
kubectl explain deployment

yaml报错排查#

代码语言:javascript
复制
error: error parsing pod-configmap.yaml: error converting YAML to JSON: yaml: line 19: did not find expected '-' indicator

解决

由于yaml文件列表对齐不统一导致的

yaml文件格式要对齐,同一级别的对象要放在同一列,几个空格不重要,不要用tab制表符

代码语言:javascript
复制
# 格式1
ports:
  - port: 80
  
# 格式2
ports:
- port: 80
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言#
  • 其他#
  • kubectl命令#
    • kubectl get#
      • kubectl create#
      • namespace#
      • yaml编写#
        • yaml报错排查#
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档