Giả sử như mình đang có một dự án WordPress đang chạy Virtual Machine hoặc Docker. Giờ đây sếp mong muốn chuyển dự án này lên Kubernetes, mình sẽ hướng dẫn các bạn đơn giản sử dụng ArgoCD để triển khai một dự án WordPress lên Kubernetes.
Bước 1: Bằng một cách nào đó, bạn phải backup sourcode và Database của WordPress đang chạy ở Virtual Machine hoặc Docker và chép chúng vào một Node Kubernetes nào đó trong cụm.
/home/wiki
├── [May 14 5:02] backup
│ └── [May 14 3:41] wiki-1013140523.tar.gz
├── [May 14 5:01] sourcecode
...
<đã lược bỏ bớt các file và thư mục của sourcecode>
...
│ ├── [Sep 16 2022] wp-activate.php
│ ├── [Mar 29 17:48] wp-admin
│ │ ├── [Apr 1 3:45] df-index.html
│ │ ├── [Apr 1 3:45] favicon.ico
│ │ ├── [Apr 20 13:36] index.html
│ │ ├── [Apr 1 3:45] README.md
│ │ └── [Apr 1 3:45] script.js
│ └── [Nov 29 15:51] xmlrpc.php
└── [May 14 3:13] wp_hoanghd.sql
Hãy nhìn vào thư mục /home/wiki của mình, mình đã backup toàn bộ nội dung của WordPress vào file /home/wiki/backup/wiki-1013140523.tar.gz, sau đó mình copy file này vào Node bất kỳ của cụm Kubernetes.
Tiếp theo mình sẽ giải nén file wiki-1013140523.tar.gz và bạn hãy nhìn cây thư mục trên bạn sẽ thấy đây là thư mục chứa các file mình đã backup và chuyển sang đây và giải nén chúng, bao gồm /home/wiki/sourcecode (chứa sourcecode của WordPress), /home/wiki/wp_hoanghd.sql (file database của WordPress).
Bước 2: Chuẩn bị manifest triển khai WordPress.
Để triển khai nhanh WordPress, mình đã có sẵn một dự án WordPress trắng được viết dưới dạng yaml, và mình sử dụng Kustomize để custom resource dự án này.
Bạn có thể nhìn vào cây thư mục dự án của mình dể dễ hình dung.
/home/kustomize/wordpress
├── base
│ ├── kustomization.yaml
│ ├── mysql
│ │ ├── deployment.yaml
│ │ ├── kustomization.yaml
│ │ ├── mysql-volume.yaml
│ │ ├── secret.yaml
│ │ └── service.yaml
│ └── wordpress
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── kustomization.yaml
│ ├── service.yaml
│ └── wordpress-volume.yaml
└── overlays
└── prod
├── ingress-patch.yaml
├── kustomization.yaml
├── mysql-deployment.yaml
├── mysql-longhorn-patch.yaml
├── namespace.yaml
├── wordpress-deployment.yaml
└── wordpress-longhorn-patch.yaml
5 directories, 18 files
Lưu ý phần này bạn có thể triển khai WordPress bằng bất cứ phương pháp nào cũng được nhé. Do mình có sẵn ArgoCD nên mình sẽ sử dụng nó kết hợp với Kustomize cho nhanh. Bạn cũng có thể tham khảo bài viết của mình “Cài đặt wordpress trên Kubernetes“.
Bước 3: Triển khai WordPress.
Tại giao diện ArgoCD bạn hãy thêm repo chứa manifest triển khai WordPress của bạn.
Tiếp theo mình tạo một dự án mới tên wiki.
Chọn repo chứa manifest triển khai WordPress, chọn đường dẫn tới chứa manifest Kustomize và tại phần Destination bạn nhớ chọn cụm Kubernetes của bạn, bạn có thể tạo một namespace ở đây và hãy bấm Create để tạo dự án này.
Sau khi bấm Create, ArgoCD sẽ cho bạn một cái nhìn tổng quan về cách thức triển khai WordPress của bạn. Hãy bấm Syns (1) và bấm tiếp Synchronize(2).
Trạng thái Sync OK (1) và thông báo App Healthy (2) cho biết app này đã có thể sử dụng được. Bạn có thể bấm vào (3) để mở nhanh url của WordPress.
Hoặc bạn có thể vào ingress để xem trước đó bạn đã khai báo url là gì theo cách bước ở hình dưới (do mình thích đổi giao diện hiển thị nên mình chọn bước (1), bạn có thể bỏ qua nếu không cùng sở thích với mình).
Tại đây bạn sẽ thấy phần khai báo host trong ingress của bạn.
Hoặc bạn cũng có thể xem trên giao diện dòng lệnh như dưới.
$ kubectl get po,svc,ing -n wiki-hoanghd
NAME READY STATUS RESTARTS AGE
pod/website-mysql-57f55c6ddc-gq59t 1/1 Running 0 5m28s
pod/website-wp-78dd7b9fbd-bxtfs 1/1 Running 0 5m28s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/website-mysql ClusterIP 10.101.38.166 <none> 3306/TCP 5m28s
service/website-wp LoadBalancer 10.109.30.88 192.168.13.208 80:31984/TCP 5m28s
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress.networking.k8s.io/website nginx wordpress.hoanghd.com 192.168.13.221 80 5m28s
Dùng trình duyệt web truy cập vào url http://wordpress.hoanghd.com
mà chúng ta đã khai báo trước đó.
Như vậy tới bước này chúng ta đã triển khai xong một trang WordPress trắng. Do mình muốn import dữ liệu từ wiki của mình đã backup vào đây nên mình sẽ dừng lại và không cài đặt kết nối WordPress.
Bước 4: Import Database.
Bạn có thể dùng lệnh kubectl get po -n <namespace>
để list các pod đang chạy dự án WordPress này. Bạn sẽ nhìn thấy có 2 pod và trong đó có một pod có tên website-mysql-57f55c6ddc-gq59t
sẽ chạy MySQL.
$ kubectl get po -n wiki-hoanghd
NAME READY STATUS RESTARTS AGE
website-mysql-57f55c6ddc-gq59t 1/1 Running 0 17m
website-wp-78dd7b9fbd-bxtfs 1/1 Running 0 17m
Hãy thử vào kiểm tra database tên wiki xem đã có dữ liệu gì chưa bằng cách dùng lệnh kubectl exec -it pod/<tên pod chạy MySQL> -n <namespace> bash
để vào thằng container chạy MySQL.
kubectl exec -it pod/website-mysql-57f55c6ddc-gq59t -n wiki-hoanghd bash
Khi đã vào được container, tiếp theo sử dụng lệnh mysql -u <DBUser> -p<DBPass> <DBName>
để kết nối vào MySQL bằng CLI, dùng lệnh show tables bạn sẽ thấy database wiki
chưa có dữ liệu gì cả.
root@website-mysql-57f55c6ddc-gq59t:/# mysql -u hoanghd -phoanghd wiki
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
Empty set (0.00 sec)
mysql>
Có thể sử dụng cách sau để import dữ liệu vào MariaDB đang chạy trên Kubernetes, hãy sử dụng kubectl cp /path/to/data.sql <namespace>/<MySQL-pod>:/path/to/data.sql
để sao chép file dữ liệu từ máy local vào container chứa MariaDB và sau đó sử dụng lệnh mysql
để import dữ liệu từ file đó vào database:
Do file backup DB của mình nằm ở đường dẫn /home/wiki/wp_hoanghd.sql.
$ ll /home/wiki/wp_hoanghd.sql
-rw-r--r-- 1 root root 368817224 May 14 03:13 /home/wiki/wp_hoanghd.sql
Nên mình sẽ sử dụng lệnh dưới để copy file này vào container và lưu nó tại thư mục ‘/’ (thư mục root).
kubectl cp /home/wiki/wp_hoanghd.sql wiki-hoanghd/website-mysql-57f55c6ddc-gq59t:/
Tiếp theo truy cập vào container và kiếm tra file wp_hoanghd.sql đã tồn tại trong container hay chưa bằng cách dùng lệnh kubectl exec -it pod/website-mysql-57f55c6ddc-gq59t -n wiki-hoanghd bash để vào container MySQL sau đó hãy list các file nằm trong thư mục ‘/’, bạn sẽ có kết quả như dưới.
root@website-mysql-57f55c6ddc-gq59t:/# ls -al | grep 'sql'
-rw-r--r-- 1 root root 368817224 May 14 14:47 wp_hoanghd.sql
Tiếp theo chúng ta import DB trong wp_hoanghd.sql vào DB có tên wiki bằng lệnh mysql -u hoanghd -phoanghd wiki < wp_hoanghd.sql
. Bạn sẽ không nhận được thông báo gì nếu nếu import thành công.
mysql -u hoanghd -phoanghd wiki < wp_hoanghd.sql
Giờ đây nếu kiểm tra các tables của bạn bằng cách truy cập vào DB này và show các tables. Bạn có kết quả DB của bạn đã xuất hiện các bảng và từ đó suy ra DB đã import thành công.
root@website-mysql-57f55c6ddc-gq59t:/# mysql -u hoanghd -phoanghd wiki
Warning: Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+--------------------------------------+
| Tables_in_wiki |
+--------------------------------------+
| wp_commentmeta |
| wp_comments |
| wp_links |
| wp_options |
| wp_postmeta |
| wp_posts |
| wp_swift_performance_image_optimizer |
| wp_swift_performance_warmup |
| wp_term_relationships |
| wp_term_taxonomy |
| wp_termmeta |
| wp_terms |
| wp_usermeta |
| wp_users |
+--------------------------------------+
14 rows in set (0.00 sec)
mysql>
Bước 5: Copy sourcecode của WordPress vào container WordPress.
Dùng lệnh kubectl get po -n wiki-hoanghd để show các pod đang chạy dự án này, và đơn giản bạn sẽ nhìn thấy pod đang chạy WordPress là website-wp-78dd7b9fbd-l26kb. Chúng ta sẽ copy sourcecode vào pod này.
$ kubectl get po -n wiki-hoanghd
NAME READY STATUS RESTARTS AGE
website-mysql-646759747f-2xp5m 1/1 Running 0 3m40s
website-wp-78dd7b9fbd-l26kb 1/1 Running 0 16h
Vì khi triển khai WordPress, mặc định trong thư mục /var/www/html của pod chạy WordPress đã có sẵn một bộ source code default của nó. Mình không muốn sử dụng nó nên mình sẽ xoá source code gốc này bằng lệnh kubectl exec -it pod/<trên pod chạy WordPress> -n <namespace> -- bash -c "lệnh sẽ chạy trong container".
kubectl exec -it pod/website-wp-78dd7b9fbd-bxtfs -n wiki-hoanghd -- bash -c "rm -rf /var/www/html/*"
Tiếp theo, tương tự như copy file wp_hoanghd.sql
mình cũng sử dụng lênh kubectl cp
để copy source code vào pod này.
kubectl cp /home/wiki/sourcecode/ wiki-hoanghd/website-wp-78dd7b9fbd-bxtfs:/var/www/html/
Hãy vào pod này bằng lệnh kubectl exec -it pod/website-wp-78dd7b9fbd-bxtfs -n wiki-hoanghd bash
và kiểm tra xem source code đã copy thành công chưa.
root@website-wp-78dd7b9fbd-bxtfs:/var/www/html# ls -al
total 296
drwxr-xr-x 10 www-data www-data 4096 May 14 15:09 .
drwxr-xr-x 1 root root 4096 Dec 21 2021 ..
-rw-r--r-- 1 www-data www-data 261 Jan 8 2022 .htaccess
-rw-r--r-- 1 www-data www-data 405 May 14 15:06 index.php
-rw-r--r-- 1 www-data www-data 19915 May 14 15:06 license.txt
-rw-r--r-- 1 www-data www-data 7402 May 14 15:06 readme.html
-rw-r--r-- 1 www-data www-data 7205 May 14 15:06 wp-activate.php
drwxr-xr-x 9 root root 4096 May 14 15:06 wp-admin
-rw-r--r-- 1 www-data www-data 351 May 14 15:06 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 2338 May 14 15:06 wp-comments-post.php
-rw-rw-r-- 1 www-data www-data 5492 May 14 15:06 wp-config-docker.php
-rw-r--r-- 1 www-data www-data 3013 May 14 15:06 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 5645 May 14 15:06 wp-config.php
drwxr-xr-x 11 root root 4096 May 14 15:06 wp-content
-rw-r--r-- 1 www-data www-data 5536 May 14 15:08 wp-cron.php
drwxr-xr-x 28 root root 12288 May 14 15:08 wp-includes
-rw-r--r-- 1 www-data www-data 2502 May 14 15:08 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3792 May 14 15:08 wp-load.php
-rw-r--r-- 1 www-data www-data 49330 May 14 15:08 wp-login.php
-rw-r--r-- 1 www-data www-data 8541 May 14 15:08 wp-mail.php
-rw-r--r-- 1 www-data www-data 24993 May 14 15:08 wp-settings.php
-rw-r--r-- 1 www-data www-data 34350 May 14 15:08 wp-signup.php
-rw-r--r-- 1 www-data www-data 4889 May 14 15:08 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3238 May 14 15:08 xmlrpc.php
Kết quả đã có dữ liệu tại thư mục /var/www/html của container.
Bước 6: Chỉnh sửa config kết nối cho WordPress đến Database.
Mở wp-config.php và chỉnh sửa thông tin kết nối phù hợp mà bạn đã define trước đó cho Database name, Database username, Database password, Database hostname và WordPress database table prefix.
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
// define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
define('DB_NAME', 'wiki');
/** Database username */
// define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'example username') );
define('DB_USER', 'hoanghd');
/** Database password */
// define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'example password') );
define('DB_PASSWORD', 'hoanghd');
/** Database hostname */
// define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );
define('DB_HOST', 'website-mysql');
/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = getenv_docker('WORDPRESS_TABLE_PREFIX', 'wp_');
Phần Database hostname bạn có thể dùng lệnh kubectl get svc và lấy tên của service đang chạy MySQL nhé. Trường hợp của mình là website-mysql.
$ kubectl get svc -n wiki-hoanghd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
website-mysql ClusterIP 10.101.38.166 <none> 3306/TCP 56m
website-wp LoadBalancer 10.109.30.88 192.168.13.208 80:31984/TCP 56m
Bước 7: Thay đổi url truy cập WordPress.
Ở bước này nếu bạn không thay đổi tên miền của WordPress thì có thể bỏ qua nhé. Để WordPress có thể chạy ở url mới thì bạn phải thay đổi thông tin này trong Database của WordPress trung khớp với url mà bạn đã define ở phần ingress. Do url cũ của mình là https://wiki.hoanghd.com nên giờ mình sẽ đổi sang tên url mới là http://wordpress.hoanghd.com/ bằng cách vào pod/website-mysql-57f55c6ddc-gq59t.
kubectl exec -it pod/website-mysql-57f55c6ddc-gq59t -n wiki-hoanghd bash
Vào DB bằng CLI mysql -u hoanghd -phoanghd wiki
và sử dụng lệnh Update UPDATE wp_options SET option_value='http://wordpress.hoanghd.com' WHERE option_name='siteurl' OR option_name='home';
với option_value
chính là tên domain mới của bạn.
root@website-mysql-57f55c6ddc-gq59t:/# mysql -u hoanghd -phoanghd wiki
Warning: Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> UPDATE wp_options SET option_value='http://wordpress.hoanghd.com' WHERE option_name='siteurl' OR option_name='home';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
Bạn có thể verify lại xem domain đã cập nhật thành công chưa bằng lệnh SELECT * from wp_options WHERE option_name='siteurl' or option_name='home';
.
mysql> SELECT * from wp_options WHERE option_name='siteurl' or option_name='home';
+-----------+-------------+------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+------------------------------+----------+
| 2 | home | http://wordpress.hoanghd.com | yes |
| 1 | siteurl | http://wordpress.hoanghd.com | yes |
+-----------+-------------+------------------------------+----------+
2 rows in set (0.00 sec)
Bước 8: Kiểm tra kết quả.
Nếu tôi bấm tải lại trang truy cập WordPress mặc định ở bước trên, bạn sẽ thấy kết quả wiki của tôi đã chạy thành công trên cụm Kubernetes.
Bước 9: Sử dụng SSL cho website sử dụng OpenSSL
OpenSSL là một thư viện mã nguồn mở cung cấp các công cụ mã hóa và giải mã, chữ ký và xác thực số, cũng như các giao thức mạng phổ biến như HTTPS, SSL và TLS. OpenSSL có thể được sử dụng để tạo các chứng chỉ SSL/TLS tự ký hoặc cùng với các công cụ khác để tạo chứng chỉ SSL/TLS được ký bởi một CA. OpenSSL được sử dụng rộng rãi trên nhiều nền tảng và hệ điều hành, và là một trong những công cụ mã nguồn mở phổ biến nhất để bảo mật các ứng dụng web và mạng.
Bạn hãy thực hiện lần lượt 2 lệnh sau để tạo ra các file ssl:
Lệnh đầu tiên là openssl req -nodes -newkey rsa:2048 -keyout /home/wiki/tls.key -out /home/wiki/ca.csr -subj "/CN=wordpress.hoanghd.com"
. Lệnh này tạo ra một tệp khóa riêng tư và một yêu cầu chứng chỉ (CSR) để tự ký chứng chỉ. Tham số -nodes
được sử dụng để tạo khóa mà không có bất kỳ mật khẩu nào. Lệnh sẽ tạo ra file có tên tls.key và ca.csr nằm trong thư mục /home/wiki/
.
$ openssl req -nodes -newkey rsa:2048 -keyout /home/wiki/tls.key -out /home/wiki/ca.csr -subj "/CN=wordpress.hoanghd.com"
Can't load /root/.rnd into RNG
140392764236224:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/root/.rnd
Generating a RSA private key
............................................+++++
.................+++++
writing new private key to '/home/wiki/tls.key'
-----
Lệnh thứ 2 là openssl x509 -req -sha256 -days 365 -in /home/wiki/ca.csr -signkey /home/wiki/tls.key -out /home/wiki/tls.crt
tạo ra một file có tên tls.crt nằm trong thư mục /home/wiki/. Lưu ý là lệnh thứ 2 này muốn chạy thành công thì phải chạy thành công lệnh thứ nhất nhé.
Lệnh này sử dụng tệp CSR và khóa riêng tư để tạo một chứng chỉ SSL tự ký. Tham số -days
sẽ thiết lập thời hạn cho chứng chỉ, trong trường hợp này là 365 ngày.
$ openssl x509 -req -sha256 -days 365 -in /home/wiki/ca.csr -signkey /home/wiki/tls.key -out /home/wiki/tls.crt
Signature ok
subject=CN = wordpress.hoanghd.com
Getting Private key
Sau khi chạy thành công hai lệnh trên bạn sẽ thấy có 3 file ca.csr, tls.crt và tls.key trong thư mục /home/wiki/.
$ ll | grep 'tls\|key\|csr'
-rw-r--r-- 1 root root 907 May 15 06:03 ca.csr
-rw-r--r-- 1 root root 1025 May 15 06:06 tls.crt
-rw------- 1 root root 1704 May 15 06:03 tls.key
Sau khi có 3 file trên, bạn hãy chạy lệnh kubectl create secret tls website-tls --cert=/home/wiki/tls.crt --key=/home/wiki/tls.key -n wiki-hoanghd
. Lệnh này sẽ tạo ra một secret Kubernetes để lưu trữ chứng chỉ và khóa SSL của bạn. Kubectl sử dụng lệnh create secret tls
để tạo secret có tên là website-tls
với khóa SSL và chứng chỉ được lấy từ các tệp /home/wiki/tls.crt
và /home/wiki/tls.key
và được lưu trữ trong namespace wiki-hoanghd
.
kubectl create secret tls website-tls --cert=/home/wiki/tls.crt --key=/home/wiki/tls.key -n wiki-hoanghd
Sử dụng lệnh kubectl get secret -n wiki-hoanghd để verify lại việc tạo secret thành công.
$ kubectl get secret -n wiki-hoanghd
NAME TYPE DATA AGE
default-token-cj7jv kubernetes.io/service-account-token 3 15h
mysql Opaque 6 15h
website-tls kubernetes.io/tls 2 16s
Bạn có thể sử dụng lệnh kubectl get secret <tên chứng chỉ> -n <namespace> -o jsonpath='{.data.tls.crt}' | base64 --decode
để xem nội dung chứng chỉ:
$ kubectl get secret website-tls -n wiki-hoanghd -o jsonpath='{.data.tls\.crt}' | base64 --decode
-----BEGIN CERTIFICATE-----
MIICxzCCAa8CFA1XXJUPXVIzzR7A5S+R7SP3ssKPMA0GCSqGSIb3DQEBCwUAMCAx
HjAcBgNVBAMMFXdvcmRwcmVzcy5ob2FuZ2hkLmNvbTAeFw0yMzA1MTUxNDIwMzNa
Fw0yNDA1MTQxNDIwMzNaMCAxHjAcBgNVBAMMFXdvcmRwcmVzcy5ob2FuZ2hkLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMHxU+WcZU+bfk+lkq4G
sY/qqsFeUt+owSCqXW/8S0k4xioWAWkUywO9YHgCgoLtSXJBYsendBTcEYpxy3Sa
NDIxmJaP5TxaWdccxfHYUFmbKs8Wa+7mmsApPD0e6WZ1pcI6+/Y2I13F9o7UV9pM
Yp07WQ7EIy20UoB43PvbBfEl1I5+DxURjr3iN+cJEY2+19XvW1qcunxZVQD8vBlK
CjB4tDultfmGpcmWg9RTBQI36u7FGJ1Q2MFGZfrCDRm0K3mcsW1n/SJEAaEkMt3/
x/Awh0PXSlIaYIWqulT3Ehs++VmlGWAFWWnojU8ISViMiqca77BpJZAZmXZbvr4U
Q0kCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALXmEFJ01LefvJjoTsg60yTcxLabw
ptuas3Wrr4JaB8yXcH7TaasBxii0N/oWYhs7FV3MLsaq/VGJ1gEvgmkzaS3dSyTK
wI2ctZMQaowdhsk/BQYCTuRVzSoRHci1whEqGCyB1AHkMdd3SENR6A6V4SI63KbE
owsRlvsmmySiFVvwfStkqxtuS9mGOa4XXUsXRdOhEzG3JpyRrpapTjR3yzvX0fjH
6KntCyxGQtUfmgK6Ojbl/Gx9BwiZW1BKWx/idMcO9kRRIWTCdSOwjR9uPHzdg8on
daZ0xKx0OYkTTtcq/wwxsVpPFEclZCrStnDFAIvr4wWOPdOkqP6ElabKRA==
-----END CERTIFICATE-----
Với file manifest ingress bạn sửa lại như sau:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: website
namespace: wordpress
labels:
app: website-wp
spec:
ingressClassName: nginx
tls:
- hosts:
- wordpress.hoanghd.com
secretName: website-tls
rules:
- host: wordpress.hoanghd.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: website-wp
port:
number: 80
Sau khi chỉnh sửa xong ingress, mình tiến hình update file này lên Gitlab và ArgoCD sẽ update lại ingress đã thay đổi. Và bạn sẽ thấy phần ingress đã được kết nối thêm phần website-tls của OpenSSL như hình dưới.
Và đây là kết quả.