Лучший и самый простой способ создать копию dict в обоих Python 2.7 и 3 ...
Чтобы создать копию простого (одноуровневого ) словарь:
1. Используя метод dict (), вместо создания ссылки, которая указывает на существующий dict.
my_dict1 = dict()
my_dict1["message"] = "Hello Python"
print(my_dict1) # {'message':'Hello Python'}
my_dict2 = dict(my_dict1)
print(my_dict2) # {'message':'Hello Python'}
# Made changes in my_dict1
my_dict1["name"] = "Emrit"
print(my_dict1) # {'message':'Hello Python', 'name' : 'Emrit'}
print(my_dict2) # {'message':'Hello Python'}
2. Использование встроенного метода update () для словаря python.
my_dict2 = dict()
my_dict2.update(my_dict1)
print(my_dict2) # {'message':'Hello Python'}
# Made changes in my_dict1
my_dict1["name"] = "Emrit"
print(my_dict1) # {'message':'Hello Python', 'name' : 'Emrit'}
print(my_dict2) # {'message':'Hello Python'}
Чтобы создать копию вложенного или сложного словаря:
Используйте встроенный модуль копирования, который обеспечивает общие операции мелкой и глубокой копии. Этот модуль присутствует как в Python 2.7, так и в 3. *
import copy
my_dict2 = copy.deepcopy(my_dict1)
Создать кластер Kubernetes с помощью terraform очень просто, потому что в конечном итоге сделать кластер Kubernetes в GKE просто, вы просто используете ресурсы google_container_cluster
и google_container_node_pool
, например:
resource "google_container_cluster" "primary" {
name = "${var.name}"
region = "${var.region}"
project = "${var.project_id}"
min_master_version = "${var.version}"
addons_config {
kubernetes_dashboard {
disabled = true
}
}
maintenance_policy {
daily_maintenance_window {
start_time = "03:00"
}
}
lifecycle {
ignore_changes = ["node_pool"]
}
node_pool {
name = "default-pool"
}
}
resource "google_container_node_pool" "default" {
name = "default"
project = "${var.project_id}"
region = "${var.region}"
cluster = "${google_container_cluster.primary.name}"
autoscaling {
min_node_count = "${var.node_pool_min_size}"
max_node_count = "${var.node_pool_max_size}"
}
management {
auto_repair = "${var.node_auto_repair}"
auto_upgrade = "${var.node_auto_upgrade}"
}
lifecycle {
ignore_changes = ["initial_node_count"]
}
node_config {
machine_type = "${var.node_machine_type}"
oauth_scopes = [
"https://www.googleapis.com/auth/cloud-platform",
]
}
depends_on = ["google_container_cluster.primary"]
}
Для более полнофункционального опыта доступны модули терраформ, такие как , этот
. Преобразование существующего кластера значительно сложнее. Если вы хотите использовать terraform import
terraform import google_container_cluster.mycluster us-east1-a/my-cluster
Однако, в своем комментарии вы упомянули о желании преобразовать зональный кластер в региональный кластер. К сожалению, это невозможно в настоящее время
Вы решаете, является ли ваш кластер зональным или региональным при его создании. Вы не можете преобразовать существующий зональный кластер в региональный или наоборот.
blockquote>Ваша лучшая ставка, на мой взгляд, заключается в следующем:
- Создать региональный кластер с помощью terraform, дав кластеру новое имя
- Сделайте резервную копию существующей зоны кластера, используя резервную копию etcd, или более сложную резервную копию, используя heptio-ark
- Восстановите эту резервную копию в региональном кластере