{"id":7335,"date":"2019-07-10T18:32:27","date_gmt":"2019-07-10T14:02:27","guid":{"rendered":"https:\/\/parspack.com\/?p=7335"},"modified":"2024-07-07T20:09:52","modified_gmt":"2024-07-07T15:39:52","slug":"how-to-install-kubernetes-cluster-on-ubunto","status":"publish","type":"post","link":"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\/how-to-install-kubernetes-cluster-on-ubunto","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648"},"content":{"rendered":"<p style=\"text-align: justify;\">\u0622\u0645\u0648\u0632\u0634 \u0641\u0627\u0631\u0633\u06cc \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633\u061b Kubernetes \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062e\u0627\u0632\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0646 \u0628\u0627\u0632 \u0648 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0645\u06cc \u0628\u0627\u0634\u062f. \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062a\u0648\u0633\u0637 \u06af\u0648\u06af\u0644 \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u062c\u0631\u0628\u06cc\u0627\u062a \u0627\u062c\u0631\u0627\u06cc \u0645\u062e\u0627\u0632\u0646 \u062f\u0631 \u0645\u062d\u0635\u0648\u0644\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af Kubernetes \u0628\u0631 \u0631\u0648\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 Ubuntu \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u06cc\u0645. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u06a9 \u0622\u0645\u0648\u0632\u0634 \u062d\u0631\u0641\u0647 \u0627\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Kubernetes \u0627\u0632 Kubeadm \u0648 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0627\u0632 Ansible \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u0627\u0632 Kubeadm \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc \u0627\u062c\u0632\u0627\u06cc Kubernetes \u0645\u0627\u0646\u0646\u062f API \u0647\u0627\u06cc \u0633\u0631\u0648\u0631\u00a0 \u060c Controller Manager \u0648 Kube DNS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u06cc\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0622\u0646 \u0647\u0627 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0627\u0646\u0646\u062f Ansible \u06cc\u0627 SaltStack \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f. \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 Kubeadm \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633\u062a\u0631 \u0647\u0627 \u06cc\u0627 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u0622\u0646\u0647\u0627 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0648 \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062e\u0637\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"info-box-section\">\n<h2 class=\"title\">\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0627\u0632 \u067e\u0627\u0631\u0633 \u067e\u06a9<\/h2>\n<p class=\"description\" style=\"text-align: justify;\">\u0627\u0632 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0645\u06cc\u200c\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06af\u0631 \u0642\u0635\u062f \u062e\u0631\u06cc\u062f \u0627\u0646\u0648\u0627\u0639 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u067e\u0627\u0631\u0633 \u067e\u06a9 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u06a9\u0627\u0631\u0634\u0646\u0627\u0633\u0627\u0646 \u0641\u0631\u0648\u0634 \u0645\u0627 \u062f\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627\u0634\u06cc\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062c\u0647\u062a \u06a9\u0633\u0628\u200c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0644\u06cc\u0646\u06a9\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/vps\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \" href=\"\/servers\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/dedicated-servers\/linux\" target=\"_blank\" rel=\"noopener\">\u0633\u0631\u0648\u0631 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/cloud-server\/linux\" target=\"_blank\" rel=\"noopener\"> \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 <\/a><\/li>\n<li><a title=\"\u062e\u0631\u06cc\u062f \u0647\u0627\u0633\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633\" href=\"\/host\/linux\" target=\"_blank\" rel=\"noopener\">\u0647\u0627\u0633\u062a \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0627\u0647\u062f\u0627\u0641 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 kubernetes<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af \u0627\u0632 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 :<\/p>\n<ul style=\"text-align: justify;\">\n<li>\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc Master Node<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0631\u0648\u0631\u00a0 Etcd \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062a\u0642\u0633\u06cc\u0645 \u0628\u0627\u0631 \u06a9\u0627\u0631\u06cc \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<ul style=\"text-align: justify;\">\n<li>\n<h4>\u062f\u0648 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc Worker Node \u0647\u0627<\/h4>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0633\u0631\u0648\u0631 \u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648 \u062a\u0642\u0633\u06cc\u0645 \u0628\u0627\u0631 \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646\u0647\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f( \u0645\u0627\u0646\u0646\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u0645\u062e\u0627\u0632\u0646 \u0647\u0627 ). \u0648\u0638\u0627\u06cc\u0641 Worker \u0647\u0627 \u062a\u0648\u0633\u0637 \u0633\u0631\u0648\u0631 Master \u062a\u0642\u0633\u06cc\u0645 \u0628\u0646\u062f\u06cc \u0648 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0648 \u0628\u0627 \u0622\u0646 \u0647\u0627 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u0648 \u06cc\u06a9 \u0633\u0631\u0648\u0631\u00a0 worker \u060c \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0631\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 Master \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f. \u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc worker \u0645\u06cc \u062a\u0648\u0627\u0646 \u0638\u0631\u0641\u06cc\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0627\u062f.<\/p>\n<h3><span style=\"color: #0000ff;\">\u062a\u0627\u0645\u06cc\u0646 \u0645\u0646\u0627\u0628\u0639 Ram \u0648 Cpu<\/span><\/h3>\n<p style=\"text-align: justify;\">\u0628\u0639\u062f \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 kubernetes \u06cc\u06a9 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0645\u062e\u0627\u0632\u0646 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0645\u0646\u0627\u0628\u0639 RAM \u0648 CPU \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f \u062a\u0627\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0642\u0631\u06cc\u0628\u0627 \u062a\u0645\u0627\u0645\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u060c \u0645\u0627\u0646\u0646\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062a\u062d\u062a \u0648\u0628 \u060c \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u060c \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u060c \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af Kubernetes \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u0647\u0633\u062a\u0646\u062f. \u062e\u0648\u062f \u06a9\u0644\u0627\u0633\u062a\u0631 \u0646\u06cc\u0632 \u062d\u062f\u0648\u062f 500-300 MB \u0627\u0632 \u062d\u0627\u0641\u0638\u0647 RAM \u0648 10 \u062f\u0631\u0635\u062f \u0627\u0632 CPU \u0631\u0627 \u0645\u0635\u0631\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0648\u0642\u062a\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u060c \u06cc\u06a9 \u0648\u0628 \u0633\u0631\u0648\u0631 Nginx \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u0647 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631\u0633\u062a \u0627\u0633\u062a.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0646\u0635\u0628 \u06a9\u0648\u0628\u0631\u0646\u062a\u06cc\u0632<\/span><\/h2>\n<ul style=\"text-align: justify;\">\n<li>\u06a9\u0644\u06cc\u062f SSH \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u0647\u0631 \u062f\u0648 \u0633\u0631\u0648\u0631 \u0645\u062d\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0644\u06cc\u062f \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0627\u06af\u0631 \u062a\u0627 \u0627\u0644\u0627\u0646 \u0628\u0627 \u06a9\u0644\u06cc\u062f \u0647\u0627\u06cc SSH \u06a9\u0627\u0631 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/ssh-essentials-working-with-ssh-servers-clients-and-keys#generating-and-working-with-ssh-keys\" target=\"_blank\" rel=\"noopener\">\u0622\u0645\u0648\u0632\u0634 <\/a>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0633\u0647 \u0633\u0631\u0648\u0631 Ubuntu16.04 \u0628\u0627 \u062d\u062f\u0627\u0642\u0644 \u06cc\u06a9 \u06af\u06cc\u06af \u0631\u0645 \u06a9\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a SSH \u0628\u0627 \u06a9\u0644\u06cc\u062f \u0631\u0648\u06cc \u0622\u0646 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<li>\u0628\u0631\u0646\u0627\u0645\u0647 Ansible \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u0645\u062d\u0644\u06cc \u0646\u0635\u0628 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f. \u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0646\u0635\u0628 Ansible \u0635\u0641\u062d\u0647 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Ansible \u062f\u0631 Ubuntu \u0631\u0627 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 Ansible Playbooks\u0647\u0627 . \u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 Playbook \u0647\u0627\u06cc Ansible \u0635\u0641\u062d\u0647 \u0622\u0645\u0648\u0632\u0634 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0646\u0648\u0634\u062a\u0646 Playbook \u0647\u0627\u06cc Ansible \u0631\u0627 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u062f\u0627\u0646\u0634 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0628\u0627 \u062f\u0627\u06a9\u0631 Docker. \u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 \u0627\u0632 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0631\u0627 \u0645\u0631\u0648\u0631 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 &#8211; \u062a\u0646\u0638\u06cc\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631 \u0648 \u0641\u0627\u06cc\u0644 \u0641\u0647\u0631\u0633\u062a Ansible\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 \u0627\u0632\u00a0\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Kubernetes\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u062f\u0647\u06cc \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631\u06cc \u06cc\u0627 \u0647\u0645\u0627\u0646 Workspace \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Ansible \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u06cc\u0627 Local \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0631\u062a\u0628\u0627\u0637 \u0631\u0627\u0647 \u062f\u0648\u0631 \u06cc\u0627 Remote \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0646\u0627\u0645 hosts \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0633\u0631\u0648\u0631\u0647\u0627 \u0627\u0632 \u0642\u0628\u06cc\u0644 \u0622\u062f\u0631\u0633 IP \u0647\u0627 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0647\u0633\u062a\u0646\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0633\u0647 \u0633\u0631\u0648\u0631 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0647 \u0633\u0631\u0648\u0631 \u060c \u0633\u0631\u0648\u0631 master \u0645\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 IP \u0622\u0646 \u0631\u0627 \u0628\u0627 master_ip \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0648 \u0622\u062f\u0631\u0633 IP \u062f\u0648 \u0633\u0631\u0648\u0631 \u062f\u06cc\u06af\u0631 \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 worker \u0647\u0633\u062a\u0646\u062f \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u0647\u0627\u06cc worker_1_ip \u0648 worker_2_ip \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u06cc\u0645.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0627 \u0646\u0627\u0645 kube-cluster\/~ \u062f\u0631 \u0645\u0633\u06cc\u0631 home \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mkdir ~\/kube-cluster\r\ncd ~\/kube-cluster<\/pre>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u060c \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631\u06cc\u00a0 \u0645\u0627 \u06cc\u0627 \u0647\u0645\u0627\u0646 Workspace \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f \u0648 \u0634\u0627\u0645\u0644 playbook \u0647\u0627\u06cc Ansible \u0627\u0633\u062a \u0648 \u062a\u0645\u0627\u0645 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0646\u0627\u0645 kube-cluster\/hosts\/~ \u0628\u0627 \u0627\u0628\u0632\u0627\u0631 nano \u06cc\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 \u0645\u0648\u0631\u062f \u0646\u0638\u0631\u062a\u0627\u0646 :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">nano ~\/kube-cluster\/hosts<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u06af\u0641\u062a\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0646\u0627\u0633\u0628 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f. \u0645\u0646\u0638\u0648\u0631 \u0645\u0642\u0627\u062f\u06cc\u0631 master_ip \u0648 worker_1_ip \u0648 worker_2_ip \u0645\u06cc \u0628\u0627\u0634\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">[masters]\r\nmaster ansible_host=master_ip ansible_user=root\r\n[workers]\r\nworker1 ansible_host=worker_1_ip ansible_user=root\r\nworker2 ansible_host=worker_2_ip ansible_user=root\r\n[all:vars]\r\nansible_python_interpreter=\/usr\/bin\/python3<\/pre>\n<p style=\"text-align: justify;\">\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u060c \u062f\u0627\u0631\u0627\u06cc\u06cc \u0647\u0627 \u06cc\u0627 \u0647\u0645\u0627\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0627\u0632 \u0642\u0628\u06cc\u0644 \u0622\u062f\u0631\u0633 IP \u060c \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a Remote \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0646\u0627\u0645 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0633\u0631\u0648\u0631 \u0647\u0627 \u0645\u06cc \u0628\u0627\u0634\u062f \u060c \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0634\u0627\u0645\u0644 \u06af\u0631\u0648\u0647 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc masters \u0648 workers \u0645\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631 \u0642\u0633\u0645\u062a \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u06af\u0631\u0648\u0647 masters \u060c \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0627 \u0646\u0627\u0645 master \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0628\u0627 \u0622\u062f\u0631\u0633 IP \u0648 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627\u0647 \u062f\u0648\u0631 \u06a9\u0647 Ansible \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u0627\u0631\u0628\u0631 root \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u060c \u062f\u0631 \u06af\u0631\u0648\u0647 workers \u060c \u062f\u0648 \u0633\u0631\u0648\u0631 worker \u0628\u0627 \u0622\u062f\u0631\u0633 \u0647\u0627\u06cc worker_1_ip \u0648 worker_2_ip \u0648 \u06a9\u0627\u0631\u0628\u0631 ansible_user \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0646\u062f.\u00a0<\/span><\/h4>\n<p style=\"text-align: justify;\">\u062e\u0637 \u0622\u062e\u0631 \u0646\u06cc\u0632 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627 \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0627\u0633\u062a \u060c \u0628\u0631\u0646\u0627\u0645\u0647 Ansible \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0645\u062a\u0631\u062c\u0645 Python 3 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u0646\u062a\u0647\u0627 \u0646\u06cc\u0632 \u0628\u0639\u062f \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0635\u062d\u062a \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0622\u0646 \u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0644\u06cc\u0633\u062a \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627 \u0631\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u06a9\u0631\u062f\u06cc\u0645 \u060c \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645 &#8211; \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u062a\u0635\u0644\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0632 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Kubernetes \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0647\u0627 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0639\u0627\u062f\u06cc \u0628\u062f\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u06cc\u0634\u0647 non-root user \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648\u0644\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0627 \u0628\u0627\u06cc\u062f \u0639\u0636\u0648 \u06af\u0631\u0648\u0647 sudo \u0628\u0627\u0634\u0646\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646 \u0628\u0648\u0633\u06cc\u0644\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u062a\u0635\u0627\u0644 SSH \u0628\u0627 \u0633\u0631\u0648\u0631 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0632\u0645\u0627\u0646 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f top\/htop \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u06cc \u0631\u0627 \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627\u0644\u06a9 \u0622\u0646 root \u0627\u0633\u062a \u060c \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<p style=\"text-align: justify;\">\u0647\u0631 \u0686\u0646\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0631\u062a\u0628 \u062f\u0631 \u0637\u0648\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u060c \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0639\u0627\u062f\u06cc non-root \u0631\u06cc\u0633\u06a9 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06cc\u0627 \u062d\u0630\u0641 \u0641\u0627\u06cc\u0644 \u0647\u0627 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u0627\u062e\u0648\u0627\u0633\u062a\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f \u0631\u0627 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p style=\"text-align: justify;\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0646\u0627\u0645\u00a0 kube-cluster\/initial.yml\/~ \u062f\u0631 \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631\u06cc Workspace \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">nano ~\/kube-cluster\/initial.yml<\/pre>\n<h5 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u062a\u0646 \u0632\u06cc\u0631 \u0631\u0627 \u06a9\u0647 play \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f \u062a\u0627 \u06a9\u0627\u0631\u0628\u0631 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u062f\u0631 \u062a\u0645\u0627\u0645 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u06cc\u06a9 play \u062f\u0631 Ansible \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0645\u0631\u0627\u062d\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627 \u0648 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0645\u0634\u062e\u0635\u06cc \u0631\u0627 \u062a\u0647\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f. Play \u0632\u06cc\u0631 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 non-root \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f :\u00a0<\/span><\/h5>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">- hosts: all\r\n\u00a0\u00a0become: yes\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0\u00a0- name: create the 'ubuntu' user\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user: name=ubuntu append=yes state=present createhome=yes shell=\/bin\/bash\r\n\u00a0\u00a0\u00a0\u00a0- name: allow 'ubuntu' to have passwordless sudo\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lineinfile:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dest: \/etc\/sudoers\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0line: 'ubuntu ALL=(ALL) NOPASSWD: ALL'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0validate: 'visudo -cf %s'\r\n\u00a0\u00a0\u00a0\u00a0- name: set up authorized keys for the ubuntu user\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0authorized_key: user=ubuntu key=\"{{item}}\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0with_file:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0- ~\/.ssh\/id_rsa.pub<\/pre>\n<h3 style=\"text-align: justify;\"><span style=\"color: #0000ff;\"><strong>\u0639\u0645\u0644\u06a9\u0631\u062f play \u0686\u06cc\u0633\u062a\u061f<\/strong><\/span><\/h3>\n<ul style=\"text-align: justify;\">\n<li>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 non-root \u0628\u0627 \u0646\u0627\u0645 ubuntu<\/li>\n<li>\u062a\u0646\u0638\u06cc\u0645 \u0641\u0627\u06cc\u0644 sudoers \u0628\u0631\u0627\u06cc \u0627\u062c\u0627\u0632\u0647 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u0627\u062a sudo \u0628\u062f\u0648\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 ubuntu<\/li>\n<li>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u0644\u06cc\u062f \u0639\u0645\u0648\u0645\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u0628\u0647 \u0644\u06cc\u0633\u062a \u06a9\u0644\u06cc\u062f \u0647\u0627\u06cc \u0645\u062c\u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0631\u06cc\u0645\u0648\u062a <a href=\"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\/what-is-the-ubuntu\">\u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/a> (ubuntu). \u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u062c\u0627\u0632\u0647 \u0627\u062a\u0635\u0627\u0644 SSH \u0628\u0647 \u0647\u0631 \u0633\u0631\u0648\u0631\u06cc \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0627\u06cc\u0646 playbook \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645 :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ansible-playbook -i hosts ~\/kube-cluster\/initial.yml<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u06cc\u0646 \u062f\u0648 \u062a\u0627 5 \u062f\u0642\u06cc\u0642\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u060c \u0648 \u067e\u0633 \u0627\u0632 \u06a9\u0627\u0645\u0644 \u0627\u062c\u0631\u0627 \u0634\u062f\u0646 \u062f\u0633\u062a\u0648\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\n\r\nPLAY [all] ****\r\n\r\nTASK [Gathering Facts] ****\r\n\r\nok: [master]\r\n\r\nok: [worker1]\r\n\r\nok: [worker2]\r\n\r\nTASK [create the 'ubuntu' user] ****\r\n\r\nchanged: [master]\r\n\r\nchanged: [worker1]\r\n\r\nchanged: [worker2]\r\n\r\nTASK [allow 'ubuntu' user to have passwordless sudo] ****\r\n\r\nchanged: [master]\r\n\r\nchanged: [worker1]\r\n\r\nchanged: [worker2]\r\n\r\nTASK [set up authorized keys for the ubuntu user] ****\r\n\r\nchanged: [worker1] =&gt; (item=ssh-rsa AAAAB3...\r\n\r\nchanged: [worker2] =&gt; (item=ssh-rsa AAAAB3...\r\n\r\nchanged: [master] =&gt; (item=ssh-rsa AAAAB3...\r\n\r\nPLAY RECAP ****\r\n\r\nmaster \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=5 changed=4 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\u00a0\r\n\r\nworker1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=5 changed=4 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\u00a0\r\n\r\nworker2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=5 changed=4 unreachable=0\u00a0 \u00a0 failed=0<\/pre>\n<p style=\"text-align: justify;\">\u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0642\u062f\u0645\u0627\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0646\u0635\u0628 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u0647\u0627\u06cc \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 Kubernetes \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u062f.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 &#8211; \u0646\u0635\u0628 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u0647\u0627\u06cc kubernetes\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0632\u00a0\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Kubernetes\u060c \u0628\u0627\u06cc\u062f \u067e\u06a9\u06cc\u062c \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 Kubernetes \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0648\u0633\u06cc\u0644\u0647 apt \u06a9\u0647 \u0627\u0628\u0632\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc Ubuntu \u0627\u0633\u062a \u060c \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645.\u00a0 \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f :<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Doker<\/strong> &#8211; \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0628\u0627\u0634\u062f\u060c \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u062c\u0632\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0634\u0645\u0627 \u0645\u06cc \u0628\u0627\u0634\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u062e\u0627\u0632\u0646 \u062f\u06cc\u06af\u0631 \u0645\u0627\u0646\u0646\u062f rkt \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li><strong>kubeadm<\/strong> &#8211; \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u062c\u0632\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0645\u06cc \u0628\u0627\u0634\u062f.<\/li>\n<li><strong>kubelet<\/strong> &#8211; \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u06cc\u0633\u062a\u0645\u06cc \u0648 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0631\u0647 \u0647\u0627 Nodes \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627 \u0645\u06cc \u0628\u0627\u0634\u062f.<\/li>\n<li><strong>kubectl<\/strong> &#8211; \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0628\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 API Server \u0645\u06cc \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0646\u0635\u0628 \u0627\u06cc\u0646 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0648 \u06cc\u06a9\u06cc \u06cc\u06a9\u06cc \u0628\u0631 \u0631\u0648\u06cc \u0647\u0645\u0647 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0632\u0645\u0627\u0646\u0628\u0631 \u0627\u0633\u062a \u0648 \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0632 Ansible \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u06cc\u062f \u06cc\u06a9 Playbook \u062f\u06cc\u06af\u0631 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0646\u0627\u0645 kube-cluster\/kube-dependencies.yml\/~ \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">nano ~\/kube-cluster\/kube-dependencies.yml<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0633\u067e\u0633 play \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u067e\u06a9\u06cc\u062c \u0647\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">- hosts: all\r\n\u00a0\u00a0become: yes\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0- name: install Docker\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: docker.io\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update_cache: true\r\n\u00a0\u00a0\u00a0- name: install APT Transport HTTPS\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: apt-transport-https\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n\u00a0\u00a0\u00a0- name: add Kubernetes apt-key\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt_key:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n\u00a0\u00a0\u00a0- name: add Kubernetes' APT repository\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt_repository:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0repo: deb http:\/\/apt.kubernetes.io\/ kubernetes-xenial main\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0filename: 'kubernetes'\r\n\u00a0\u00a0\u00a0- name: install kubelet\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: kubelet\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update_cache: true\r\n\u00a0\u00a0\u00a0- name: install kubeadm\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: kubeadm\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present\r\n- hosts: master\r\n\u00a0\u00a0become: yes\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0- name: install kubectl\r\n\u00a0\u00a0\u00a0\u00a0\u00a0apt:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name: kubectl\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: present<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0627\u06cc\u0646 play \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f :\u00a0<\/span><\/h4>\n<ul style=\"text-align: justify;\">\n<li>\u0646\u0635\u0628 \u062f\u0627\u06a9\u0631<\/li>\n<li>\u0646\u0635\u0628 apt-transport-https \u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0646\u0627\u0628\u0639 HTTPS \u062e\u0627\u0631\u062c\u06cc \u0628\u0647 \u0644\u06cc\u0633\u062a \u0645\u0646\u0627\u0628\u0639 APT<\/li>\n<li>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 apt-key \u0628\u0631\u0627\u06cc \u062a\u0627\u06cc\u06cc\u062f \u06a9\u0644\u06cc\u062f \u0645\u0646\u0627\u0628\u0639 Kubernetes APT<\/li>\n<li>\u0646\u0635\u0628 kubelet \u0648 kubeadm<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u062f\u0648\u0645\u06cc\u0646 play \u0641\u0642\u0637 \u06cc\u06a9 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0622\u0646 \u0647\u0645 \u0646\u0635\u0628 kubectl \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 master \u0645\u06cc \u0628\u0627\u0634\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0639\u062f \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f \u0648 Playbook \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ansible-playbook -i hosts ~\/kube-cluster\/kube-dependencies.yml<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0628\u0639\u062f \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nPLAY [all] ****\r\nTASK [Gathering Facts] ****\r\nok: [worker1]\r\nok: [worker2]\r\nok: [master]\r\nTASK [install Docker] ****\r\nchanged: [master]\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nTASK [install APT Transport HTTPS] *****\r\nok: [master]\r\nok: [worker1]\r\nchanged: [worker2]\r\nTASK [add Kubernetes apt-key] *****\r\nchanged: [master]\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nTASK [add Kubernetes' APT repository] *****\r\nchanged: [master]\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nTASK [install kubelet] *****\r\nchanged: [master]\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nTASK [install kubeadm] *****\r\nchanged: [master]\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nPLAY [master] *****\r\nTASK [Gathering Facts] *****\r\nok: [master]\r\nTASK [install kubectl] ******\r\nok: [master]\r\nPLAY RECAP ****\r\nmaster \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=9 changed=5 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\u00a0\r\nworker1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=7 changed=5 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\r\nworker2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=7 changed=5 unreachable=0\u00a0 \u00a0 failed=0<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0639\u062f \u0627\u0632 \u0646\u0635\u0628 \u062f\u0627\u06a9\u0631 \u060c kubeadm \u0648 kubelet \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0647\u0627 \u060c \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc kubectl \u0686\u06cc\u0632 \u062e\u0627\u0635\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0646\u06cc\u0633\u062a \u0648 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u0633\u0626\u0644\u0647 \u062e\u06cc\u0644\u06cc \u0645\u0647\u0645 \u0648 \u062d\u0633\u0627\u0633 \u0627\u0633\u062a \u060c \u06a9\u0647 kubectl \u0641\u0642\u0637 \u0628\u0631 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 master \u0646\u0635\u0628 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a kubectl \u0641\u0642\u0637 \u0627\u0632 \u0633\u0631\u0648\u0631 master \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u062f\u0642\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 kubectl \u0628\u0631 \u0631\u0648\u06cc \u0647\u0631 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062c\u0627\u0632\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0627\u0634\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0646\u0635\u0628 \u0634\u0648\u062f \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062e\u0648\u0628 \u062a\u0627 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u0647\u0627 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0646\u062f \u0648 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0628\u0647 \u0633\u0631\u0627\u063a \u0646\u0635\u0628 \u0648 \u062a\u0646\u0638\u06cc\u0645 \u0633\u0631\u0648\u0631 master \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u06cc \u0631\u0648\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645 &#8211; \u062a\u0646\u0638\u06cc\u0645 \u0633\u0631\u0648\u0631 Master\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0632\u00a0\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Kubernetes\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 master \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645. \u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u0627\u06cc\u062c\u0627\u062f playbook \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u06a9\u0645\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0628\u0631\u062e\u06cc \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0645\u0627\u0646\u0646\u062f Pods \u0648 Pods Networking Plugins \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 Pod \u0647\u0627 \u0645\u0637\u0644\u0628 \u0645\u0641\u0647\u0648\u0645 Pod \u062f\u0631 kubernetes \u0686\u06cc\u0633\u062a \u0648 \u0686\u0637\u0648\u0631 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u0631\u0627 \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0647\u0631 Pod \u0622\u062f\u0631\u0633 IP \u0628\u0631\u0627\u06cc \u062e\u0648\u062f \u062f\u0627\u0631\u062f \u060c \u0648 \u0647\u0631 pod \u062f\u0631 \u0647\u0631 \u0633\u0631\u0648\u0631 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u062f\u0631\u0633 IP \u0622\u0646 pod \u062f\u0631 \u0633\u0631\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0647 \u0622\u0646 \u0645\u062a\u0635\u0644 \u0634\u0648\u062f. \u0645\u062e\u0627\u0632\u0646\u06cc \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0647\u0633\u062a\u0646\u062f \u0628\u0631\u0627\u062d\u062a\u06cc \u0628\u0648\u0633\u06cc\u0644\u0647 \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 pod \u0647\u0627 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u0633\u062a \u0648 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u0633\u06cc\u0631 \u0634\u0641\u0627\u0641 \u0627\u0632 \u06cc\u06a9 pod \u0628\u0647 \u06cc\u06a9 pod \u062f\u0631 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062a\u0648\u0633\u0637 \u067e\u0644\u0627\u06af\u06cc\u0646 \u0634\u0628\u06a9\u0647 pod \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 Flannel \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u06cc\u06a9 \u06af\u0632\u06cc\u0646\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0648 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u06cc\u06a9 Ansible playbook \u0628\u0627 \u0646\u0627\u0645 master.yml \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">nano ~\/kube-cluster\/master.yml<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0645\u062a\u0646 play \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Flannel \u0648 \u0645\u0642\u062f\u0627\u0631 \u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">- hosts: master\r\n\u00a0\u00a0become: yes\r\n\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0\u00a0- name: initialize th cluster\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shell: kubeadm init --pod-network-cidr=10.244.0.0\/16 &gt;&gt; cluster_initialized.txt\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chdir: $HOME\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0creates: cluster_initialized.txt\r\n\u00a0\u00a0\u00a0\u00a0- name: create .kube directory\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0become: yes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0become_user: ubuntu\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0file:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0path: $HOME\/.kube\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0state: directory\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mode: 0755\r\n\u00a0\u00a0\u00a0\u00a0- name: copy admin.conf to user's kube config\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0copy:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0src: \/etc\/kubernetes\/admin.conf\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dest: \/home\/ubuntu\/.kube\/config\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0remote_src: yes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0owner: ubuntu\r\n\u00a0\u00a0\u00a0\u00a0- name: install Pod network\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0become: yes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0become_user: ubuntu\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shell: kubectl apply -f https:\/\/raw.githubusercontent.com\/coreos\/flannel\/v0.9.1\/Documentation\/kube-flannel.yml &gt;&gt; pod_network_setup.txt\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chdir: $HOME\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0creates: pod_network_setup.txt<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062a\u0648\u0636\u06cc\u062d\u0627\u062a\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u06cc\u0646 play :\u00a0<\/span><\/h4>\n<ul style=\"text-align: justify;\">\n<li>\u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f \u060c \u0645\u0642\u062f\u0627\u0631 \u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0648\u0633\u06cc\u0644\u0647 kubeadm init \u0627\u0633\u062a. \u062a\u0646\u0638\u06cc\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 &#8211;pod-network-cidr=10.244.0.0\/16 \u060c \u06a9\u0647 \u0634\u0628\u06a9\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc pod \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u062f\u0648\u0645\u06cc\u0646 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc .kube \u062f\u0631 home\/ubuntu\/ \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0632 \u0642\u0628\u06cc\u0644 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f \u0627\u062f\u0645\u06cc\u0646 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0647\u0627 \u0647\u0633\u062a\u0646\u062f \u0648 \u0622\u062f\u0631\u0633 IP \u06a9\u0644\u0627\u0633\u062a\u0631 \u0647\u0627 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0633\u0648\u0645\u06cc\u0646 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f\u060c \u06a9\u067e\u06cc \u0641\u0627\u06cc\u0644 etc\/kubernetes\/admin.conf\/ \u06a9\u0647 ubeadm init \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u06a9\u0627\u0631\u0628\u0631 non-root \u062f\u0631 home \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u062c\u0627\u0632\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc kubectl \u0628\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0645\u06cc \u0628\u0627\u0634\u062f.<\/li>\n<li>\u0622\u062e\u0631\u06cc\u0646 \u06a9\u0627\u0631 \u0646\u06cc\u0632 \u0627\u062c\u0631\u0627\u06cc kubectl apply \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Flannel \u0645\u06cc \u0628\u0627\u0634\u062f. \u0645\u0642\u062f\u0627\u0631 [kubectl apply -f descriptor.[yml|json \u0628\u0647 kubectl \u0627\u0639\u0644\u0627\u0645 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u06cc\u06a9 \u0634\u0626 \u062c\u062f\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 [descriptor.[yml|json \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 kube-flannel.yml \u0634\u0627\u0645\u0644 \u062c\u0632\u0626\u06cc\u0627\u062a \u0634\u0626 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 Flannel \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u06cc \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u0646\u062a\u0647\u0627 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0641\u0627\u06cc\u0644 playbook \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc Local \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ansible-playbook -i hosts ~\/kube-cluster\/master.yml<\/pre>\n<p style=\"text-align: justify;\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0627\u0633\u062a :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nPLAY [master] ****\r\nTASK [Gathering Facts] ****\r\nok: [master]\r\nTASK [initialize the cluster] ****\r\nchanged: [master]\r\nTASK [create .kube directory] ****\r\nchanged: [master]\r\nTASK [copy admin.conf to user's kube config] *****\r\nchanged: [master]\r\nTASK [install Pod network] *****\r\nchanged: [master]\r\nPLAY RECAP ****\r\nmaster \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=5 changed=4 unreachable=0\u00a0 \u00a0 failed=0<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 master \u0627\u0632 \u0637\u0631\u06cc\u0642 ssh \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ssh ubuntu@master_ip<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u067e\u0633 \u0627\u0632 \u0648\u0627\u0631\u062f \u0634\u062f\u0646 \u0628\u0647 \u0633\u0631\u0648\u0631 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl get nodes<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nNAME\u00a0 \u00a0 \u00a0 STATUS ROLES \u00a0 \u00a0 AGE VERSION\r\nmaster\u00a0 \u00a0 Ready master\u00a0 \u00a0 1d v1.10.1<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0633\u0631\u0648\u0631 master \u062a\u0645\u0627\u0645\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0648 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0647\u0627\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0648 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 \u062f\u0631 \u062d\u0627\u0644\u062a ready \u0648 \u0622\u0645\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc worker \u0648 \u0627\u0631\u0633\u0627\u0644 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642\u00a0 API Server \u0645\u06cc \u0628\u0627\u0634\u062f. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc worker \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 &#8211; \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc Worker\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06af\u0631\u0647 worker \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u060c \u06a9\u0647 \u0634\u0627\u0645\u0644 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0627\u0632 \u0642\u0628\u06cc\u0644 \u0622\u062f\u0631\u0633 IP \u0648 \u067e\u0648\u0631\u062a API \u0633\u0631\u0648\u0631 master \u0645\u06cc \u0628\u0627\u0634\u062f \u0648 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u06cc \u0628\u0627\u0634\u062f. \u0641\u0642\u0637 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u062a\u0648\u06a9\u0646 \u0631\u0627 \u0642\u0628\u0648\u0644 \u0645\u06cc \u06a9\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0647 \u0645\u0633\u06cc\u0631 \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631\u06cc Workspace \u0628\u0631\u0648\u06cc\u062f \u0648 \u06cc\u06a9 playbook \u0628\u0647 \u0646\u0627\u0645 workers.yml \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">nano ~\/kube-cluster\/workers.yml<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0645\u062a\u0646 \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">- hosts: master\r\n\u00a0\u00a0become: yes\r\n\u00a0\u00a0gather_facts: false\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0\u00a0- name: get join command\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shell: kubeadm token create --print-join-command\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0register: join_command_raw\r\n\u00a0\u00a0\u00a0\u00a0- name: set join command\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0set_fact:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0join_command: \"{{ join_command_raw.stdout_lines[0] }}\"\r\n- hosts: workers\r\n\u00a0\u00a0become: yes\r\n\u00a0\u00a0tasks:\r\n\u00a0\u00a0\u00a0\u00a0- name: join cluster\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0shell: \"{{ hostvars['master'].join_command }} &gt;&gt; node_joined.txt\"\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0args:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chdir: $HOME\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0creates: node_joined.txt<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0627\u06cc\u0646 playbook :\u00a0<\/span><\/h4>\n<ul style=\"text-align: justify;\">\n<li>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062f\u0633\u062a\u0648\u0631 \u0627\u062a\u0635\u0627\u0644 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0627\u06cc\u062f \u062f\u0631 \u0633\u0631\u0648\u0631 worker \u0648\u0627\u0631\u062f \u0634\u0648\u062f \u0648 \u0642\u0627\u0644\u0628 \u062f\u0633\u062a\u0648\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a : kubeadm join &#8211;token &lt;token&gt; &lt;master-ip&gt;:&lt;master-port&gt; &#8211;discovery-token-ca-cert-hash sha256:&lt;hash&gt;. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0627 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0645\u0642\u0627\u062f\u06cc\u0631 token \u0648 hash \u062a\u06a9\u0645\u06cc\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\u0642\u0633\u0645\u062a \u062f\u0648\u0645 \u0641\u0642\u0637 \u062f\u0633\u062a\u0648\u0631 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u06af\u0631\u0647 \u0647\u0627 \u06cc\u0627 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc worker \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0634\u062f\u0646 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0647\u0631 \u062f\u0648 \u0633\u0631\u0648\u0631 \u060c \u0642\u0633\u0645\u062a\u06cc \u0627\u0632 \u06a9\u0644\u0627\u0633\u062a\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0641\u0627\u06cc\u0644 playbook \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ansible-playbook -i hosts ~\/kube-cluster\/workers.yml<\/pre>\n<p style=\"text-align: justify;\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u0627\u062c\u0631\u0627 \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0627\u0633\u062a :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nPLAY [master] ****\r\nTASK [get join command] ****\r\nchanged: [master]\r\nTASK [set join command] *****\r\nok: [master]\r\nPLAY [workers] *****\r\nTASK [Gathering Facts] *****\r\nok: [worker1]\r\nok: [worker2]\r\nTASK [join cluster] *****\r\nchanged: [worker1]\r\nchanged: [worker2]\r\nPLAY RECAP *****\r\nmaster \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=2 changed=1 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\u00a0\r\nworker1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=2 changed=1 unreachable=0\u00a0 \u00a0 failed=0\u00a0\u00a0\r\nworker2\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 : ok=2 changed=1 unreachable=0\u00a0 \u00a0 failed=0<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0627 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc worker \u06a9\u0644\u0627\u0633\u062a\u0631 \u0634\u0645\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0648 \u0622\u0645\u0627\u062f\u0647 \u0628\u0647\u0631\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0633\u062a \u0648 worker \u0647\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u062c\u0631\u0627\u06cc \u0628\u0627\u0631\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0647\u0633\u062a\u0646\u062f. \u0642\u0628\u0644 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u060c \u0635\u062d\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0644\u0627\u0633\u062a\u0631 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645 &#8211; \u0628\u0631\u0631\u0633\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u0628\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0647 \u062f\u0644\u0627\u06cc\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0632 \u062f\u0633\u062a\u0631\u0633 \u062e\u0627\u0631\u062c \u0634\u062f\u0646 \u06cc\u06a9 \u0633\u0631\u0648\u0631 worker \u06cc\u0627 \u062e\u0631\u0627\u0628\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc master \u0648 worker \u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0628\u0627 \u0645\u0634\u06a9\u0644 \u0645\u0648\u0627\u062c\u0647 \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648 \u0633\u0631\u0648\u0631 \u0647\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648\u0636\u0639\u06cc\u062a \u06af\u0631\u0647 \u0647\u0627 \u06cc\u0627 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 master \u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 master \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0627\u0628\u062a\u062f\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 master \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u06cc\u0645 :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ssh ubuntu@master_ip<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl get nodes<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nNAME\u00a0 \u00a0 \u00a0 STATUS ROLES \u00a0 \u00a0 AGE VERSION\r\nmaster\u00a0 \u00a0 Ready master\u00a0 \u00a0 1d v1.10.1\r\nworker1 \u00a0 Ready &lt;none&gt;\u00a0 \u00a0 1d v1.10.1\u00a0\r\nworker2 \u00a0 Ready &lt;none&gt;\u00a0 \u00a0 1d v1.10.1<\/pre>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0627\u06af\u0631 \u0648\u0636\u0639\u06cc\u062a STATUS \u0633\u0631\u0648\u0631 \u0647\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a ready \u0628\u0648\u062f \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0645\u0627\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u06a9\u0627\u0631\u0647\u0627 \u0645\u06cc \u0628\u0627\u0634\u0646\u062f.\u00a0<\/span><\/h4>\n<p style=\"text-align: justify;\">\u0648 \u0627\u06af\u0631 \u0647\u0631 \u0648\u0636\u0639\u06cc\u062a STATUS \u0647\u0631 \u0633\u0631\u0648\u0631\u06cc \u062f\u0631 \u062d\u0627\u0644\u062a NotReady \u0628\u0627\u0634\u062f \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0622\u0646 \u0633\u0631\u0648\u0631 \u0647\u0646\u0648\u0632 \u062a\u0645\u0627\u0645 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a. \u062d\u062f\u0648\u062f 5 \u062a\u0627 10 \u062f\u0642\u06cc\u0642\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0645\u062c\u062f\u062f \u062f\u0633\u062a\u0648\u0631 kubectl get node \u0635\u0628\u0631 \u06a9\u0646\u06cc\u062f \u060c \u0633\u067e\u0633 \u0645\u062c\u062f\u062f\u0627 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0647\u0646\u0648\u0632 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u0631 \u0647\u0627 NotReady \u0628\u0648\u062f \u060c \u0628\u0627\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0631\u0627\u062d\u0644 \u0642\u0628\u0644 \u0631\u0627 \u0645\u062c\u062f\u062f\u0627 \u0628\u0631\u0631\u0633\u06cc \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u067e\u0633 \u0627\u0632 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0635\u062d\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0644\u0627\u0633\u062a\u0631 \u060c \u0628\u0631\u0646\u0627\u0645\u0647 Nginx \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06cc\u0627 Schedule \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645 &#8211; \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631\u00a0<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 Kubernetes \u060c\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0645\u062e\u0632\u0646 \u062f\u0627\u0631\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 Nginx \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0633\u0631\u0648\u0631 master \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 deployment \u0627\u0632\u00a0 nginx \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl run nginx --image=nginx --port 80<\/pre>\n<p style=\"text-align: justify;\">deployment \u06cc\u06a9 \u0646\u0648\u0639 \u0627\u0632 \u0634\u0626 Kubernetes \u0645\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u0648\u062c\u0648\u062f \u0647\u0645\u06cc\u0634\u06af\u06cc \u062a\u0639\u062f\u0627\u062f\u06cc pod \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0642\u0627\u0644\u0628 \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u060c \u062d\u062a\u06cc \u0627\u06af\u0631 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 pod \u0627\u0632 \u062f\u0633\u062a\u0631\u0633 \u062e\u0627\u0631\u062c \u0634\u0648\u062f. \u0642\u0628\u0644 \u0627\u0632 deployment \u06cc\u06a9 pod \u0628\u0627 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0627\u0632 \u062f\u0627\u06a9\u0631 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 Ngingx Docker Image \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0633\u067e\u0633 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u0646\u0627\u0645 nginx \u0628\u0631\u0627\u06cc \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0639\u0645\u0648\u0645 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 NodePort \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u06a9\u0647 \u06cc\u06a9 \u067e\u0648\u0631\u062a \u062f\u0644\u062e\u0648\u0627\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u06cc\u06a9 pod \u062f\u0631 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0627\u0632 \u0645\u06cc \u06a9\u0646\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl expose deploy nginx --port 80 --target-port 80 --type NodePort<\/pre>\n<p style=\"text-align: justify;\">\u0628\u0642\u06cc\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u0634\u0626 \u0647\u0627\u06cc Kubernetes \u0647\u0633\u062a\u0646\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u062f\u0647\u06cc \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u062d\u0644\u06cc \u0648 \u062e\u0627\u0631\u062c\u06cc \u0647\u0633\u062a\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u062a\u0642\u0633\u06cc\u0645 \u0628\u0627\u0631 \u0631\u0627 \u062f\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0646\u062f \u0648 \u062c\u0632\u0648 \u062c\u062f\u0627\u06cc\u06cc \u0646\u0627\u067e\u0630\u06cc\u0631 Kubernetes \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0644\u0633\u0644\u0647 \u0645\u0631\u0627\u062a\u0628\u06cc \u0628\u0627 \u0627\u062c\u0632\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0641\u0639\u0627\u0644\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl get services<\/pre>\n<p style=\"text-align: justify;\">\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0645\u0627\u0646\u0646\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nNAME \u00a0 \u00a0 \u00a0 \u00a0 TYPE CLUSTER-IP \u00a0 \u00a0 \u00a0 EXTERNAL-IP PORT(S)\u00a0 \u00a0 \u00a0 \u00a0 AGE\r\nkubernetes \u00a0 ClusterIP 10.96.0.1\u00a0 \u00a0 \u00a0 \u00a0 &lt;none&gt; 443\/TCP\u00a0 \u00a0 \u00a0 \u00a0 1d\r\nnginx \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NodePort\u00a0 \u00a0 10.109.228.209 \u00a0 &lt;none&gt; \u00a0 \u00a0 80:nginx_port\/TCP \u00a0 40m<\/pre>\n<p style=\"text-align: justify;\">\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f Nginx \u0628\u0631 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 80 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. Kubernetes \u06cc\u06a9 \u067e\u0648\u0631\u062a \u062a\u0635\u0627\u062f\u0641\u06cc \u0628\u0627\u0644\u0627\u062a\u0631 \u0627\u0632 30000 \u06a9\u0647 \u0645\u0637\u0645\u0626\u0646 \u0627\u0633\u062a \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u06af\u0631\u06cc \u062a\u0639\u0644\u0642 \u0646\u06af\u0631\u0641\u062a\u0647 \u0627\u0633\u062a \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p style=\"text-align: justify;\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0635\u062d\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u0622\u062f\u0631\u0633 http:\/\/worker_1_ip:nginx_port \u06cc\u0627 http:\/\/worker_2_ip:nginx_port \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0633\u0631\u0648\u0631 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0642\u0633\u0645\u062a \u0628\u0627\u06cc\u062f \u0635\u0641\u062d\u0647 Nginx \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #000080;\">\u0628\u0631\u0627\u06cc \u062d\u0630\u0641 \u0628\u0631\u0646\u0627\u0645\u0647 Nginx \u0627\u0628\u062a\u062f\u0627 \u0633\u0631\u0648\u06cc\u0633 Nginx \u0631\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631 master \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f :\u00a0<\/span><\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl delete service nginx<\/pre>\n<p style=\"text-align: justify;\">\u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u062d\u0630\u0641 \u0634\u062f\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl get services<\/pre>\n<p style=\"text-align: justify;\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Output\r\nNAME \u00a0 \u00a0 \u00a0 \u00a0 TYPE CLUSTER-IP \u00a0 \u00a0 \u00a0 EXTERNAL-IP PORT(S)\u00a0 \u00a0 \u00a0 \u00a0 AGE\r\nkubernetes \u00a0 ClusterIP 10.96.0.1\u00a0 \u00a0 \u00a0 \u00a0 &lt;none&gt; 443\/TCP\u00a0 \u00a0 \u00a0 \u00a0 1d<\/pre>\n<p style=\"text-align: justify;\">\u0633\u067e\u0633 deployment \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f :<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">kubectl get deployments\r\nOutput\r\nNo resources found.<\/pre>\n<h2 style=\"text-align: justify;\"><span style=\"font-weight: 400; color: #3366ff;\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/span><\/h2>\n<p style=\"text-align: justify;\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 <a href=\"https:\/\/parspack.com\/blog\/os\/linux\">\u0622\u0645\u0648\u0632\u0634 \u0644\u06cc\u0646\u0648\u06a9\u0633<\/a> \u0648 <a href=\"https:\/\/parspack.com\/blog\/os\/linux\/ubuntu\">\u0622\u0645\u0648\u0632\u0634 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/a> \u0634\u0645\u0627 \u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u062f \u06cc\u06a9 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u062e\u0627\u0632\u0646 Kubernetes \u062f\u0631 Ubuntu 16.04 \u0628\u0648\u0633\u06cc\u0644\u0647 Kubeadm \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 deploy \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span style=\"color: #3366ff;\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/span><\/h2>\n<h3><span style=\"color: #0000ff;\">\u06f1. \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 Kubernetes 1.10 \u0628\u0627 Kubeadm \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 Ubuntu 16.04 \u0628\u0647 \u0686\u0647 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u061f<\/span><\/h3>\n<p>\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 &#8211; \u062a\u0646\u0638\u06cc\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631 \u0648 \u0641\u0627\u06cc\u0644 \u0641\u0647\u0631\u0633\u062a Ansible\u060c \u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645 &#8211; \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u062a\u0635\u0644\u060c \u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 &#8211; \u0646\u0635\u0628 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u0647\u0627\u06cc kubernetes\u060c \u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645 &#8211; \u062a\u0646\u0638\u06cc\u0645 \u0633\u0631\u0648\u0631 Master\u060c \u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 &#8211; \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc Worker\u060c \u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645 &#8211; \u0628\u0631\u0631\u0633\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648 \u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645 &#8211; \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631<\/p>\n<h3><span style=\"color: #0000ff;\">\u06f2. \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06af\u0631\u0647 worker \u0686\u0647 \u0628\u0627\u06cc\u062f \u0628\u06a9\u0646\u06cc\u062f\u061f<\/span><\/h3>\n<p>\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0634\u0627\u0645\u0644 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u0627\u0646\u0646\u062f: \u0622\u06cc \u067e\u06cc \u0622\u062f\u0631\u0633 \u0648 \u067e\u0648\u0631\u062a \u0627\u06cc \u067e\u06cc \u0622\u06cc \u0633\u0631\u0648\u0631 \u0645\u0633\u062a\u0631 \u0648 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u06cc\u0628\u0627\u0634\u062f.\u0628\u0647 \u0646\u062d\u0648\u06cc \u06a9\u0647 \u0641\u0642\u0637 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u062a\u0648\u06a9\u0646 \u0631\u0627 \u0642\u0628\u0648\u0644 \u0645\u06cc\u06a9\u0646\u062f \u0628\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648\u0635\u0644 \u0645\u06cc\u0634\u0648\u062f.<\/p>\n<h3><span style=\"color: #0000ff;\">\u06f3. \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 \u0686\u06cc\u0633\u062a \u061f <\/span><\/h3>\n<p>\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u06a9\u0648\u0628\u0631\u0646\u062a\u06cc\u0632\u061b \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0646\u062a\u0650\u06cc\u0646\u0650\u0631 \u0645\u062a\u0646 \u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0634\u0631\u06a9\u062a \u06af\u0648\u06af\u0644\u06af\u0633\u062a\u0631\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u062f\u0631\u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f4 \u0628\u0631\u0627\u06cc \u0639\u0645\u0648\u0645 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a. \u0647\u062f\u0641 \u0627\u0632 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0639\u0631\u0636\u0647 \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u0632 \u0627\u06cc\u0646 \u0628\u0648\u062f\u0647 \u06a9\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639\u200c\u0634\u062f\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0639\u0644\u0627\u0642\u0647\u200c\u0645\u0646\u062f \u0647\u0633\u062a\u0646\u062f\u060c \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0634\u0648\u062f.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"\u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 Kubernetes 1.10 \u0628\u0627 Kubeadm \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 Ubuntu 16.04 \u0628\u0647 \u0686\u0647 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 - \u062a\u0646\u0638\u06cc\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0636\u0627\u06cc \u06a9\u0627\u0631 \u0648 \u0641\u0627\u06cc\u0644 \u0641\u0647\u0631\u0633\u062a Ansible\u060c \u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645 - \u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc \u0645\u062a\u0635\u0644\u060c \u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 - \u0646\u0635\u0628 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u0647\u0627\u06cc kubernetes\u060c \u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645 - \u062a\u0646\u0638\u06cc\u0645 \u0633\u0631\u0648\u0631 Master\u060c \u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 - \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u0647\u0627\u06cc Worker\u060c \u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645 - \u0628\u0631\u0631\u0633\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648 \u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645 - \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06af\u0631\u0647 worker \u0686\u0647 \u0628\u0627\u06cc\u062f \u0628\u06a9\u0646\u06cc\u062f\u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0647 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0634\u0627\u0645\u0644 \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0645\u0627\u0646\u0646\u062f: \u0622\u06cc \u067e\u06cc \u0622\u062f\u0631\u0633 \u0648 \u067e\u0648\u0631\u062a \u0627\u06cc \u067e\u06cc \u0622\u06cc \u0633\u0631\u0648\u0631 \u0645\u0633\u062a\u0631 \u0648 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u06cc\u0628\u0627\u0634\u062f.\u0628\u0647 \u0646\u062d\u0648\u06cc \u06a9\u0647 \u0641\u0642\u0637 \u0633\u0631\u0648\u0631\u06cc \u06a9\u0647 \u062a\u0648\u06a9\u0646 \u0631\u0627 \u0642\u0628\u0648\u0644 \u0645\u06cc\u06a9\u0646\u062f \u0628\u0647 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648\u0635\u0644 \u0645\u06cc\u0634\u0648\u062f.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"\u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 \u0686\u06cc\u0633\u062a \u061f\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"\u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0646\u062a\u0650\u06cc\u0646\u0650\u0631 \u0645\u062a\u0646 \u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0634\u0631\u06a9\u062a \u06af\u0648\u06af\u0644\u06af\u0633\u062a\u0631\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u062f\u0631\u0633\u0627\u0644 \u06f2\u06f0\u06f1\u06f4 \u0628\u0631\u0627\u06cc \u0639\u0645\u0648\u0645 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a. \u0647\u062f\u0641 \u0627\u0632 \u0637\u0631\u0627\u062d\u06cc \u0648 \u0639\u0631\u0636\u0647 \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u0632 \u0627\u06cc\u0646 \u0628\u0648\u062f\u0647 \u06a9\u0647 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0632\u06cc\u0639\u200c\u0634\u062f\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0639\u0644\u0627\u0642\u0647\u200c\u0645\u0646\u062f \u0647\u0633\u062a\u0646\u062f\u060c \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0634\u0648\u062f.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0622\u0645\u0648\u0632\u0634 \u0641\u0627\u0631\u0633\u06cc \u06a9\u0648\u0628\u0631\u0646\u06cc\u062a\u06cc\u0633\u061b Kubernetes \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062e\u0627\u0632\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0646 \u0628\u0627\u0632 \u0648 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0645\u06cc \u0628\u0627\u0634\u062f. \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062a\u0648\u0633\u0637 \u06af\u0648\u06af\u0644 \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u062c\u0631\u0628\u06cc\u0627\u062a \u0627\u062c\u0631\u0627\u06cc \u0645\u062e\u0627\u0632\u0646 \u062f\u0631 \u0645\u062d\u0635\u0648\u0644\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u06a9\u0644\u0627\u0633\u062a\u0631\u06cc\u0646\u06af Kubernetes \u0628\u0631 \u0631\u0648\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 Ubuntu \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u06cc\u0645. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u06a9 [&hellip;]<\/p>\n","protected":false},"author":68,"featured_media":35522,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294],"tags":[],"class_list":["post-7335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/7335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/comments?post=7335"}],"version-history":[{"count":4,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/7335\/revisions"}],"predecessor-version":[{"id":46703,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/posts\/7335\/revisions\/46703"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media\/35522"}],"wp:attachment":[{"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/media?parent=7335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/categories?post=7335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parspack.com\/blog\/wp-json\/wp\/v2\/tags?post=7335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}