{"id":15341,"date":"2024-04-19T15:41:02","date_gmt":"2024-04-19T12:11:02","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15341"},"modified":"2024-04-19T15:41:02","modified_gmt":"2024-04-19T12:11:02","slug":"how-to-deploy-python-application-on-kubernetes-with-okteto","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/ja\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/","title":{"rendered":"Okteto \u3092\u4f7f\u3063\u3066 Python \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092 Kubernetes \u306b\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p>Okteto \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u062e\u0648\u0634\u0647 \u0647\u0627\u06cc Kubernetes \u0628\u062f\u0648\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0645\u062d\u0644\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0633\u0627\u0632\u0646\u062f \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u0646\u062f. Okteto \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 \u062e\u0648\u0634\u0647\u200c\u0647\u0627\u06cc Kubernetes \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062c\u062f\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u0622\u0646 \u0631\u0627 \u062f\u0631 Kubernetes \u0645\u0633\u062a\u0642\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/h5>\n<ul>\n<li>\u06cc\u06a9 \u062e\u0648\u0634\u0647 Kubernetes 1.28<\/li>\n<li>kubectl \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u062e\u0648\u0634\u0647 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<li>\u06cc\u06a9 \u062d\u0633\u0627\u0628 Docker Hub<\/li>\n<li>\u062f\u0627\u06a9\u0631 \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0628\u0627\u0634\u062f.<\/li>\n<li>\u0645\u062c\u0648\u0632 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u0627\u0644\u0632\u0627\u0645\u06cc \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0644\u06cc\u062f \u0645\u062c\u0648\u0632\u060c \u062f\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 30 \u0631\u0648\u0632\u0647 Okteto \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0633\u062a\u0647 Helm \u0628\u0631 \u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u06a9\u0627\u0645\u0644\u0627\u064b \u062b\u0628\u062a \u0634\u062f\u0647 \u06a9\u0647 \u0628\u0647 Load Balancer \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Nginx Ingress \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 * \u0648 Load Balancer IP \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-1-%db%8c%da%a9-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%a9%d9%86%db%8c%d8%af\">\u0645\u0631\u062d\u0644\u0647 1 &#8211; \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0648 \u062a\u0627\u06cc\u067e \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>python3 --version<\/code><\/pre>\n<\/div>\n<p>\u0627\u06af\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f. \u0627\u06af\u0631 \u0646\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo apt install python3 python3-venv python3-pip -y<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0648 \u0633\u0627\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir my-app<\/code><\/pre>\n<\/div>\n<p>\u0628\u0639\u062f\u060c \u0628\u0647 \u0641\u0647\u0631\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f \u0648 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd my-app\r\npython3 -m venv python-env<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>source python-env\/bin\/activate<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 app.py \u0633\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano app.py<\/code><\/pre>\n<\/div>\n<p>\u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>from flask import Flask\r\napp = Flask(__name__)\r\n@app.route('\/')\r\ndef hello():\r\nreturn \"Hello, This is a simple Python App!\"\r\nif __name__ == '__main__':\r\napp.run(debug=True, host='0.0.0.0')<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 \u0686\u0627\u0631\u0686\u0648\u0628 \u0648\u0628 Flask \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>pip install flask<\/code><\/pre>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\">python3 app.py<\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output * Running on all addresses (0.0.0.0)\r\n* Running on http:\/\/127.0.0.1:5000\r\n* Running on http:\/\/172.20.10.2:5000\r\nPress CTRL+C to quit\r\n* Restarting with stat\r\n* Debugger is active!\r\n* Debugger PIN: 311-959-468<\/code><\/pre>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 curl \u0622\u0646 \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>curl -X GET -H \"Content-Type: application\/json\" http:\/\/localhost:5000<\/code><\/pre>\n<\/div>\n<p>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u067e\u0627\u0633\u062e \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputHello, This is a simple Python App!<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631 \u0631\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0632\u06cc\u0631 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>deactivate<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u062a\u0633\u062a \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-2-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%d8%b1%d8%a7-dockerize-%da%a9%d9%86%db%8c%d8%af\">\u0645\u0631\u062d\u0644\u0647 2 &#8211; \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 Dockerize \u06a9\u0646\u06cc\u062f<\/h2>\n<p>\u062f\u0627\u06a9\u0631 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0627\u0645\u0644 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0646\u0627\u0645 Dockerfile \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano Dockerfile<\/code><\/pre>\n<\/div>\n<p>\u0645\u0637\u0627\u0644\u0628 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code># Use an official Python runtime as a parent image\r\nFROM python:3.8-slim\r\n# Set the working directory in the container\r\nWORKDIR \/app\r\n# Copy the current directory contents into the container at \/app\r\nADD . \/app\r\n# Install any needed dependencies specified in requirements.txt\r\nRUN pip install flask\r\n# Make port 5000 available to the world outside this container\r\nEXPOSE 5000\r\n# Define environment variable\r\nENV NAME DockerizedPythonApp\r\n# Run app.py when the container launches\r\nCMD [\"python3\", \".\/app.py\"]<\/code><\/pre>\n<\/div>\n<h5 id=\"%d8%af%d8%b1-%d8%a7%db%8c%d9%86-%d8%af%d8%a7%da%a9%d8%b1%d9%81%d8%a7%db%8c%d9%84\">\u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06a9\u0631\u0641\u0627\u06cc\u0644:<\/h5>\n<ul>\n<li>FROM python:3.8-slim: \u062a\u0635\u0648\u06cc\u0631 \u067e\u0627\u06cc\u0647 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f. \u0634\u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0633\u0645\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0646\u0635\u0628 \u067e\u0627\u06cc\u062a\u0648\u0646 3.8 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>WORKDIR \/app: \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0631\u0648\u06cc \/app \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 . \/app: \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0639\u0644\u06cc \u0631\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 \/app \u0638\u0631\u0641 \u06a9\u067e\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>RUN pip install flask: Frask frame \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>EXPOSE 5000: \u067e\u0648\u0631\u062a 5000 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0648\u0631\u0648\u062f\u06cc \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<li>CMD [&#8220;python3&#8243;\u060c &#8220;app.py&#8221;]: \u062f\u0633\u062a\u0648\u0631\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0634\u0631\u0648\u0639 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 app.py \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 Dockerfile \u062e\u0648\u062f \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker build -t my-app .<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0633\u0627\u062e\u062a\u0646 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u06a9\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0635\u0648\u06cc\u0631 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker run -dit -p 5000:5000 my-app:latest<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0627\u0632 \u062a\u0635\u0648\u06cc\u0631 my-app \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u067e\u0648\u0631\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0628\u0647 \u067e\u0648\u0631\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 5000 \u0646\u06af\u0627\u0634\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 docker ps \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u062e\u0648\u062f \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker ps<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output\r\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\r\n761c54c77411 my-app:latest \"python3 .\/app.py\" 3 seconds ago Up 3 seconds 0.0.0.0:5000-&gt;5000\/tcp, :::5000-&gt;5000\/tcp pedantic_wescoff<\/code><\/pre>\n<\/div>\n<p>\u06cc\u06a9 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0627\u0632 curl \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 URL http:\/\/your-server-ip:5000 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0628\u0627\u06cc\u062f \u067e\u06cc\u0627\u0645 Hello, This is a simple Python App \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f! \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0627\u06a9\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062a\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u06a9\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-3-%d8%aa%d8%b5%d9%88%db%8c%d8%b1-python-docker-%d8%b1%d8%a7-%d8%a8%d9%87-%d8%b1%d8%ac%db%8c%d8%b3%d8%aa%d8%b1%db%8c-dockerhub-%d9%81%d8%b4%d8%a7%d8%b1-%d8%af\">\u0645\u0631\u062d\u0644\u0647 3 &#8211; \u062a\u0635\u0648\u06cc\u0631 Python Docker \u0631\u0627 \u0628\u0647 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc DockerHub \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f<\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u062d\u0633\u0627\u0628 DockerHub \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0627\u06af\u0631 \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a DockerHub \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u062f\u0627\u06a9\u0631 \u0647\u0627\u0628 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u06a9\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 Docker Hub \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker login<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https:\/\/hub.docker.com to create one.\r\nUsername: username@gmail.com\r\nPassword: \r\nWARNING! Your password will be stored unencrypted in \/root\/.docker\/config.json.\r\nConfigure a credential helper to remove this warning. See\r\nhttps:\/\/docs.docker.com\/engine\/reference\/commandline\/login\/#credentials-store\r\nLogin Succeeded<\/code><\/pre>\n<\/div>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0628\u0647 \u062f\u0627\u06a9\u0631 \u0647\u0627\u0628\u060c \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0627\u06a9\u0631 \u0647\u0627\u0628 \u0648 \u0646\u0627\u0645 \u0645\u062e\u0632\u0646 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u062a\u06af \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker tag my-app yourusername\/my-app:latest<\/code><\/pre>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 Docker \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 docker push \u0628\u0647 Docker Hub \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker push yourusername\/my-app:latest<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062c\u0633\u062a\u062c\u0648\u06cc \u0622\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Hub CLI \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 Docker Hub \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker search yourusername\/my-app<\/code><\/pre>\n<\/div>\n<p>\u062a\u0635\u0648\u06cc\u0631 Docker \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 Docker Hub \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0633\u0637 \u062f\u06cc\u06af\u0631\u0627\u0646 \u06a9\u0634\u06cc\u062f\u0647 \u0634\u0648\u062f \u06cc\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0645\u0633\u062a\u0642\u0631 \u0634\u0648\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-4-%d9%85%d8%a7%d9%86%db%8c%d9%81%d8%b3%d8%aa-%d9%87%d8%a7%db%8c-kubernetes-%d8%b1%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1\">\u0645\u0631\u062d\u0644\u0647 4 &#8211; \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u0647\u0627\u06cc Kubernetes \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0627\u0646\u06cc\u0641\u0633\u062a Kubernetes \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0646\u0627\u0628\u0639 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u060c \u0633\u0631\u0648\u06cc\u0633 \u0648 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0628\u0647 \u0646\u0627\u0645 my-app \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano k8s.yaml<\/code><\/pre>\n<\/div>\n<p>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>apiVersion: apps\/v1\r\nkind: Deployment\r\nmetadata:\r\nname: my-app\r\nspec:\r\nselector:\r\nmatchLabels:\r\napp: my-app\r\ntemplate:\r\nmetadata:\r\nlabels:\r\napp: my-app\r\nspec:\r\ncontainers:\r\n- image: yourusername\/my-app\r\nname: my-app\r\n---\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\nname: my-app\r\nspec:\r\ntype: ClusterIP\r\nports:\r\n- name: \"my-app\"\r\nport: 5000\r\nselector:\r\napp: my-app\r\n---\r\napiVersion: networking.k8s.io\/v1\r\nkind: Ingress\r\nmetadata:\r\nname: my-app\r\nannotations:\r\ndev.okteto.com\/generate-host: my-app\r\nspec:\r\nrules:\r\n- http:\r\npaths:\r\n- backend:\r\nservice:\r\nname: my-app\r\nport:\r\nnumber: 5000\r\npath: \/\r\npathType: ImplementationSpecific<\/code><\/pre>\n<\/div>\n<p>\u0641\u0627\u06cc\u0644 \u0641\u0648\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0628\u0647 \u0646\u0627\u0645 my-app \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 ClusterIP \u062f\u0631 \u067e\u0648\u0631\u062a 5000 \u062f\u0631 \u0645\u0639\u0631\u0636 \u0646\u0645\u0627\u06cc\u0634 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f \u0648 \u06cc\u06a9 \u0645\u0646\u0628\u0639 Ingress \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u062f\u0627\u06cc\u062a \u062a\u0631\u0627\u0641\u06cc\u06a9 HTTP \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0647\u0627\u06cc \u062e\u0627\u0635 Okteto \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0628\u0631\u062e\u06cc \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 Okteto\u060c \u0645\u0627\u0646\u0646\u062f \u062a\u0648\u0644\u06cc\u062f \u0646\u0627\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u062e\u0648\u062f\u06a9\u0627\u0631\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-5-okteto-%d8%b1%d8%a7-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-helm-%d9%86%d8%b5%d8%a8-%da%a9%d9%86%db%8c%d8%af\">\u0645\u0631\u062d\u0644\u0647 5 &#8211; Okteto \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Helm \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0645\u062e\u0632\u0646 Okteto Helm \u0631\u0627 \u0628\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a Helm \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>helm repo add okteto https:\/\/charts.okteto.com<\/code><\/pre>\n<\/div>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u062e\u0632\u0646 Okteto Helm \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0628\u0627\u06cc\u062f \u0645\u062e\u0627\u0632\u0646 Helm \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u0622\u062e\u0631\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u0645\u0648\u062f\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>helm repo update<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 \u06cc\u06a9 config.yaml \u0628\u0631\u0627\u06cc Okteto \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano config.yaml<\/code><\/pre>\n<\/div>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u06a9\u0644\u06cc\u062f \u0645\u062c\u0648\u0632 Okteto\u060c \u0632\u06cc\u0631 \u062f\u0627\u0645\u0646\u0647 \u0648 \u0633\u0627\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>license: FT7YCAYBAEDUY2LDMVXHGZIB76BAAAIDAECEIYLUMEAQUAABAFJAD74EAAAQCUYB76CAAAAABL7YGBIBAL7YMAAAAD77N74CAH7YU6ZCOZSXE43JN5XCEORSFQRGK3LBNFWCEORCNBUXIZLTNBVGK5DIOZQUA3DJNZ2XQYTVPIXGG33NEIWCEY3PNVYGC3TZEI5CE3DJNZ2XQYTVPIRCYITTMVQXI4ZCHIZTALBCORUWK4RCHIRHGY3BNRSSELBCORZGSYLMEI5HI4TVMUWCEZLOMQRDUIRSGAZDILJQGQWTCMCUGA2TUMJUHI2DQWRCPUATCAWDZA5DGNLGYAT25X6NRCJVJNWBQMG2LD7DWY36ZYXOZ7X5B37HZOBHXYV7OSCZ5HKH4G4EOIHJ7XOACMICRENEMSP5CHENLAE2XHXY44AMKKMHR5LB6IEWXNF56KJE6RGDVSGM2JW63F7DNP5ZS6REKK55RYIBMAA=\r\nsubdomain: okteto.example.com\r\nbuildkit:\r\npersistence:\r\nenabled: true\r\nregistry:\r\nstorage:\r\nfilesystem:\r\npersistence:\r\nenabled: true<\/code><\/pre>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 Okteto \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc config.yaml \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>helm install okteto okteto\/okteto -f config.yaml --namespace okteto --create-namespace<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0646\u0635\u0628 Okteto\u060c \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputNAME: okteto\r\nLAST DEPLOYED: Tue Mar 12 20:27:21 2024\r\nNAMESPACE: okteto\r\nSTATUS: deployed\r\nREVISION: 1\r\nTEST SUITE: None\r\nNOTES:\r\nCongratulations! Okteto is successfully installed!\r\nFollow these steps to complete your domain configuration:\r\n1. Create a wildcard A record \"*.okteto.example.com\", pointing it to the Okteto NGINX ingress controller External-IP:\r\n$ kubectl get service -l=app.kubernetes.io\/name=ingress-nginx,app.kubernetes.io\/component=controller --namespace=okteto\r\n2. Access your Okteto instance at `https:\/\/okteto.okteto.example.com\/login#token=88f8cc11`<\/code><\/pre>\n<\/div>\n<p>\u0645\u062f\u062a\u06cc \u0635\u0628\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0622\u062f\u0631\u0633 IP \u0631\u0627 \u06a9\u0647 DigitalOcean \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u0628\u0647 NGINX Ingress \u06a9\u0647 \u0628\u0647\u200c\u062a\u0627\u0632\u06af\u06cc \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0628\u062e\u0634\u06cc \u0627\u0632 Okteto \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f\u060c \u062a\u062e\u0635\u06cc\u0635 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>kubectl get service -l=app.kubernetes.io\/name=ingress-nginx,app.kubernetes.io\/component=controller --namespace=okteto<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\r\nokteto-ingress-nginx-controller LoadBalancer 10.101.31.239 45.76.14.191 80:31150\/TCP,443:31793\/TCP 3m21s<\/code><\/pre>\n<\/div>\n<p>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0622\u062f\u0631\u0633 EXTERNAL-IP \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 DNS \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 * \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0646\u0645\u0648\u0646\u0647 Okteto \u062e\u0648\u062f \u062f\u0631 https:\/\/okteto.okteto.example.com\/login#token=88f8cc11 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-6-okteto-cli-%d8%b1%d8%a7-%d9%86%d8%b5%d8%a8-%d9%88-%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c-%da%a9%d9%86%db%8c%d8%af\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1482\"  height=\"746\"  class=\"aligncenter wp-image-15343 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1482px) 100vw, 1482px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10.png 1482w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-300x151.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-1024x515.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-768x387.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-110x55.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-200x101.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-380x191.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-255x128.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-550x277.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-800x403.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/19151753\/1-10-1160x584.png 1160w\" ><br \/>\n\u0645\u0631\u062d\u0644\u0647 6 &#8211; Okteto CLI \u0631\u0627 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/h2>\n<p>Okteto CLI \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 Kubernetes \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f Okteto CLI \u0631\u0627 \u0631\u0648\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0648 macOS \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 curl \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f. \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo curl https:\/\/get.okteto.com -sSfL | sh<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u0646\u0635\u0628\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 Okteto CLI \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>okteto version<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0646\u0633\u062e\u0647 Okteto CLI \u0646\u0635\u0628 \u0634\u062f\u0647 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0634\u0645\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Outputokteto version 2.25.2<\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0631\u0645\u0632\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0627 Okteto CLI \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>\/* okteto context use https:\/\/okteto.okteto.example.com --token 88f8cc11 --insecure-skip-tls-verifycode... *\/<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0622\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output \u2713 Using okteto-admin @ okteto.okteto.example.com<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 Okteto CLI \u0634\u0645\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>okteto context list<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputName Namespace Builder Registry\r\nhttps:\/\/okteto.okteto.example.com * okteto-admin tcp:\/\/buildkit.okteto.example.com:443 registry.okteto.example.com\r\nvke-4b7aaaa6-78fa-4a19-9fb3-cf7b8c1ec678 default docker -<\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-7-%d9%85%d8%a7%d9%86%db%8c%d9%81%d8%b3%d8%aa-okteto-%d8%ae%d9%88%d8%af-%d8%b1%d8%a7-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%da%a9%d9%86%db%8c%d8%af\">\u0645\u0631\u062d\u0644\u0647 7 &#8211; \u0645\u0627\u0646\u06cc\u0641\u0633\u062a Okteto \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u0627\u0646\u06cc\u0641\u0633\u062a Okteto \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062e\u0648\u062f \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 okteto.yaml \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0627\u062f\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano okteto.yaml<\/code><\/pre>\n<\/div>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>deploy:\r\n- kubectl apply -f k8s.yaml\r\ndev:\r\nmy-app:\r\ncommand: bash\r\nenvironment:\r\n- FLASK_ENV=development\r\nsync:\r\n- .:\/app\r\nreverse:\r\n- 9000:9000\r\nvolumes:\r\n- \/root\/.cache\/pip<\/code><\/pre>\n<\/div>\n<h5 id=\"%d8%af%d8%b1-%d9%81%d8%a7%db%8c%d9%84-%d9%81%d9%88%d9%82\">\u062f\u0631 \u0641\u0627\u06cc\u0644 \u0641\u0648\u0642:<\/h5>\n<ul>\n<li>deploy: \u0627\u06cc\u0646 \u0628\u062e\u0634 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u0648\u0642\u062a\u06cc okteto up \u06cc\u0627 okteto deploy \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c Okteto \u062f\u0633\u062a\u0648\u0631 kubectl application -f k8s.yaml \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0646\u0627\u0628\u0639 Kubernetes \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 k8s.yaml \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u062c\u062f\u0627 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062e\u0648\u062f \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>command: bash: \u062f\u0633\u062a\u0648\u0631\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0634\u0631\u0648\u0639 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.<\/li>\n<li>Environment: \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c FLASK_ENV \u0631\u0627 \u0631\u0648\u06cc \u062a\u0648\u0633\u0639\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>SYNC: \u067e\u0648\u0634\u0647 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0628\u06cc\u0646 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0648 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0641\u0639\u0644\u06cc (.) \u0631\u0627 \u0628\u0627 \/app \u062f\u0631 \u062f\u0627\u062e\u0644 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0647\u0645\u06af\u0627\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>Reverse: \u0642\u0648\u0627\u0646\u06cc\u0646 \u062d\u0645\u0644 \u0648 \u0646\u0642\u0644 \u067e\u0648\u0631\u062a \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u067e\u0648\u0631\u062a \u0647\u0627 \u0631\u0627 \u0627\u0632 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u062f\u0647\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u067e\u0648\u0631\u062a 9000 \u0631\u0627 \u0627\u0632 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0628\u0647 \u067e\u0648\u0631\u062a 9000 \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0641\u0648\u0631\u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>volumes: \u062d\u062c\u0645 \u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \/root\/.cache\/pip \u0631\u0627 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u06a9\u0634 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u067e \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u0648\u062f\u060c \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062f\u0631 \u062e\u0648\u0634\u0647 Kubernetes \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>okteto deploy<\/code><\/pre>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632\u060c \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Outputdeployment.apps\/my-app created\r\nservice\/my-app created\r\ningress.networking.k8s.io\/my-app created\r\ni There are no available endpoints for 'Okteto'.\r\nFollow this link to know more about how to create public endpoints for your application:\r\nhttps:\/\/www.okteto.com\/docs\/cloud\/ssl\/\r\n\u2713 Development environment 'Okteto' successfully deployed\r\ni Run 'okteto up' to activate your development container<\/code><\/pre>\n<\/div>\n<p>\u0633\u067e\u0633\u060c \u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Okteto \u0631\u0627 \u0628\u0627\u0632\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0633\u062a\u0642\u0631 \u0634\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1520\"  height=\"745\"  class=\"aligncenter wp-image-15345 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1520px) 100vw, 1520px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8.png 1520w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-300x147.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-1024x502.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-768x376.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-110x54.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-200x98.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-380x186.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-255x125.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-550x270.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-800x392.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/19152700\/2-8-1160x569.png 1160w\" ><br \/>\n\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 URL https:\/\/my-app-okteto-admin.okteto.example.com \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-8-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%d8%b1%d8%a7-%d9%85%d8%b3%d8%aa%d9%82%db%8c%d9%85%d8%a7%d9%8b-%d8%af%d8%b1-kubernetes\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1009\"  height=\"493\"  class=\"aligncenter wp-image-15346 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1009px) 100vw, 1009px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7.png 1009w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-300x147.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-768x375.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-110x54.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-200x98.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-380x186.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-255x125.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-550x269.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/19152752\/3-7-800x391.png 800w\" ><br \/>\n\u0645\u0631\u062d\u0644\u0647 8 &#8211; \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 Kubernetes \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u06cc\u062f<\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634\u060c \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 okteto up \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0631 \u0631\u0648\u06cc Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u06a9\u062f \u0645\u062d\u0644\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0647\u0645\u06af\u0627\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06a9\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 IDE \u06cc\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u062f\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u0648 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062f\u0631 Kubernetes \u0647\u0645\u06af\u0627\u0645 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>okteto up<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644 okteto.yaml \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output i Using okteto-admin @ okteto.okteto.example.com as context\r\ni 'Okteto' was already deployed. To redeploy run 'okteto deploy' or 'okteto up --deploy'\r\ni Build section is not defined in your okteto manifest\r\n\u2713 Persistent volume successfully attached\r\n\u2713 Images successfully pulled\r\n\u2713 Files synchronized\r\nContext: okteto.okteto.example.com\r\nNamespace: okteto-admin\r\nName: my-app\r\nReverse: 9000 &lt;- 9000\r\nroot@my-app-okteto-7767588c8d-ndzj7:\/app#<\/code><\/pre>\n<\/div>\n<p>\u0628\u0639\u062f\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>python3 app.py<\/code><\/pre>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output * Serving Flask app 'app'\r\n* Debug mode: on\r\nWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.\r\n* Running on all addresses (0.0.0.0)\r\n* Running on http:\/\/127.0.0.1:5000\r\n* Running on http:\/\/10.244.97.92:5000\r\nPress CTRL+C to quit\r\n* Restarting with stat\r\n* Debugger is active!\r\n* Debugger PIN: 126-620-675<\/code><\/pre>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0641\u0627\u06cc\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 app.py \u062e\u0648\u062f \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nano app.py<\/code><\/pre>\n<\/div>\n<p>\u062e\u0637 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>return \"Hello, This is a simple Python App Deployed on Kubernetes\"<\/code><\/pre>\n<\/div>\n<p>\u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0628\u0646\u062f\u06cc\u062f. Okteto \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u062f\u0627\u062f\u0647 \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0641\u0648\u0631\u0627\u064b \u062f\u0631 Kubernetes \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0647 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u062f \u0648 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u062c\u062f\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0635\u0641\u062d\u0647 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1164\"  height=\"548\"  class=\"aligncenter wp-image-15347 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1164px) 100vw, 1164px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6.png 1164w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-300x141.png 300w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-1024x482.png 1024w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-768x362.png 768w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-110x52.png 110w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-200x94.png 200w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-380x179.png 380w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-255x120.png 255w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-550x259.png 550w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-800x377.png 800w, https:\/\/cdn.itpiran.net\/2024\/04\/19153409\/4-6-1160x546.png 1160w\" ><br \/>\n\u0646\u062a\u06cc\u062c\u0647<\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u067e\u0627\u06cc\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Okteto \u0622\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0648\u0634\u0647 Kubernetes \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f. \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc Okteto \u0628\u0631\u0627\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u0645\u062d\u0644\u06cc \u0628\u0627 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0627\u0645\u06a9\u0627\u0646 \u062a\u06a9\u0631\u0627\u0631 \u0633\u0631\u06cc\u0639 \u062a\u0648\u0633\u0639\u0647 \u0648 \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0641\u0648\u0631\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062f \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc\u060c Okteto \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u062f\u0648\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0627\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a Kubernetes \u0628\u0631 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u0646\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"\u306f\u3058\u3081\u306b Okteto \u306f\u3001Kubernetes \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u30d7\u30ed\u30bb\u30b9\u3092\u7c21\u7d20\u5316\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u958b\u767a\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u3059\u3002","protected":false},"author":1,"featured_media":15348,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,363],"tags":[376,366],"class_list":{"0":"post-15341","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-programming","9":"tag-python","10":"tag-366"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/ja\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 Okteto \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/ja\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-19T12:11:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto\",\"datePublished\":\"2024-04-19T12:11:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/\"},\"wordCount\":216,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/19154006\\\/p.jpg\",\"keywords\":[\"Python\",\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/19154006\\\/p.jpg\",\"datePublished\":\"2024-04-19T12:11:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/19154006\\\/p.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/04\\\/19154006\\\/p.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-python-application-on-kubernetes-with-okteto\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/ja\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Okteto\u3092\u4f7f\u3063\u3066Kubernetes\u306bPython\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u65b9\u6cd5 - ITPiran Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/ja\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/","og_locale":"ja_JP","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 Okteto \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc Kubernetes \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/ja\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-04-19T12:11:02+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"admin","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"5\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto","datePublished":"2024-04-19T12:11:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/"},"wordCount":216,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg","keywords":["Python","\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/","name":"Okteto\u3092\u4f7f\u3063\u3066Kubernetes\u306bPython\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u65b9\u6cd5 - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg","datePublished":"2024-04-19T12:11:02+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/04\/19154006\/p.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-python-application-on-kubernetes-with-okteto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 Kubernetes \u0628\u0627 Okteto"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran\u30d6\u30ed\u30b0","description":"\u30a4\u30e9\u30f3\u306e\u6301\u7d9a\u53ef\u80fd\u306a\u8cbf\u6613\u306b\u95a2\u3059\u308b\u30cb\u30e5\u30fc\u30b9\u3068\u8a18\u4e8b","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"\u6301\u7d9a\u53ef\u80fd\u306a\u30a4\u30e9\u30f3\u30d3\u30b8\u30cd\u30b9\u30d6\u30ed\u30b0","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"\u7ba1\u7406\u8005","url":"https:\/\/www.itpiran.net\/blog\/ja\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/posts\/15341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/comments?post=15341"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/posts\/15341\/revisions"}],"predecessor-version":[{"id":15349,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/posts\/15341\/revisions\/15349"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/media\/15348"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/media?parent=15341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/categories?post=15341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/ja\/wp-json\/wp\/v2\/tags?post=15341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}