<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های st4rtx</title>
        <link>https://virgool.io/feed/@st4rtx</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 13:12:51</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>st4rtx</title>
            <link>https://virgool.io/@st4rtx</link>
        </image>

                    <item>
                <title>ساخت ssl رایگان خودکار در کوبرنتیس و رنچر</title>
                <link>https://virgool.io/@st4rtx/%D8%B3%D8%A7%D8%AE%D8%AA-ssl-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1-%D8%AF%D8%B1-%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B3-%D9%88-%D8%B1%D9%86%DA%86%D8%B1-waihb6tv28td</link>
                <description>سلامدر این مطلب میخام روش نصب و راه اندازی ssl lets encrypt را در کوبرنتیس و رنچر توضیح بدم چون خودم خیلی سرچ کردم در موردش !یکی از سرویس های ضروری مورد استفاده در کوبر و رنچر سرویس cert manager هست که وظیفه ساخت و تمدید خودکار ssl را دارد و بصورت رایگان میتونید از سرویس https استفاده کنید برای سرویس هاتون.برای نصب این سرویس روش های مختلفی پیشنهاد شده که من خیلی هاشون رو تست کردم که این روش به نظرم راحت تر و بدون ایراد بودبرای نصب پاد های مورد نیاز با توجه به نسخه کوبرنتیس از دستور زیر استفاده کنید:# Kubernetes 1.15+$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.1/cert-manager.crds.yaml# Kubernetes &lt;1.15$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.1/cert-manager-legacy.crds.yamlبا دستور بالا همه پاد های مورد نیاز خودکار براتون نصب میشه بعد از این مرحله میتونید صحت نصب رو با روش زیر تست کنیداول باید یه issuer بسازید تا یه cert تست بگیره براتون :$ cat &lt;&lt;EOF &gt; test-resources.yamlapiVersion: v1kind: Namespacemetadata:  name: cert-manager-test---apiVersion: cert-manager.io/v1alpha2kind: Issuermetadata:  name: test-selfsigned  namespace: cert-manager-testspec:  selfSigned: {}---apiVersion: cert-manager.io/v1alpha2kind: Certificatemetadata:  name: selfsigned-cert  namespace: cert-manager-testspec:  dnsNames:    - example.com  secretName: selfsigned-cert-tls  issuerRef:    name: test-selfsignedEOF$ kubectl apply -f test-resources.yamlحالا با استفاده از دستور زیر ببینید که نصبتون شالم بوده یا نه:$ kubectl describe certificate -n cert-manager-testاگر همه چی خوب انجام شده باشه باید خروجی زیر را ببینید:Events:  Type    Reason      Age   From          Message  ----    ------      ----  ----          -------  Normal  CertIssued  4s    cert-manager  Certificate issued successfullyدر مرحله بعد باید issuer اصلی رو با توجه به زیر ساخت مورد استفاده برای لود بالانسرتون بسازید در اینجا من برای Ingress مینویسم.ابتدا فایل کافیگ رو بسازید ایمیل رو وارد کنید و اجراش کنید:apiVersion: cert-manager.io/v1alpha2kind: ClusterIssuermetadata:  name: letsencrypt-prodspec:  acme:    # You must replace this email address with your own.    # Let&#x27;s Encrypt will use this to contact you about expiring    # certificates, and issues related to your account.    email: user@example.com    server: https://acme-staging-v02.api.letsencrypt.org/directory    privateKeySecretRef:      # Secret resource that will be used to store the account&#x27;s private key.      name: example-issuer-account-key    # Add a single challenge solver, HTTP01 using nginx    solvers:    - http01:        ingress:          class: nginx$ kubectl apply -f issuer.yamlاز این به بعد هر رکوردی که با annotation زیر به عنوان ingress تعریف بشه issuer براش cert رو میسازهcert-manager.io/cluster-issuer: letsencrypt-prodبطور مثال :apiVersion: extensions/v1beta1kind: Ingressmetadata:  annotations:    # add an annotation indicating the issuer to use.    cert-manager.io/cluster-issuer:letsencrypt-prod  name: myIngress  namespace: myIngressspec:  rules:  - host: myingress.com    http:      paths:      - backend:          serviceName: myservice          servicePort: 80        path: /  tls: # &lt; placing a host in the TLS config will indicate a certificate should be created  - hosts:    - myingress.com    secretName: myingress-cert # &lt; cert-manager will store the created certificate in this secret.برای انجام این مراحل در رنچر مثل همین روش انجام میشه فقط وقتی ingress رو ساختید باید در annotation های ingress اسم issuer مشخص بشه:cert-manager.io/cluster-issuer:letsencrypt-prodو نام دامنه هم در قسمت ssl وارد بشه بعد از ساخت Ingress باید edit yaml رو روی اون Ingress بزنید و نام cert جدید رو مشخص کنید به شکل زیر:tls: # &lt; placing a host in the TLS config will indicate a certificate should be created  - hosts:    - myingress.com    secretName:myingress-certقسمت secretName رو باید خدتون اضافه کنید و ذخیره کنید.بعد از ذخیره issuer بصورت خودکار cert رو میسازه و میتونید استفاده کنید...</description>
                <category>st4rtx</category>
                <author>st4rtx</author>
                <pubDate>Sat, 04 Jul 2020 14:39:30 +0430</pubDate>
            </item>
                    <item>
                <title>پاک کردن کامل کوبرنتیس از روی سرور</title>
                <link>https://virgool.io/@st4rtx/%D9%BE%D8%A7%DA%A9-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D8%A7%D9%85%D9%84-%DA%A9%D9%88%D8%A8%D8%B1%D9%86%D8%AA%DB%8C%D8%B3-%D8%A7%D8%B2-%D8%B1%D9%88%DB%8C-%D8%B3%D8%B1%D9%88%D8%B1-lswl0wjaqf4x</link>
                <description>شاید براتون این مشکل ایجاد شده باشه که نیاز داشته باشید کلا کوبرنتیس رو پاک کنید و از اول نصب کنید!برای این کار یه چند مورد زیر رو باید انجام بدید تا همه چی پاک بشه وگرنه در نصب بعدی قطعا به مشکل میخورید:دستورات زیر را به ترتیب اجرا کنید:sudo docker rm &#x60;docker ps -a -q&#x60;sudo docker rmi &#x60;docker images -q&#x60;sudo kubeadm reset sudo yum remove kubeadm kubectl kubelet kubernetes-cni kube*    sudo yum autoremove sudo rm -rf ~/.kube*دقت کنید همه کانتینر ها دارن پاک میشن !برای اطمینان از اینکه همه چیز پاک شده این کار هارو هم باید انجام بدید:rm -rf /var/lib/dockerrm -rf /var/lib/kubeletrm -rf /var/lib/etcdاگر در پاک کردن پوشه Kubelet به مشکل خوردید این دستور کمکتون میکنه:umount $(df -HT | grep &#x27;/var/lib/kubelet/pods&#x27; | awk &#x27;{print $7}&#x27;)</description>
                <category>st4rtx</category>
                <author>st4rtx</author>
                <pubDate>Tue, 09 Jun 2020 17:38:44 +0430</pubDate>
            </item>
                    <item>
                <title>بروزرسانی نسخه کرنل سیستم عامل centos 7</title>
                <link>https://virgool.io/@st4rtx/%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C-%D9%86%D8%B3%D8%AE%D9%87-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-centos-7-ncfb12yi0ma8</link>
                <description>برای دوستانی که از داکر و کوبرنتیس استفاده میکنند ممکن این مشکل پیش بیاد که بدلیل پایین بودن نسخه پیش فرض کرنل در centos 7 به مشکلات زیادی خورده باشنکلا پیشنهاد میشه همیشه از آخرین نسخه داکر استفاده بشه اما نکته ای که پیش میاد اینه که آخرین نسخه روی این کرنل پیش فرض نصب نمیشه و مشکلات از همین جا شروع میشهبرای بروزرسانی نسخه کرنل از روش زیر میتونید استفاده کنید:برای دیدن نسخه کرنل از این دستور میتونید استفاده کنید:uname -snrدقت کنید نسخه کرنل باید بالاتر از 3.10 باشه وگرنه مشکلات داکر ولتون نمیکنه!دستورات زیر رو به ترتیب اجرا کنیدrpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpmyum --enablerepo=elrepo-kernel install kernel-mlsudo awk -F\&#x27; &#x27;$1==&quot;menuentry &quot; {print i++ &quot; : &quot; $2}&#x27; /etc/grub2.cfgحالا با توجه به نتیحه دستور قبل باید شماره نسخه مورد نظر رو به عنوان پیش فرض بوت تعیین کنید تا از اون به بعد با اون نسخه بوت بشهsudo grub2-set-default 0sudo grub2-mkconfig -o /boot/grub2/grub.cfgsudo rebootبعد از ریست شدن سرور با کرنل جدید بوت میشه و میتونید نسخه آخر داکر رو هم نصب کنید.</description>
                <category>st4rtx</category>
                <author>st4rtx</author>
                <pubDate>Mon, 08 Jun 2020 16:53:20 +0430</pubDate>
            </item>
                    <item>
                <title>تغییر storage driver در داکر</title>
                <link>https://virgool.io/@st4rtx/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-storage-driver-%D8%AF%D8%B1-%D8%AF%D8%A7%DA%A9%D8%B1-dusm96xvovqw</link>
                <description>موقع استفاده از داکر یک نکته بسیار مهم storage driver  هست چون اگر به این نکته توجه نشه مشکلات زیادی در استفاده از داکر ایجاد میشه.نکته ای که هست در centos 7  بصورت پیش فرض در ایجاد درایو ها پارامتر ftpye برابر 0 هست و همین مورد باعث میشه تا داکر از مدل overlay به عنوان storage driver نتونه استفاده کنه و این مورد مشکلات عجیبی ایجاد میکنه .برای حل این مشکل از طریق روش زیر میتونید ftype رو فعال کنید و مشکل رو حل کنید.روش انجام کار به این شکل هست که با بوت کردن یه لینوکس ابتدا یه بکاپ از درایو گرفته میشه و بعد ftype فعال میشه و بعد بکاپ برگردونده میشه. توجه داشته باشید که بصورت live امکان تغییر این پارامتر در درایو نیست.شاید روشش یکم خشن به نظر برسه اما من چند بار امتحان کردم و جواب داده.برای انجام این روش ابتدا باید server رو با سی دی CentOS-7-x86_64-LiveGNOME-1804.iso  بوت کنید.سپس به ترتیب دستورات زیر را در ترمینال اجرا کنید:sudo -svgscanدر این مرحله باید نام volume group خودتون رو در دستور زیر بزنید.  vgchange -ay centoslvscanmkdir /mnt/rootmount /dev/centos/root /mnt/rootدر این مرحله یه بکاپ از درایو رو به یک سرور دیگه میفرستید xfsdump -J - /mnt/root | ssh &lt;host&gt; &#x27;cat &gt;/data/rootfs.dump&#x27;umount /mnt/rootmkfs.xfs -f -n ftype=1 /dev/centos/rootmount /dev/centos/root /mnt/rootssh &lt;host&gt; &#x27;cat /data/rootfs.dump&#x27; | xfsrestore -J - /mnt/rootrebootو تمام!حالا اگر وارد سرور بشید و با دستور زیر چک کنید میبینید که پارامتر ftype فعال شدهxfs_info /حالا باید storage driver  داکر رو تغییر بدیدبرای این کار این مراحل ر انجام بدید:systemctl stop dockercp -au /var/lib/docker /var/lib/docker.bkEdit /etc/docker/daemon.json  :{  &quot;storage-driver&quot;: &quot;overlay2&quot;}sudo systemctl start dockerحالا اگر docker info بگیرید میبینید که storage driver عوض شده.***دقت کنید بعد از تغییر storage driver اگر کانتینری در درایور قبلی داشته باشید لود نمیشه و از اول باید بسازیدش***نکته ای دیگه که هست اینه که اگر در بروزرسانی داکر مشکلی داشتید باید نسخه کرنل سرور رو هم بروزرسانی کنیدبرای این کار هم پستی گذاشتم میتونید به اون مراجعه کنید.</description>
                <category>st4rtx</category>
                <author>st4rtx</author>
                <pubDate>Mon, 08 Jun 2020 12:45:24 +0430</pubDate>
            </item>
            </channel>
</rss>