亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Ubuntu 16.04、 CentOS 7和HypriotOS v1.0.1操作系統上部署一套安全的Kubernetes集群

發布時間:2021-11-08 16:05:49 來源:億速云 閱讀:93 作者:柒染 欄目:建站服務器

如何在Ubuntu 16.04、 CentOS 7和HypriotOS v1.0.1操作系統上部署一套安全的Kubernetes集群,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

下面介紹的內容會展示如何在Ubuntu 16.04、 CentOS 7和HypriotOS v1.0.1+操作系統上部署一套安全的Kubernetes集群。下面介紹的安裝方式是通過kubeadmin工具來完成的,這個工具在Kubernetes1.4的時候就已經被增加到Kubernetes發布包中了。

概述

可以在本地虛擬機、物理機或者其他云服務提供商的IaaS資源上來使用kubeadmin安裝Kubernetes。也可以很容易將kubeadmin集成到Terraform、 Chef、Puppet等自動化工具中。對于kubeadmin所有 命令 行信息介紹,可以參考http://kubernetes.io/docs/admin/kubeadm/。

在Kubernetes1.5中,Kubeadmin工具還是阿爾法版本,也就是說大家可以在研發測試環境中使用,特別需要注意的地方是kubeadmin還不能全面支持自動配置云服務提供商IaaS資源。如果在云服務提供商IaaS資源上部署,那么需要參考云服務提供商的技術文檔。

Kubeadm被設計成針對大規模集群部署環境中使用的,當然也可以很容易的手動安裝。如果在你自己IaaS基礎架構上或者已經存在的自動化系統上部署Kubernetes,kubeadm是一個很好的選擇。

部署前提條件

有多臺虛擬機或者物理機,上面操作系統是Ubuntu 16.04+、CentOS 7或者HypriotOS v1.0.1+。

每臺主機上面至少1G內存。

所有主機之間網絡可達。

部署目的

在指定的主機上安裝一套安全的Kubernetes集群。

在集群上安裝一個POD網絡,用來允許POD之間相互通訊。

在Kubernetes集群上部署一個微服務應用樣例。

部署步驟

在主機上安裝kubelet和kubeadm

在主機上安裝下面軟件包:

docker:建議安裝v1.11.2版本版本,v1.10.3版本和v1.12.1版本也可以。

kubelet:安裝v1.5版本

kubectl: 安裝v1.5版本

kubeadm: 安裝v1.5版本

需要注意的是,如果主機上已經安裝了kubeadm,那么需要更新成Kubernetes對應的v1.5版本。

按照下面順序來配置主機:

SSH登錄到主機上,并且切換成root用戶。

如果主機是Ubuntu或者HypriotOS,那么運行 命令 :

curl -shttps://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  
cat </etc/apt/sources.list.d/kubernetes.list  
deb http://apt.kubernetes.io/ kubernetes-xenial main  
EOF  
apt-get update  
apt-get install -y docker.io  
apt-get install -y kubelet kubeadm kubectl kubernetes-cni

如果主機是CentOS操作系統,那么運行命令:

cat </etc/yum.repos.d/kubernetes.repo  
[kubernetes]  
name=Kubernetes  
baseurl=http://yum.kubernetes.io/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  
setenforce 0  
yum install -y docker kubelet kubeadm kubectlkubernetes-cni  
systemctl enable docker && systemctl start docker  
systemctl enable kubelet && systemctl startkubelet

執行完上述命令后,kubelet會進入重啟循環模式,每隔幾秒鐘就會重啟,kubelte這時候再等待執行kubeadm發出的命令。

需要注意的是,需要禁用SE Linux ,比如通過setenforce0命令。禁用的目的是讓容器可以讀取主機文件系統,以便了解如何配置POD網絡。

初始化Kubernetes的master節點

Kubernetes的master節點上運行著etcd和api server等組件,所有這些組件都需要通過kubelet啟動。

在卸載kubernetes前,不要運行兩次kubeadm init命令。

如果已經運行了kubeadm init命令,導致主機狀態同kuberentes集群狀態不兼容,這時候kubeadm會發送告警信息,提示目前不能正常工作,因為不滿足強制要求。

可以通過下面命令初始化master節點:

# kubeadm init

需要注意的是:這個操作會自動發現網卡設備,并且將master節點上網卡設備設置成默認網關。如果想使用另外的網卡設備,那么需要在執行kubeadminit命令時增加參數–api-advertise-addresses=

如果你想使用flannel搭建POD網絡,需要增加參數–pod-network-cidr=10.244.0.0/16。如果不適用flannel,那么就不需要這么做了。

可以參考kubeadm指南http://kubernetes.io/docs/admin/kubeadm/,在這里面可以看到更詳細的kubeadmin init參數。

執行完kubeadm init命令后將會花幾分鐘自動下載并且安裝kubernetes集群控制組件。

下面是命令執行后的輸出內容:

[kubeadm] WARNING: kubeadm is in alpha, please do not useit for production clusters.  
[preflight] Running pre-flight checks  
[init] Using Kubernetes version: v1.5.1  
[tokens] Generated token:"064158.548b9ddb1d3fad3e"  
[certificates] Generated Certificate Authority key andcertificate.  
[certificates] Generated API Server key and certificate  
[certificates] Generated Service Account signing keys  
[certificates] Created keys and certificates in"/etc/kubernetes/pki"  
[kubeconfig] Wrote KubeConfig file to disk:"/etc/kubernetes/kubelet.conf"  
[kubeconfig] Wrote KubeConfig file to disk:"/etc/kubernetes/admin.conf"  
[apiclient] Created API client, waiting for the controlplane to become ready  
[apiclient] All control plane components are healthyafter 61.317580 seconds  
[apiclient] Waiting for at least one node to register andbecome ready  
[apiclient] First node is ready after 6.556101 seconds  
[apiclient] Creating a test deployment  
[apiclient] Test deployment succeeded  
[token-discovery] Created the kube-discovery deployment,waiting for it to become ready  
[token-discovery] kube-discovery is ready after 6.020980seconds  
[addons] Created essential addon: kube-proxy  
[addons] Created essential addon: kube-dns  
Your Kubernetes master has initialized successfully!  
You should now deploy a pod network to the cluster.  
  Run "kubectl apply -f [podnetwork].yaml" withone of the options listed at:  
   http://kubernetes.io/docs/admin/addons/  
  
You can now join any number of machines by running thefollowing on each node:  
  
kubeadm join --token=

在kubeadm join命令中,需要輸入token參數,通過token參數可以確保將被授權的節點添加到kubernetes集群中,通過token參數來保證安全。

如果不在乎安全,比如安裝一個單機的kubernetes開發環境,那么可以運行如下命令:

# kubectl taint nodes --all dedicated-  
node "test-01" tainted  
taint key="dedicated" and effect=""not found.  
taint key="dedicated" and effect=""not found.

部署POD網絡

在部署應用和啟動kube-dns之前,需要部署POD網絡,需要注意的是kubeadm只是支持基于CNI的網絡,因此基于kubenet的網絡不會正常工作。

可以從下面網頁了解kubernetes支持的網絡插件,http://kubernetes.io/docs/admin/addons/。

可以通過下面命令部署POD網絡:

# kubectl apply -f

對于不同的網絡插件,需要參考指定的網絡插件安裝指南。需要注意的是每個kuberentes集群只能部署一種POD網絡。一旦部署完,需要檢查kube-dns POD是否運行,通過命令kubectl get pods –all-namespaces的輸出來確認網絡是否正常工作。

一旦kube-dns POD正常運行了,可以向kubernetes集群中添加工作節點。

向Kubernetes集群中添加工作節點

為了將工作節點添加到kubernetes集群中,對每個工作節點主機,都需要SSH到這個主機上,并且切換到root用戶,然后運行命令:

# kubeadm join --token[kubeadm] WARNING: kubeadm is in alpha, please do not useit for production clusters.  
[preflight] Running pre-flight checks  
[preflight] Starting the kubelet service  
[tokens] Validating provided token  
[discovery] Created cluster info discovery client,requesting info from"http://192.168.x.y:9898/cluster-info/v1/?token-id=f11877"  
[discovery] Cluster info object received, verifyingsignature using given token  
[discovery] Cluster info signature and contents arevalid, will use API endpoints [https://192.168.x.y:6443]  
[bootstrap] Trying to connect to endpointhttps://192.168.x.y:6443  
[bootstrap] Detected server version: v1.5.1  
[bootstrap] Successfully established connection withendpoint "https://192.168.x.y:6443"  
[csr] Created API client to obtain unique certificate forthis node, generating keys and certificate signing request  
[csr] Received signed certificate from the API server:  
Issuer: CN=kubernetes | Subject: CN=system:node:yournode| CA: false  
Not before: 2016-12-15 19:44:00 +0000 UTC Not After:2017-12-15 19:44:00 +0000 UTC  
[csr] Generating kubelet configuration  
[kubeconfig] Wrote KubeConfig file to disk:"/etc/kubernetes/kubelet.conf"  
Node join complete:  
* Certificate signing request sent to master and response  
  received.  
* Kubelet informed of new secure connection details.  
Run 'kubectl get nodes' on the master to see this machinejoin.

添加完成后,在master節點上運行命令kubectl getnodes,會顯示所有已經添加到集群中的節點主機。

(可選步驟)不在master節點上操作集群,而是在其他工作節點上操作集群

需要將master節點上面的kubernetes配置文件拷貝到當前節點上,然后執行kubectl命令:

# scp root@:/etc/kubernetes/admin.conf .  
# kubectl --kubeconfig ./admin.conf get nodes

(可選步驟)連接到API Serer組件上

如果已經部署了dashboard,那么可以從集群外部連接到APIServer組件上,然后查看dashboard:

# scp root@:/etc/kubernetes/admin.conf .  
# kubectl --kubeconfig ./admin.conf proxy
可以在本地訪問API Server
http://localhost:8001/api/v1

(可選步驟)部署樣例應用

上面已經部署完成了一套kubernetes環境,下面部署一個電商微服務應用。

# kubectl create namespace sock-shop  
# kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

然后查看分配給樣例應用的服務信息:

# kubectl describe svc front-end -n sock-shop  
Name:                  front-end  
Namespace:             sock-shop  
Labels:                name=front-end  
Selector:              name=front-end  
Type:                  NodePort  
IP:                    100.66.88.176  
Port:80/TCP  
NodePort:31869/TCP  
Endpoints:Session Affinity:      None

經過幾分鐘,會下載h額啟動樣例應用所需容器,然后就可以通過命令kubectlget pods -n sock-shop的輸出查看樣例應用POD詳細信息

進入到Kubernetes集群的master節點上,通過瀏覽器訪問http://:。在上面這個例子中,端口是31869,這個端口可以通過命令kubectl describe查詢出來。

如果有防火墻,那么確保這個端口可以被訪問到。

卸載

通過在master節點上運行命令kubectl delete namespace sock-shop 來卸載這個樣例應用。

可以通過下面命令重置kubeadm工具:

# kubeadm reset

如果想重新開始,那么依次運行命令systemctl start kubelet、kubeadm init和kubeadm join。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济阳县| 吴桥县| 太白县| 丹江口市| 溆浦县| 萝北县| 沁源县| 海门市| 荆门市| 奉贤区| 灵丘县| 泰州市| 和田市| 邵东县| 永泰县| 河源市| 宁陵县| 盈江县| 大城县| 杭锦旗| 汉寿县| 城口县| 镇宁| 天镇县| 商水县| 宁德市| 金门县| 高尔夫| 海晏县| 马尔康县| 溆浦县| 广昌县| 彰化市| 巫溪县| 新建县| 吉木乃县| 万盛区| 金湖县| 高台县| 阜南县| 什邡市|