1 关防火墙
systemctl disable firewalld
systemctl stop firewalld
- 关selinux
vim /etc/selinux/config
SELINUX=disabled - 安装etcd kubernetes(会自动安装docker)
yum install -y etcd kubernetes - 安装好软件后,修改2个配置文件
4.1 /etc/sysconfig/docker,其中options的内容配置为:
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
4.2 /etc/kubernetes/apiserver,把admission-control中的ServiceAccount去掉 - 按顺序启动所有的服务
for i in etcd docker kube-apiserver kube-controoler-manager kube-scheduler kubelet kube-proxy;do systemctl starti;systemctl status $i;done
- 执行以下步骤
1 wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
2 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
3 docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
4 for i in flanneld kube-proxy kubelet docker;do systemctl restart $i;systemctl enable $i;systemctl status $i ;done
iptables -P FORWARD ACCEPT
到这里,单机版的kubernetes集群环境就安装启动完成了
现在开始练习在k8s里启动一个服务
创建一个目录k8straining,以下操作都在k8straining目录里
- 先启动一个mysql,先创建一个rc定义文件:mysql-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql
spec:
replicas: 1
selector:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
执行kubectl create -f mysql-rc.yaml 创建rc
查看rc: kubectl get rc
查看pod: kubectl get pod
创建一个mysql的kubernetes service,先创建一个mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
创建service: kubectl create -f mysql-svc.yaml
查看service: kubectl get svc
- 启动tomcat应用,先创建myweb-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 5
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: kubeguide/tomcat-app:v1
ports:
- containerPort: 8080
env:
- name: MYSQL_ROOT_HOST
value: "mysql"
- name: MYSQL_ROOT_PORT
value: '3306'
创建rc: kubectl create -f myweb-rc.yaml
应用service配置文件 myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
kubectl create -f myweb-svc.yaml
查看创建的service
kubectl get service
在本机浏览器看效果:
图片.png