在centos 7中安裝配置k8s集群的步驟詳解
配置背景介紹
kubernetes是google開源的容器集群管理系統(tǒng),提供應(yīng)用部署、維護、擴展機制等功能,利用kubernetes能方便管理跨集群運行容器化的應(yīng)用,簡稱:k8s(k與s之間有8個字母)
為什么要用kubernetes這么復(fù)雜的docker集群管理工具呢?一開始接觸了docker內(nèi)置的swarm,這個工具非常簡單快捷的完成docker集群功能。但是在使用docker1.13內(nèi)置的swarm做集群的時候遇到vip負載均衡沒有正確映射端口到外網(wǎng),或者出現(xiàn)地址被占用的情況,這對高可用性的需求是不利的,然而又沒找到一個解決方案,只能轉(zhuǎn)投k8s。
實驗環(huán)境
- 騰訊云
- centos7.3 64位
安裝
yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo yum makecache fast yum -y install docker-engine-1.13.1 yum install epel-release -y yum remove -y docker-engine* yum install -y kubernetes etcd docker flannel
修改配置文件
注意下面的10.135.163.237換成自己服務(wù)器ip
sed -i "s/localhost:2379/10.135.163.237:2379/g" /etc/etcd/etcd.conf sed -i "s/localhost:2380/10.135.163.237:2380/g" /etc/etcd/etcd.conf sed -i "s/10.135.163.237:2379/10.135.163.237:2379,http:\/\/127.0.0.1:2379/g" /etc/etcd/etcd.conf sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/kubernetes/apiserver sed -i "s/--insecure-bind-address=127.0.0.1/--insecure-bind-address=0.0.0.0/g" /etc/kubernetes/apiserver sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver sed -i "s/--hostname-override=127.0.0.1/--hostname-override=10.135.163.237/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld
修改host
vi /etc/hosts 10.135.163.237 k8s_master
添加網(wǎng)絡(luò)
systemctl enable etcd.service systemctl start etcd.service etcdctl mk //atomic.io/network/config '{"Network":"172.17.0.0/16"}'
啟動服務(wù)
service docker start for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet docker flanneld ; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done;
第一個demo
編寫文件a.yaml
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-app spec: replicas: 2 template: metadata: labels: app: my-app spec: containers: - name: my-app image: registry.alauda.cn/yubang/paas_base_test ports: - containerPort: 80 command: ["/bin/bash", "/var/start.sh"] resources: limits: cpu: 0.5 memory: 64Mi
編寫文件b.yaml
apiVersion: v1 kind: Service metadata: name: my-app-svc labels: app: my-app spec: ports: - port: 80 targetPort: 80 nodePort: 30964 type: NodePort selector: app: my-app
創(chuàng)建服務(wù)
kubectl create -f a.yaml --validate kubectl create -f b.yaml --validate
刪除服務(wù)
kubectl delete -f a.yaml kubectl delete -f b.yaml
增加子節(jié)點
安裝軟件
yum-config-manager --add-repo https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo yum makecache fast yum -y install docker-engine-1.13.1 yum install epel-release -y yum remove -y docker-engine* yum install -y kubernetes docker flannel
修改配置文件(10.135.163.237為主節(jié)點ip,139.199.0.29為當前節(jié)點ip)
sed -i "s/--hostname-override=127.0.0.1/--hostname-override=139.199.0.29/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/kubelet sed -i "s/--address=127.0.0.1/--address=0.0.0.0/g" /etc/kubernetes/kubelet sed -i "s/127.0.0.1:8080/10.135.163.237:8080/g" /etc/kubernetes/config sed -i "s/127.0.0.1:2379/10.135.163.237:2379/g" /etc/sysconfig/flanneld sed -i "s/--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota/--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota/g" /etc/kubernetes/apiserver
啟動服務(wù)
service docker start for SERVICES in kube-proxy kubelet docker flanneld; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done;
在主服務(wù)器查看節(jié)點
kubectl get node
重啟服務(wù)(重新加入集群)
systemctl restart kube-apiserver.service
刪除節(jié)點
kubectl delete node 節(jié)點ip
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
linux文件系統(tǒng)調(diào)整大小的方法(linux調(diào)整分區(qū)大小)
本文歸納了在不破快文件系統(tǒng)數(shù)據(jù)的前提下對文件系統(tǒng)大小進行調(diào)整的方法.這里采用的是"拆東墻, 補西墻"的方法, 當然, 如果你的磁盤中有未分區(qū)的空閑空間, 你就不用減小某個分區(qū)的空間了2014-01-01apache的AllowOverride以及Options使用詳解
通常利用Apache的rewrite模塊對 URL 進行重寫的時候, rewrite規(guī)則會寫在 .htaccess 文件里。但要使 apache 能夠正常的讀取.htaccess 文件的內(nèi)容,就必須對.htaccess 所在目錄進行配置2012-11-11詳解Linux服務(wù)器狀態(tài)、性能相關(guān)命令
這篇文章主要介紹了詳解Linux服務(wù)器狀態(tài)、性能相關(guān)命令,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09#實踐筆記#Ubuntu配置Apache+PHP+MySQL
在我早先的一篇文章《#實踐筆記#本地配置PHPnow與WordPress》,已經(jīng)討論過PHPnow的本地安裝教程。但是PHPnow套件是Windows平臺下的軟件,不適用我現(xiàn)在使用的平臺2012-03-03Linux利用lsof/extundelete工具恢復(fù)誤刪除的文件或目錄
這篇文章主要給大家介紹了關(guān)于Linux利用lsof/extundelete工具恢復(fù)誤刪除的文件或目錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2020-08-08