Category Container Technology

The Cloud Camp Week#06 (K8S Part1:Overview)

สัปดาห์นี้เป็นสัปดาห์ที่ 6 แล้ว งานเยอะระดับนึงครับ แน่นเลย และเรื่องวันนี้แน่นมาก และเป็นเรื่องใหม่ เคยได้ยิน แตะบ้าง แต่ไม่ได้ invest กันมันสักเท่าไหรครับ Container Orchestration โดยหัวข้อจะมี ดังนี้ Sketch Note Why Kubernetes & Benefit Kubernetes Overview – Pods – Deployment – Service (Virtual Load Balancer) – Ingress Kubernetes Architecture (Basic) – Kubernetes…

The Cloud Camp Week#03 (Container 101)

สำหรับ Week มองว่าการทบทวนเรื่อง Container ของตัวผมเอง ใช้งานมาระดับนึง มีเรื่องที่รู้ และไม่รู้ด้วย ตาม Style การเรียนของผม แบบลักจำมาจากงาน Meetup ครับ มาลองดูสรุปสำหรับสัปดาห์นี้กันครับ 1. Why Container? ก่อนที่เราจะรู้ว่าทำไมถึงต้องใช้ Container ต้องมา Recap กันก่อน ว่าเมื่อก่อนเอา Software ไปติดตั้งที่อื่นกันยังไงครับ จาก Code > Build > Executable File เจ้าตัว Executable File มาห่อเป็น Software Package เอาติดตั้ง…

Optimize Container image size

Container ships

จาก Blog ตอนก่อนที่ไปพบว่า docker image มีขนาดใหญ่มาก และถ้าปล่อยไปนานๆ ไม่น่าจะดีแน่นๆ หลังจากแก้ปัญหาเรียบร้อยไป ผมขอสรุป Step การ Optimize Docker image ครับ //ดองไปหลายเดือนกว่าจะเขียนจนจบได้ Best Practice – Use Minimal Base Images พยายามเลือกใช้ Base Image ที่เล็กที่สุด และน่าเชื่อถือด้วยครับ ส่วนใหญ่จะเป็นพวกตระกูล ข้อสังเกตุ – Minimize the Number of Layers การ Run Command…

ทำให้ตัว ICONV support TIS-620

จาก Blog ตอนก่อน Interface แล้วได้ TextFile 0 bytes ตอนนั้นผมได้ตัดสินใจว่าจะ Lock Base Image ก่อน แต่ทว่าไม่มีวี่แววที่จะแก้ไข แล้วมีช่วงเวลานึงที่ว่างๆมั้ง เลยคิดว่า Issue นี้ควรจะเข้ามาดูเองแล้ว เลยตัดสินใจศึกษาข้อมูลเพิ่มพบว่า ตัว ICONV มัน On Top จากตัว GCONV ที่สามารถพัฒนาให้รองรับ Encoding ใหม่ๆได้ ดังนั้น สรุปได้ว่าจริงๆ แล้วทีม Maintainer ของ Image Rocky / AlmaLinux น่าต้องการ Optimize…

[Container] แก้ปัญหา docker image โต

cargo ship unloading colorful containers in port

จาก Blog ตอนก่อนที่มีความสงสัยว่าทำไมขนาด Image ของ Container มันโต จึงได้ลองด้วย Podman history เพื่อตรวจสอบไป docker history ก็ใช้งานได้นะ แล้วที่นี่มาเจอคำสั่งที่ทำให้ Layer มันเพิ่มขึ้นแบบงงๆ ตามรูปครับ มันเกิดอะไรขึ้น ? รีดไขมัน – ปัญหาที่ 1: คำสั่ง chown / chown มีเนื้อที่เพิ่มมาแบบงงๆ – ปัญหาที่ 2: คำสั่ง yum install มีเนื้อที่เพิ่มมาแบบงงๆ จากที่แก้ปัญหาที่ 1 และ…

[PODMAN] มาดูกันว่า Image มันมีอดีตอะไร ทำไมถึงบวม

พอดีได้ Image เก่าที่ใช้งานอยู่ตัวนึงครับ ซึ่งขนาดมันใหญ่ประมาณ 3 GB พอ Build แต่ละรอบ มันขนาดบวมขึ้นเรื่อยๆนะ ด้วยความสงสัยเลยอยากรู้เหมือนกันว่ามันเพิ่มจากอะไร เลยลอง Research ดูพบว่า Podman History/ Docker History มาส่องอดีตกันครับ Reference

Interface แล้วได้ TextFile 0 bytes

ระหว่างที่ใช้ให้น้องทดสอบ Container น้องแจ้งข่าวร้ายมาว่า TextFile มันออก แต่มันได้ 0 bytes !!!!! ผมเลยใช้ให้น้องไล่คำสั่งของ Shell มา พบว่า หลังจากรู้คำสั่งแล้วลองเข้าไปรันใน Container กันครับ จะได้รู้ว่า Error จริงมัน คือ อะไร ? เจอ Error กวนตีนอีกครับ iconv: failed to start conversion processing: No such file or directory แต่จริงๆมันมีไฟล์นะ เลยนึกเคสตอน Implement RedHat8…

[PODMAN] rootless container error “Disk quota exceeded”

วันนี้เป็นปัญหาที่น่าปวดหัวเหมือนกันหลังจากใช้ Podman ไป 1 ปีนิดๆครับ อยู่ลูกค้าแจ้งปัญหามาว่า Disk quota exceeded มาจากไหน ? เดี๋ยวต้องไปหาที่มาเพิ่ม Solution ตรวจสอบก่อนว่า maxkey มีค่าเท่าไหร่ ด้วยคำสั่ง ลองดูจำนวนปัจจุบันสิ มีค่าเท่าไหร่ (ต้อง Login เข้าไป และรันแยก User นะ เพราะ ตัวระบบมันเก็บค่าแยก Per User (Ref: sysctl – Is kernel.keys.maxkeys per user or per key?) ในกรณีที่ค่าของมันเกิน…

[PODMAN] java.security.KeyManagementException: FIPS mode: only SunJSSE TrustManagers may be used

วันนี้น่าจะวันซวย Run Image ขึ้นที่ Site ลูกค้า แล้วเจอ Error นี้ครับ Environment Host redhat 8.2 with FIPS mode enable podman 2.0.5 Container Image Base Image rockylinux:8.5.20220308 (Version 8.5.20220308) openjdk version “11.0.15” 2022-04-19 LTS Application Spring Boot 2.6.6 How to fix อ๋อ อย่าลืมตรวจสอบด้วย…

[PODMAN] /var/tmp เต็ม

Blog ตอนนี้เกิดจากว่า มีน้องชอบแจ้งว่า disk ที่ลอง app server มันเต็มบ่อยๆ เลยทำให้ load container ไม่สำเร็จบ่อยๆ ผมเลยใช้ dutree ช่วยส่องหา path ที่มีอะไรแปลก /var/tmp มันมีอะไรแปลกนะ ทำไมมันถึงเต็ม ปกติตัว Container ที่ถูกสร้างมาจาก docker ตัว podman เวลา load image เข้ามา มันจะเอา path /var/tmp มาใช้งานเป็น tmp ชั่วคราวครับ ถ้า Path นี้มีขนาดเล็ก เวลานำ…