共計(jì) 4250 個字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。
這篇文章主要介紹了 kubernetes 怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
1 主備宿主機(jī) centos
2 關(guān)閉防火墻
systemctl stop firewalld systemctl disable firewalld
3 安裝 etcd 和 kubernetes
yum install etcd kubernetes -y
3 修改 docker 配置文件
在 docker 配置文件 /etc/sysconfig/docker 中 給 OPTIONS 參數(shù)后面添加上 –insecure-registry gcr.io,如下:
4 修改 kubernetes 配置文件
在配置文件 /etc/kubernetes/apiserver 把參數(shù) KUBE_ADMISSION_CONTROL 中的 ServiceAccount 刪除
5 一次啟動 kubectl 服務(wù)
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
6 下載案例所需鏡像
docker pull docker.io/kubeguide/redis-master
dokcer pull docker.io/kubeguide/guestbook-redis-slave
docker pull docker.io/kubeguide/guestbook-php-frontend
docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
在拉鏡像 registry.access.redhat.com/rhel7/pod-infrastructure:latest 的時(shí)候 可能會報(bào)錯拉不下來。解決辦法:
yum install -y *rhsm*
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv –to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
重新拉 registry.access.redhat.com/rhel7/pod-infrastructure:latest,這個鏡像拉的時(shí)候比較慢,請耐心等待。
7 創(chuàng)建 redis-master 的 RC 和 service
# 編寫 rc 的 yaml 文件
[root@node1 redis]# cat redis-master-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master // rc 的名稱
labels:
name: redis-master // rc 的標(biāo)簽
spec:
replicas: 1 // rc 創(chuàng)建 pod 的副本數(shù)量
selector:
name: redis-master // rc 使用的標(biāo)簽選擇器
template: // 使用模板創(chuàng)建 pod
metadata:
labels:
name: redis-master // 創(chuàng)建的 pod 使用的標(biāo)簽,這里一定要和上面 rc 的標(biāo)簽選擇器一致
spec:
containers:
- name: master
image: kubeguide/redis-master
ports:
- containerPort: 6379
# 創(chuàng)建 rc
kubectl create -f ./redis-master-controller.yaml
[root@node1 redis]# kubectl get rc|grep master
redis-master 1 1 1 5h
[root@node1 redis]# kubectl get pods|grep master
redis-master-k9k5n 1/1 Running 0 5h
# 編寫 service 的 yaml 文件
[root@node1 redis]# cat redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
name: redis-master
spec:
ports:
- port: 6379 # service 使用的虛擬端口
targetPort: 6379 # service 管理的 pod 內(nèi)部的端口
selector:
name: redis-master # 這里的標(biāo)簽選擇器要和上面 RC 文件里面創(chuàng)建 pod 的標(biāo)簽 一致
# 創(chuàng)建 service
kubectl create -f ./redis-master-service.yaml
[root@node1 redis]# kubectl get services|grep master
redis-master 10.254.38.172 none 6379/TCP 2h
8 創(chuàng)建 redis-slave 的 RC 和 service
[root@node1 redis]# cat redis-slave-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas: 2
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
containers:
- name: slave
image: kubeguide/guestbook-redis-slave
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort: 6379
[root@node1 redis]# kubectl get pods|grep slave
redis-slave-dt0vk 1/1 Running 0 2h
redis-slave-lf79v 1/1 Running 0 2h
[root@node1 redis]# cat redis-slave-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
ports:
- port: 6379
targetPort: 6379
selector:
name: redis-slave
[root@node1 redis]# kubectl get services|grep slave
redis-slave 10.254.194.253 none 6379/TCP 2h
9 創(chuàng)建 frontend 的 RC 和 service
[root@node1 redis]# cat frontend-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: frontend
labels:
name: frontend
spec:
replicas: 3
selector:
name: frontend
template:
metadata:
labels:
name: frontend
spec:
containers:
- name: frontend
image: kubeguide/guestbook-php-frontend
env:
- name: GET_HOSTS_FROM
value: env
ports:
- containerPort: 80
[root@node1 redis]# cat frontend-service.yaml
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
name: frontend
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
name: frontend
# 由于 frontend 服務(wù)是需要外部訪問的,所以需要把 service 的虛擬端口映射到宿主機(jī)上,所以添加了 nodePort 端口,# nodePort 范圍在 30000 到 32767 都可以,否則報(bào)錯。
[root@node1 redis]# kubectl get pods|grep front
frontend-069sm 1/1 Running 0 2h
frontend-bksm5 1/1 Running 0 2h
frontend-q2vpv 1/1 Running 0 2h
[root@node1 redis]# kubectl get rc|grep front
frontend 3 3 3 2h
[root@node1 redis]# kubectl get service|grep front
frontend 10.254.27.214 nodes 80:30001/TCP 2h
9 實(shí)驗(yàn)
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“kubernetes 怎么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!