openshift origin v3 centos7 安装记


安装git,vim,httpd-tools,DNS
yum install vim git httpd-tools bind-utils bind -y


关闭防火墙及selinux
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config


重启
init 6


安装docker
wget -qO- https://get.docker.com/ | sh
systemctl enable docker


设置docker
vim /usr/lib/systemd/system/docker.service

在启动docker的后面添加 这个地址需要按照实际情况定义 后面可修改

 --insecure-registry 172.30.0.0/16


启动docker
systemctl start docker


下载openshift origin 包并解压
wget https://github.com/openshift/origin/releases/download/v1.1.0.1/openshift-origin-server-v1.1.0.1-bf56e23-linux-64bit.tar.gz
tar -zxvf openshift-origin-server-v1.1.0.1-bf56e23-linux-64bit.tar.gz


设置环境变量,可以使用oc及oadm命令
cd openshift-origin-server-v1.1.0.1-bf56e23-linux-64bit
export PATH="$(pwd)":$PATH


启动openshift
./openshift start


设置环境变量
export KUBECONFIG="$(pwd)"/openshift.local.config/master/admin.kubeconfig
export CURL_CA_BUNDLE="$(pwd)"/openshift.local.config/master/ca.crt
chmod +r "$(pwd)"/openshift.local.config/master/admin.kubeconfig
export REGISTRYCONFIG="$(pwd)"/openshift.local.config/master/openshift-registry.kubeconfig
export ROUTERCONFIG="$(pwd)"/openshift.local.config/master/openshift-router.kubeconfig


设置openshift 管理员admin密码
htpasswd -c /root/users.htpasswd admin


给admin添加集群管理员权限
oadm policy add-cluster-role-to-user cluster-admin admin


创建docker-registry 及 router 服务
oc login -u admin
oc project default
oc edit scc privileged #在最下面添加
- system:serviceaccount:default:registry
- system:serviceaccount:default:router
echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"registry"}}' | oc create -f -
echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
oadm registry --service-account=registry --credentials=$REGISTRYCONFIG --replicas=2
oadm router router-west --replicas=2 --credentials=$ROUTERCONFIG --service-account=router


ps: 这里如果没有梯子请修改docker的registry为国内地址 不然images可能会下载失败,这里会下载相应的images,时间有长有短,登录https://hostip:8443,用admin帐号登录后查看进度

docker登录创建的registry
oc get svc #取得registry的地址
ip route add 172.30.0.0/16 via 172.17.0.1 dev docker0 #第一个为registry的网段 后面为docker0 网桥的地址
docker login -u admin -p $(oc whoami -t) 172.30.197.49:5000


ps:这里docker版本为1.81和1.82 都出现了登陆验证出错的问题

安装dns服务
yum install bind-utils bind


配置dns
vim /etc/named.conf

在zone "." 下面添加,域名可以自定义

zone "test.com" IN {
    type master;
    file "/var/named/dynamic/lab.com.zone";
    allow-update { none; };
};

vim /var/named/dynamic/lab.com.zone
$TTL 3H
@       IN SOA  dns1.lab.com. rname.lab.com. (
                                      0       ; serial
                                      1D      ; refresh
                                      1H      ; retry
                                      1W      ; expire
                                      3H )    ; minimum
      NS              dns1.lab.com.
dns1    IN      A       192.168.181.128
*       IN      A       192.168.181.128

注意解析的为虚拟机的ip地址




启动dns服务,并将虚拟机的dns地址设置为本机,使用nslookup 检测dns解析是否正常
systemctl start named
nslookup www.test.com
Server:     192.168.181.128
Address:    192.168.181.128#53

Name:   www.test.com
Address: 192.168.181.128


测试
创建hello_openshift 的pod
vim hello-pod.json
{
"kind": "Pod",
"apiVersion": "v1",
"metadata": {
"name": "hello-openshift",
"creationTimestamp": null,
"labels": {
  "name": "hello-openshift"
}
},
"spec": {
"containers": [
  {
    "name": "hello-openshift",
    "image": "openshift/hello-openshift",
    "ports": [
      {
        "containerPort": 8080,
        "protocol": "TCP"
      }
    ],
    "resources": {},
    "volumeMounts": [
      {
        "name":"tmp",
        "mountPath":"/tmp"
      }
    ],
    "terminationMessagePath": "/dev/termination-log",
    "imagePullPolicy": "IfNotPresent",
    "capabilities": {},
    "securityContext": {
      "capabilities": {},
      "privileged": false
    }
  }
],
"volumes": [
  {
    "name":"tmp",
    "emptyDir": {}
  }
],
"restartPolicy": "Always",
"dnsPolicy": "ClusterFirst",
"serviceAccount": ""
},
"status": {}
}
oc create -f hello-pod.json


创建hello_openshift service
vim hello-svc.json
apiVersion: v1
kind: Service
metadata:
labels:
name: hello-openshift
name: hello-openshift
spec:
ports:
# the port that this service should serve on
- port: 8080
# label keys and values that must match in order to receive traffic for this service
selector:
name: hello-openshift


oc create -f hello-svc.json


检查svc
这里可以看到各个svc的虚拟ip的地址 通过telnet 可以检查网络状态
oc get svc
NAME              CLUSTER_IP       EXTERNAL_IP   PORT(S)                 SELECTOR                  AGE
docker-registry   172.30.97.24     <none>        5000/TCP                docker-registry=default   4h
hello-openshift   172.30.224.125   <none>        8080/TCP                name=hello-openshift      2h
kubernetes        172.30.0.1       <none>        443/TCP,53/UDP,53/TCP   <none>                    4h
router-west       172.30.173.97    <none>        80/TCP                  router=router-west        4h


检查pod状态
这里hello-openshift 为running 表示运行正常
oc get pods
NAME                      READY     STATUS    RESTARTS   AGE
docker-registry-1-14mcp   1/1       Running   0          4h
docker-registry-1-ggvwm   1/1       Running   0          4h
hello-openshift           1/1       Running   0          2h
router-west-1-93r05       1/1       Running   0          4h
router-west-1-u0opr       0/1       Pending   0          4h


创建route
oc expose service hello-openshift 


修改route的地址
oc edit route hello-openshift

将host的地址修改为dns定义的网址

host: hello-openshift-default.test.com


浏览器打开 输入hello-openshift-default.test.com

QQ图片20160202134747.png

10 个评论

你好
设置docker

vim /usr/lib/systemd/system/docker.service
在启动docker的后面添加 这个地址需要按照实际情况定义 后面可修改
--insecure-registry 172.30.0.0/16
这一步,具体如何操作
在docker daemon 这一行最后添加注册的registry的参数
你好,请问你集群部署方式有安装文档吗,最好能分享一份
木有。。。 请参考官方文档
你好,请问在
给admin添加集群管理员权限
oadm policy add-cluster-role-to-user cluster-admin admin
出现 oadm:command not found oc也一样,这是什么问题?
oadm 这个命令不存在 path 添加的有问题 可以直接在openshift目录下 使用./oadm 来使用
给admin添加集群管理员权限
oadm policy add-cluster-role-to-user cluster-admin admin时出现了
Error from server: User "admin" cannot get clusterpolicybindings at the cluster scope
怎么回事?谢谢!
切换到system:admin
可是不知道system:admin的密码?登陆不成功,是装openshift orgin 的时候遇到的问题。
@dodoing 你能解答一下,谢谢,正在搭建呢

要回复文章请先登录注册