2017年10月18日 星期三

kubernets service 介紹

kubernets (簡稱k8s)中的容器如果要對外服務,需要透過server元件來進行

service元件有以下幾種類型可供選擇 :

  • clusterip : 預設類型,只在k8s cluster內部IP中提供服務,外部無法訪問
  • nodeport : 在每個node中的IP及port提供對外服務,對應到pod中的容器port,外部能夠訪問
  • loadbalancer : 透過cloud provider的LB,如AWS或GCP,對外提供服務
以下是一個nginx提供對外服務的yaml範例 :

apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
name: nginx
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
name: http
selector:
name: nginx 


將node的30080port對應到內部nginx容器的80 port
接著我的node ip 分別為 10.0.252.145~10.0.252.147,分別訪問一下

2017年9月15日 星期五

shadow socks 建置(翻牆主機前端控制台)

這邊做一下筆記,如何建立一台前端控制站台以及翻牆節點

shadow socks : wiki百科

O.S : CentOS 6.9(final)

1. 安裝前端管理介面

yum update -y
yum install vim wget
wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

2. 安裝完成後記得記錄一下網址和帳密










3.登入後依照系統提示安裝所需套件,我選擇NMP(Nginx+MySQL+PHP)
PHP : 7.0以上
Nginx : 1.12.x
MySQL : 5.6以上
等待安裝完成,過程中可以去修改一下登入密碼:面板设置->面板密码->修改

4. 接下來建置一個網站 : 網站->添加站點












順便建置FTP及資料庫
























5.設定nginx : 網站 -> 設置
  
  找到配置文件
修改如下 :
root /www/wwwroot/ss.naoxiaogen.com 修改成
root /www/wwwroot/ss.naoxiaogen.com/public
然後找到access_log,在上方添加 :

location / { try_files $uri $uri/ /index.php$is_args$args; }
最後儲存離開

6. 到這邊前端平台和網站初步已經完成,接下來進行網站細部安裝
    進入網站目錄

cd /www/wwwroot/test.com/
yum install git –y
git clone https://github.com/glzjin/ss-panel-v3-mod.git tmp -b new_master && mv tmp/.git . && rm -rf tmp
git reset --hard
chown -R root:root *
chmod -R 777 *
chown -R www:www storage
chattr -i .user.ini
mv .user.ini public
cd public
chattr +i .user.ini


7. 重啟nginx

service nginx restart
8. 開始進行資料庫建置(匯入)
點擊網站目錄

進入sql資料夾

找到下圖的檔案,按下下載
9. 透過phpMyAdmin匯入sql檔
點擊數據庫->管理 進入phpMyAdmin
點選匯入
選擇先前下載的sql檔案匯入,最後按下執行
10. 最後設定網站細部

cd /www/wwwroot/test.com
php composer.phar install
cp config/.config.php.example config/.config.php 


修改.config.php資料庫的部份

11. 添加網站管理員

php -n xcat createAdmin
依照提示輸入帳號以及密碼

最後同步帳號 php xcat syncusers
最後編輯系統排程
crontab -e
30 22 * * * php /www/wwwroot/test.com/xcat sendDiaryMail
*/1 * * * * php /www/wwwroot/test.com/xcat synclogin
*/1 * * * * php /www/wwwroot/test.com/xcat syncvpn
0 0 * * * php -n /www/wwwroot/test.com/xcat dailyjob
*/1 * * * * php /www/wwwroot/test.com/xcat checkjob
*/1 * * * * php -n /www/wwwroot/test.com/xcat syncnas

vim小筆記

游標控制

0  : 移動到一行最前面
$  : 移動到一行最後面
G  : 移動到檔案的最後一行
gg : 移動到檔案的第一行


替換

:s/a/b/    替換目前所在行第一個a為b
:s/a/b/g   替換目前所在行所有a為b
:%s/a/b/g  替換整個文件中所有a為b


Visual  功能

v : 字元選取(游標移到哪邊就複製到哪)
V : 行選取(一次複製一整行)
d : visual mode下的刪除
y : visual mode下的複製

2017年9月13日 星期三

CDN建置,透過cdn plus來建置簡易CDN

最近在實作CDN發現一個很好用的網站CDNPLUS 

能夠很快的將CDN及DNS的設定都完成,只是是對岸的產品,有顧慮的人請先考慮一下~

以下是建置過程,為自己做個筆記 :

CDN (Content Delivery Network)利用最靠近每位使用者的伺服器,更快、更可靠地將音樂、圖片、影片、應用程式及其他檔案傳送給使用者 來提供高效能、可擴展性及低成本的網路內容傳遞給使用者。 
簡而言之就是佈署cache站台,讓使用者對站台連線時先針對這個cache站台做連線,除了分散流量之外,也可避免網站遭受DDos攻擊 透過CDNPLUS來建置CDN,最簡單的方式先透過DNSpod來綁定DNS

 1. 先至DNSpod網站綁定並代管DNS
   
    先替網站新增一筆A record

2. 至DNSPLUS網站,下載節點安裝套件,建議安裝Linux版本,依照網站教學完成安裝

3. 登入DNSPLUS後台管理介面

4. 至DNS選項,綁定DNSpod帳號

















5. 至各節點依照說明取得token值

6. 至節點頁面,選擇新增節點,並輸入token值



















7. 安裝完節點之後,如有綁定DNSpod,會自動新增cdn A record,及CNAME

8. 至DNS pod管理後台,新增CDN域名CNAME對應到本身的DNS






















9. 等待DNS更新之後,查詢DNS是否對應到CDN node

















10. 打完收工

Linux nohup 用法

在Linux系統中如果遇到程式需要執行一段時間時,如果我們登出系統
系統會將我們的所有process都給中㫁掉,這時候就可以用nohup來避免這個問題

nohup /path/myscript &

這樣就可以避免登出時程式被中㫁了

另外,nohup預設會輸出一個nohup.txt的檔案,可供使用者查詢執行過程
如果想要指定輸出檔案 :

nohup /path/myscript &> log.txt &

P.S 跟nohu相同的指令還有一個叫做screen

2017年9月7日 星期四

AWS 筆記

root user : AWS console 最高權限使用者,一般建議透過IAM再create另一個user來管理
IAM : AWS 存取權限控制及管理
region : 所屬地區
Availability Zone (AZ) : 所屬地區的Data Center
VPC : virtual private cloud 虛擬網路環境服務
ELB : Elastic Load Blancer
RDS : Relational Database Service
EC2 : Elastic Compute Cloud 虛擬機服務
AMI : Amazon Machine Image 作業系統映像檔
EBS : Elastic block storage SAN storage service
ASG : Auto Scaling Group
Elastic Beanstalk : 內建EC2、ELB、ASG and 監控和告警...etc,完整的部署

2017年9月1日 星期五

Linux logrotate 記錄檔輪替

在 Linux 如果用套件管理工具 (例如 yum/apt-get) 安裝套件,一般會設定好 logrotate 做記錄檔輪替,但如果套件是自行編譯安裝, 或者是自行開發的系統,除了可以自行編譯記錄檔輸替的功能外,也可以用 logrotate 實現。

logrotate 的設定檔是 /etc/logrotate.conf, 用作設定 logrotate 的預設參數,而 /etc/logrotate.d/ 目錄下建立需要輪替的記錄檔,每項服務一個檔案, 這樣對日後維護及管理也會較方便。

先建立一個新的 Logrotate 設定檔:
# vi /etc/logrotate.d/rotatetest
加入以下內容:

/var/log/rotatetest.log {
    create 0600 root root
    daily
    missingok
    notifempty
    compress
    size 10M 
}

上面設定項目的說明:

create – 建立新檔案,
owner 及 group 是 root,權限是 600

daily – 每天檢查一次記錄檔
missingok – 如果記錄檔不存在不會輸出錯誤
notifempty – 如果記錄檔空白, 不會做輪替

compress – 壓縮舊記錄檔
size – 如果記錄檔大過 10MB 便會做輪替

儲存設定檔後,logrotate 便會生效,可以對 logrotate 進行測試,建立一個測試用的記錄檔:

# echo “test” > /var/log/rotatetest.log

由於上面的測試記錄檔只有一行資料,未達到設定的 10MB 輪替容量,可以在 logrotate 後面加上 -f 參數進行測試,-f 代表不論檔案大小均會強制輸替,但請注意,下面指令會對 /etc/logrotate.d/ 目錄下所有設定檔的項目進行輪替:

# logrotate -f /var/log/rotatetest.log

kubernets service 介紹

kubernets (簡稱k8s)中的容器如果要對外服務,需要透過server元件來進行 service元件有以下幾種類型可供選擇 : clusterip : 預設類型,只在k8s cluster內部IP中提供服務,外部無法訪問 nodeport : 在每個n...