2019安裝k8s詳細教程
前言
學習k8s的第一步肯定是安裝進行實操。但是對於生產環境搭建一個高可用的k8s叢集其實還是有點挑戰難度的,特別是非專業運維開發人員。因為要涉及到的方面很多,預設配置都不能用於生產環境,效能調優,安全驗證等等都是必不可少的。對於入門者來說的話,第一步安裝其實有時候已經把一些人擋在了門外。自己也是費了一點功夫,才搭建了在本地能測試的k8s叢集,用來學習。其中遇到了一些坑,所以記錄一下,希望能幫助到和我遇到一樣問題的朋友。
一.準備工作
1.1.科學上網
推薦自己搭建一個ss服務。弄一個國外伺服器,例如阿里雲海外節點的雲伺服器(ECS)即可.詳細教程大家自行網上搜尋教程。假如遇到國外節點慢,同時又有國內伺服器的,可以我的一遍文章(https://blog.csdn.net/xyz_dream/article/details/87191233),使用國內中繼國外節點,有些情況下能降低延時。
1.2.配置ss客戶端以及設定http, https代理,docker代理
pipy: https://pypi.org/project/shadowsocks/
自己連線國外搭建好的ss伺服器。
sslocal -c config.json -d start # 連線國外ss伺服器 config.json內容大致如下
{
"server":"my_server_ip",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
1.3.使用privoxy將socks5轉為http和https代理
# 安裝privoxy
yum install privoxy
# vim /etc/privoyx/config 配置檔案 加入內容
forward-socks5 / 127.0.0.1:1080 .
# 啟動 privoxy 代理
systemctl start privoxy
1.4.配置系統http https以及docker的https代理
vim .bash_profile
內容:
# 輸入vpn就可以科學上網了
alias vpn='export ALL_PROXY=127.0.0.1:8118 && export http_proxy=127.0.0.1:8188
&& export https_proxy=127.0.0.1:8188'
# 輸入uvpn 關閉科學上網
alias uvpn='unset ALL_PROXY http_proxy https_proxy'
# 測試是否能訪問google 能訪問則會有內容輸出
curl www.google.com
# 配置docker的https代理
官網文件地址: https://docs.docker.com/config/daemon/systemd/
1. mkdir -p /etc/systemd/system/docker.service.d
2. vim /etc/systemd/system/docker.service.d/https-proxy.conf:
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
3. systemctl daemon-reload
4. systemctl restart docker
1.5.預先docker pull所需映象
#預先把這些所需映象pull下拉 假如能pull 則docker的https代理生效
docker pull k8s.gcr.io/kube-proxy:v1.13.4
docker pull k8s.gcr.io/kube-apiserver:v1.13.4
docker pull k8s.gcr.io/kube-scheduler:v1.13.4
docker pull k8s.gcr.io/kube-controller-manager:v1.13.4
docker pull k8s.gcr.io/kube-apiserver:v1.13.0
docker pull k8s.gcr.io/coredns:1.2.6
docker pull k8s.gcr.io/etcd:3.2.24
docker pull k8s.gcr.io/pause:3.1
1.6.其他
1.systemctl stop firewalld #暫時關閉防火牆
2.setenforce 0 # 禁用SELINUX
3. vim /etc/sysctl.d/k8s.conf
4. swapoff -a
新增內容:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
4.配置生效
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
5.
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules \
&& lsmod | grep -e ip_vs -e nf_conntrack_ipv4
二.正式安裝
2.1.安裝docker
yum update -y
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates #檢視docker版本 選擇版本安裝 我安裝了 18.06.3-ce
systemctl start docker
systemctl enable docker
2.2.安裝k8s
原始碼安裝k8s難度較大,要對k8s十分了解,關於證書頒發,許可權,網路,儲存等等。所以官方推薦使用kubeadm來初始化以及管理k8s叢集。 master節點必須安裝kubectl元件 node節點必須安裝 kubelet元件。
# 1.加入k8s源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# 2.yum安裝
yum makecache fast
yum install -y kubelet kubeadm kubectl
# 3.安裝完畢
systemctl enable kubelet.service
# 4.提示補全kubectl命令
yum install -y bash-completion
locate bash_completion
# 顯示/usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
2.3.初始化叢集
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=127.0.0.1
若安裝成功:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安裝flannel網路外掛
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#提示:
一般會持續3-4分鐘。 如果一直順利 那麼恭喜你90%完成。如果在kubectl config image pull卡頓
嘗試kuectl config image ls檢視所需安裝的image是否已經pull正確。 若之前準備工作pull的映象版本不正確,
需要重新kubectl cocnfig image pull即可。需要等待時間跟網速有關,一般快的話5-6分鐘,慢的話在10幾分鐘左右。
只要你之前docker配置https代理正確以及你的科學上網配置正常,那麼應該不會有什麼問題。
2.4.檢查安裝情況
# 1.檢查叢集node是否處於Ready狀態
kubectl get nodes
若處於Ready狀態: 恭喜完成安裝,可以開始玩一些k8s的Demo了!
若處於NotReady狀態:
1.kubectl get pod --all-namespaces # 檢視哪些pod未處於Running狀態
2.檢視未處於Running狀態的pod的詳細
kubectl describe pod 未出於Running狀態的pod的名稱
3. 處於安全考慮 預設master節點不能被排程,現在是測試環境可以讓master被排程
kubectl taint nodes --all node-role.kubernetes.io/master-
具體問題具體網上繼續查詢相關錯誤資訊。不過一般到這一步基本沒問題,一般是pull映象失敗導致的。不過只要你
之前pull映象能拉下來, 那麼可能是時間問題,跟你的網路速度有關係,稍等幾分鐘可能就處於Ready狀態了。
有興趣的童鞋可以關注我的個人部落格: https://mojun.me
相關文章
- Redis安裝教程(超詳細)Redis
- windows安裝mongodb詳細教程WindowsMongoDB
- Jmeter安裝配置詳細教程JMeter
- RHEL 6.3 詳細安裝教程
- 安裝wordpress教程詳細安裝wordpress步揍
- Centos下Elasticsearch安裝詳細教程CentOSElasticsearch
- rabbitmq簡易安裝詳細教程MQ
- sublime安裝外掛詳細教程
- Linux安裝Nginx詳細教程LinuxNginx
- CentOS8 詳細安裝教程CentOS
- 如何安裝leapftp,如何安裝leapftp的詳細教程FTP
- Photoshop 2021超詳細安裝教程(附安裝包+安裝教程福利)
- java安裝教程詳細 java環境配置教程Java
- 蘋果cms安裝及配置詳細教程蘋果
- Python 與 PyCharm 安裝詳細教程PythonPyCharm
- Centos7 安裝 Docker 詳細教程CentOSDocker
- python詳細的安裝教程分享!Python
- Centos7安裝WordPress詳細教程CentOS
- Ubuntu系統安裝Docker詳細教程UbuntuDocker
- RabbitMQ超詳細安裝教程(Linux)MQLinux
- Ubuntu 20.04 安裝 Carla詳細教程。Ubuntu
- Ubuntu系統安裝 PostgreSQL詳細教程。UbuntuSQL
- 安裝JDK和Eclipse詳細教程JDKEclipse
- CentOS 6.3安裝(詳細圖解教程)CentOS圖解
- node-js,npm安裝-詳細教程JSNPM
- MySQL的安裝與配置——詳細教程MySql
- Ubuntu server 20.04詳細安裝教程UbuntuServer
- centos7安裝docker詳細教程CentOSDocker
- arcgis安裝教程10.2 arcgis詳細安裝步驟
- 達芬奇調色16安裝教程(詳細圖文安裝教程)
- [教程文件]tuzicms系統安裝圖文詳細教程
- Linux安裝和配置zokeeper 詳細教程Linux
- Android Studio 超詳細安裝教程Android
- Docker安裝Oracle 19c 詳細教程DockerOracle
- Linux系統安裝MySQL詳細教程LinuxMySql
- Linux系統安裝gcc詳細教程。LinuxGC
- Windows 64位下安裝Redis詳細教程WindowsRedis
- 安裝PG3.0詳細教程附圖