amazon-web-services - 在 AWS 上部署 Terraform Kubernestes 集群
问题描述
我有以下用于 AWS 上的 Kubernestes 集群部署的 Terraform 脚本。部署后,所有资源都在 AWS 上看到,包括 EKS,但没有看到 nginx、varnish、percona 的 kubernetes_deployment。我一直在调试问题,但找不到解决方案。
provider "kubernetes" {
load_config_file = "false"
host = data.aws_eks_cluster.cluster.endpoint
token = data.aws_eks_cluster_auth.cluster.token
cluster_ca_certificate = base64decode(data.aws_eks_cluster.cluster.certificate_authority.0.data)
}
resource "kubernetes_deployment" "nginx" {
metadata {
name = "scalable-nginx"
labels = {
App = "ScalableNginx"
}
}
spec {
replicas = 4
selector {
match_labels = {
App = "ScalableNginx"
}
}
template {
metadata {
labels = {
App = "ScalableNginx"
}
}
spec {
container {
image = "markoshust/magento-nginx:1.18-2"
name = "magento-nginx"
port {
container_port = 81
}
resources {
limits {
cpu = "0.5"
memory = "512Mi"
}
requests {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "nginx" {
metadata {
name = "nginx"
}
spec {
selector = {
App = kubernetes_deployment.nginx.spec.0.template.0.metadata[0].labels.App
}
port {
node_port = 30201
port = 81
target_port = 81
}
type = "NodePort"
}
}
resource "kubernetes_deployment" "magento2-php" {
metadata {
name = "scalable-magento2-php"
labels = {
App = "Scalablemagento2-php"
}
}
spec {
replicas = 4
selector {
match_labels = {
App = "Scalablemagento2-php"
}
}
template {
metadata {
labels = {
App = "Scalablemagento2-php"
}
}
spec {
container {
image = "markoshust/magento-php:7.4-fpm-0"
name = "magento2-php"
port {
container_port = 80
}
resources {
limits {
cpu = "0.5"
memory = "512Mi"
}
requests {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "magento2-php" {
metadata {
name = "magento2-php"
}
spec {
selector = {
App = kubernetes_deployment.nginx.spec.0.template.0.metadata[0].labels.App
}
port {
node_port = 30201
port = 80
target_port = 80
}
type = "NodePort"
}
}
resource "kubernetes_deployment" "redis" {
metadata {
name = "scalable-redis"
labels = {
App = "Scalableredis"
}
}
spec {
replicas = 4
selector {
match_labels = {
App = "Scalableredis"
}
}
template {
metadata {
labels = {
App = "Scalableredis"
}
}
spec {
container {
image = "redis"
name = "redis"
port {
container_port = 80
}
resources {
limits {
cpu = "0.5"
memory = "512Mi"
}
requests {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "redis" {
metadata {
name = "redis"
}
spec {
selector = {
App = kubernetes_deployment.nginx.spec.0.template.0.metadata[0].labels.App
}
port {
node_port = 30201
port = 80
target_port = 80
}
type = "NodePort"
}
}
resource "kubernetes_deployment" "varnish" {
metadata {
name = "scalable-varnish"
labels = {
App = "Scalablevarnish"
}
}
spec {
replicas = 4
selector {
match_labels = {
App = "Scalablevarnish"
}
}
template {
metadata {
labels = {
App = "Scalablevarnish"
}
}
spec {
container {
image = "varnish"
name = "varnish"
port {
container_port = 80
}
resources {
limits {
cpu = "0.5"
memory = "512Mi"
}
requests {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "varnish" {
metadata {
name = "redis"
}
spec {
selector = {
App = kubernetes_deployment.nginx.spec.0.template.0.metadata[0].labels.App
}
port {
node_port = 30201
port = 80
target_port = 80
}
type = "NodePort"
}
}
resource "kubernetes_deployment" "mysqlpercona" {
metadata {
name = "scalable-mysqlpercona"
labels = {
App = "Scalablemysqlpercona"
}
}
spec {
replicas = 4
selector {
match_labels = {
App = "Scalablemysqlperconah"
}
}
template {
metadata {
labels = {
App = "Scalablemysqlpercona"
}
}
spec {
container {
image = "percona"
name = "percona"
port {
container_port = 3306
}
resources {
limits {
cpu = "0.5"
memory = "512Mi"
}
requests {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
}
resource "kubernetes_service" "mysqlpercona" {
metadata {
name = "redis"
}
spec {
selector = {
App = kubernetes_deployment.nginx.spec.0.template.0.metadata[0].labels.App
}
port {
node_port = 30201
port = 3306
target_port = 3306
}
type = "NodePort"
}
}
脚本未部署,我可以在 AWS CLUSTER 中找到该图像。真的需要社区帮助来解决这个问题。谢谢。
解决方案
推荐阅读
- python - 如何识别列中的数字并在该数字中添加特定数字
- javascript - 如何根据文本字段搜索显示列表项?
- c - 无法在 5.8 内核上包含 `linux/config.h`
- linux - 如何修复 64 位 Linux 上的 exec 格式错误?
- firebase - 按 uid 计算唯一的帖子视图
- php - 使用 PHP 的 Dropbox API 获取 Dropbox 中的文件内容
- php - filter_input(INPUT_SERVER, 'REQUEST_URI') 返回 NULL
- html - 在 Safari 中快速滚动时,基础粘性导航会跳跃
- centos - Redhat 停止 CentOS 7 更新,我们需要升级到 CentOS 8 Stream 版本吗?
- javascript - 检查 p 中有多少行文本并存储在变量中