关于后端:一款-k8s-kubectl-命令-人话-翻译插件-离升空操作只有一步之遥

Kubectl OpenAI插件 ✨

原文链接: https://typonotes.com/posts/2023/03/23/kubectl-ai-plugin/

该我的项目是一个kubectl插件,应用OpenAI GPT生成和利用Kubernetes清单。

我的次要动机是防止在开发/测试时找到和收集随机清单。

下载地址

官网首页: https://github.com/sozercan/kubectl-ai

用法

先决条件

kubectl-ai须要OpenAI API密钥或Azure OpenAI服务 API密钥和端点以及无效的Kubernetes配置。

对于OpenAI和Azure OpenAI,您能够应用以下环境变量:

export OPENAI_API_KEY=<your OpenAI key>
export OPENAI_DEPLOYMENT_NAME=<your OpenAI deployment/model name. defaults to "gpt-3.5-turbo">

反对以下模型:

  • code-davinci-002
  • text-davinci-003
  • gpt-3.5-turbo-0301(Azure的部署必须命名为gpt-35-turbo-0301
  • gpt-3.5-turbo
  • gpt-35-turbo-0301

对于Azure OpenAI服务,您能够应用以下环境变量:

export AZURE_OPENAI_ENDPOINT=<your Azure OpenAI endpoint, like "<https://my-aoi-endpoint.openai.azure.com>">

如果设置了AZURE_OPENAI_ENDPOINT变量,则将应用Azure OpenAI服务。否则,它将应用OpenAI API。

装置

  • 从GitHub releases下载二进制文件。
  • 如果您想将其用作[kubectl插件](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/),则将kubectl-ai二进制文件复制到您的PATH。如果不是,则也能够独自应用二进制文件。

标记和环境变量

  • 能够设置-require-confirmation标记或REQUIRE_CONFIRMATION环境变量,以在利用清单之前提醒用户进行确认。默认为true。
  • 能够将-temperature标记或TEMPERATURE环境变量设置在0到1之间。较高的温度将导致更具创意的实现。较低的温度将导致更确定性的实现。默认为0。

示例

创立具备特定值的对象:

$ kubectl ai "create an nginx deployment with 3 replicas"
✨ 尝试利用以下清单:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用/不利用]:
  ▸ 利用
    不利用
$ kubectl ai "scale nginx-deployment to 5 replicas"
✨ 尝试利用以下清单:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用/不利用]:
  ▸ 利用
    不利用

请留神,插件不晓得集群的以后状态(尚未?),因而它将始终生成残缺的清单。

可选的--require-confirmation标记:

$ kubectl ai "create a service with type LoadBalancer with selector as 'app:nginx'" --require-confirmation=false
✨ 尝试利用以下清单:
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

多个对象:

$ kubectl ai "create a foo namespace then create nginx pod in that namespace"
✨ 尝试利用以下清单:
apiVersion: v1
kind: Namespace
metadata:
  name: foo
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: foo
spec:
  containers:
  - name: nginx
    image: nginx:latest
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用/不利用]:
  ▸ 利用
    不利用

致谢和鸣谢

感激 @simongottschlag 在 https://github.com/simongottschlag/azure-openai-gpt-slack-bot上对Azure OpenAI分支的工作,该分支基于 https://github.com/PullRequestInc/go-gpt3

相互吹捧, 共同进步

欢送和我一起学习提高, 如果有什么问题, 能够给我私信留言。 或者

  1. 加我好友 线下探讨。
  2. 关注我的 公众号 – 老麦胖熊猫 或者 B站账户 – 老麦胖熊猫 订阅最新文章和更多精彩内容

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理