Kubernetes部署速查表
时间:2020-01-09 10:34:20 来源:igfitidea点击:
Kubernetes配置通常用YAML文件编写,并且特定的语法通常很难记住。更糟糕的是,必须记住要记住为每个资源使用哪个apiVersion。
在本文中,我将提供一些快速创建和应用YAML清单新部署的方法。
部署YAML模板
以下是基本部署YAML清单的示例。它创建了一个名为hello-world-deployment的部署,该部署为hello-world-app设置了3个容器的copysetSet状态。
apiVersion: apps/v1 kind: Deployment metadata: name: hello-world-deployment spec: replicas: 3 selector: matchLabels: app: hello-world-app template: metadata: labels: app: hello-world-app spec: containers: - image: gcr.io/my-project/hello-world-app name: hello-world-app ports: - containerPort: 80
就像上面的示例一样,记住飞行中的部署清单的结构可能很棘手。
使用Kubectl生成部署清单
我们可以使用kubectl run命令生成一个新的部署清单。以下示例将为Kubernetes集群创建一个新的部署清单。
kubectl create deployment hello-world-deployment --image=hello-world-app:1.0.0 --dry-run -o yaml
该命令的两个最重要的部分是--dry-run
和-o yaml
。第一个标志阻止kubectl将请求发送到Kuberentes api-controller,第二个标志指示输出以YAML格式设置。
执行后,以下内容将输出到屏幕,我们可以根据需要将其通过管道传输到文件。
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: hello-world-deployment name: hello-world-deployment spec: replicas: 1 selector: matchLabels: app: hello-world-deployment strategy: {} template: metadata: creationTimestamp: null labels: app: hello-world-deployment spec: containers: - image: hello-world-app name: hello-world-app resources: {} status: {}
尽管输出将提供一个良好的起点,但需要进行一些清理。通过从清单文件中删除不必要的字段,我们将得到以下内容。
apiVersion: apps/v1 kind: Deployment metadata: name: hello-world-deployment spec: replicas: 3 selector: matchLabels: app: hello-world-deployment strategy: {} template: metadata: labels: app: hello-world-deployment spec: containers: - image: hello-world-app name: hello-world-app
将部署应用于Kubernetes集群
要在Kubernetes集群上创建部署,我们将需要运行kubectl apply命令。
kubectl apply -f hello-world-deployment.yml