{"id":1562,"date":"2021-07-30T17:49:46","date_gmt":"2021-07-30T09:49:46","guid":{"rendered":"https:\/\/egonlin.com\/?p=1562"},"modified":"2022-04-26T13:32:22","modified_gmt":"2022-04-26T05:32:22","slug":"%e7%ac%ac%e4%b8%89%e8%8a%82%ef%bc%9a%e9%80%9a%e8%bf%87k8s%e9%83%a8%e7%bd%b2django","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=1562","title":{"rendered":"\u7b2c\u4e09\u8282\uff1a\u901a\u8fc7k8s\u90e8\u7f72django"},"content":{"rendered":"<h1>jenkins\u901a\u8fc7k8s\u90e8\u7f72django<\/h1>\n<h2>\u4e00\u3001\u90e8\u7f72mysql<\/h2>\n<h3>1\u3001\u90e8\u7f72\u547d\u540d\u7a7a\u95f4<\/h3>\n<pre><code class=\"language-yaml\">apiVersion: v1\nkind: Namespace\nmetadata:\n  name: mysql<\/code><\/pre>\n<h3>2\u3001\u90e8\u7f72service<\/h3>\n<pre><code class=\"language-yaml\">kind: Service\napiVersion: v1\nmetadata:\n  name: mysql-svc\n  namespace: mysql\nspec:\n  ports:\n    - port: 3306\n      targetPort: 3306\n      name: mysql\n      protocol: TCP\n  selector:\n    app: mysql\n    deploy: django<\/code><\/pre>\n<h3>3\u3001\u90e8\u7f72PVC<\/h3>\n<pre><code class=\"language-yaml\">apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: pv-mysql-pvc\n  namespace: mysql\nspec:\n  storageClassName: nfs-client\n  accessModes:\n    - &quot;ReadWriteMany&quot;\n  resources:\n    requests:\n      storage: &quot;20Gi&quot;<\/code><\/pre>\n<h3>4\u3001\u90e8\u7f72Deployment<\/h3>\n<pre><code class=\"language-yaml\">apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: mysql-deployment\n  namespace: mysql\nspec:\n  selector:\n    matchLabels:\n      app: mysql\n      deploy: django\n  template:\n    metadata:\n      labels:\n        app: mysql\n        deploy: django\n    spec:\n      nodeName: k8s-node-02\n      containers:\n        - name: mysql\n          image: mysql:5.7\n          env:\n            - name: MYSQL_ROOT_PASSWORD\n              value: &quot;123456&quot;\n            - name: MYSQL_DATABASE\n              value: &quot;django&quot;\n            - name: MYSQL_USER\n              value: djg\n            - name: MYSQL_PASSWORD\n              value: &quot;123456&quot;\n          volumeMounts:\n            - mountPath: \/var\/lib\/mysql\n              name: mysql-data\n      volumes:\n        - name: mysql-data\n          persistentVolumeClaim:\n            claimName: pv-mysql-pvc<\/code><\/pre>\n<h2>\u4e8c\u3001\u51c6\u5907django\u955c\u50cf<\/h2>\n<h3>1\u3001\u7f16\u5199dockerfile\u955c\u50cf<\/h3>\n<pre><code class=\"language-bash\">[root@docker01 ~\/k8s_Django\/image]# cat Dockerfile \nFROM python:3.6.13\n\nWORKDIR \/opt\n\n# \u5b89\u88c5Django\u4f9d\u8d56\nADD requirement.txt \/opt\nRUN pip install -r requirement.txt\n\nADD transfer.sh \/opt\n\nCMD [&quot;\/bin\/sh&quot;,&quot;-c&quot;,&quot;\/opt\/transfer.sh&quot;]<\/code><\/pre>\n<h3>2\u3001\u7f16\u5199\u90e8\u7f72\u4f9d\u8d56\u6e05\u5355<\/h3>\n<p><\/p><div id=\"rml_readmorelogin_placeholder\" style=\"position:relative;\"><div id=\"rml_fade_content\" style=\"position: absolute;\r\ntop:-10em;\r\nwidth:100%;\r\nheight:10em;\r\nbackground: -webkit-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -moz-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -o-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\r\nbackground-image: -ms-linear-gradient(rgba(255, 255, 255, 0) 0%,#ffffff 100%);\"><\/div><div class=\"wpf-controller aru_rml_from_in_post\" style=\"background-color:#eeeeee;border:5px solid #cce6ff;\" id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><h2 id=\"Header\">\u67e5\u770b\u66f4\u591a<\/h2><div id=\"Message\"><p>\u8054\u7cfb\u7ba1\u7406\u5458\u5fae\u4fe1tutu19192010\uff0c\u6ce8\u518c\u8d26\u53f7<\/p>\n<\/div><div id=\"StatusBarHeader\"><\/div><form id=\"ARU_ReadMoreLogin_ReadMoreLoginController\"><input name=\"post_id\" value=\"1562\" type=\"hidden\"\/><input name=\"_init_callback\" value=\"InitLogin\" type=\"hidden\"\/><input name=\"post_id\" value=\"1562\" type=\"hidden\"\/><input name=\"rt_ype\" value=\"1\" type=\"hidden\"\/><input name=\"nonce\" value=\"877c8341a8\" type=\"hidden\"\/><input name=\"_wpnonce\" value=\"ee095c8387\" type=\"hidden\"\/><input name=\"_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_proxy_controller\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginController\" type=\"hidden\"\/><input name=\"_view\" value=\"ARU_ReadMoreLogin\\ReadMoreLoginView\" type=\"hidden\"\/><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\" width=\"400px\"><table class=\"wpf-table-placeholder\"><tbody class=\"wpf-table-placeholder\"><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Username:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"username\" value=\"\" type=\"text\"\/><\/td><\/tr><tr class=\"wpf-table-placeholder\"><th class=\"wpf-table-placeholder-input\"><label class=\"wpf-label\">Password:<\/label><\/th><\/tr><tr class=\"wpf-table-placeholder\"><td class=\"wpf-table-placeholder-input\"><input class=\"regular-text text_input\" name=\"password\" value=\"\" type=\"password\"\/><\/td><\/tr><\/tbody><\/table><p class=\"wpf-table-placeholder submit\"><button class=\"wp_plugin_framework_ajax_button\" type=\"button\" style=\"background-color:#4D90FE;;color:#ffffff;;border:1px solid #3079ed;\" name=\"_event\" value=\"ButtonLogin\">Log in<\/button><\/p><\/td><td class=\"wpf-table-placeholder-input\"><\/td><\/tr><\/tbody><\/table><\/form><div id=\"ButtonStartRegister\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=register\">Register<\/a><\/div><div id=\"Link1\"><a href=\"https:\/\/egonlin.com\/wp-login.php?action=lostpassword\">Forgotten username or password?<\/a><\/div><div id=\"StatusBarFooter\"><\/div><\/div><\/div><div id=aru_remaining_content><\/div>","protected":false},"excerpt":{"rendered":"<p>jenkins\u901a\u8fc7k8s\u90e8\u7f72django \u4e00\u3001\u90e8\u7f72mysql 1\u3001\u90e8\u7f72\u547d\u540d\u7a7a\u95f4 apiVersion: v1  [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1565,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[175],"tags":[21,178,179,181,182,183,19,22,180,20],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/1562"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1562"}],"version-history":[{"count":0,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/1562\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/media\/1565"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}