扩展Docker JBoss WildFly服务器不工作
希望一切都好。
Env:centos 7.3.1611,kubernetes:1.5,docker 1.12
问题1:扩展的jboss docker无法正常工作,但是docker image成功创build
POD得到一个错误见下面,第7步。
问题2:一旦问题#1固定,然后我想上传到docker集线器: https : //hub.docker.com/
如果可能,我如何上传步骤。
1) pull docker pull jboss/wildfly 2) vi Dockerfile FROM jboss/wildfly RUN /opt/jboss/wildfly/bin/add-user.sh admin admin123$ --silent CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"] 3) Extend docker image docker build --tag=nbasetty/wildfly-server . 4) [root@centos7 custom-jboss]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nbasetty/wildfly-server latest c1fbb87faffd 43 minutes ago 583.8 MB docker.io/httpd latest e0645af13ada 2 weeks ago 177.5 MB 5)vi jboss-wildfly-rc-service-custom.yaml apiVersion: v1 kind: Service metadata: name: wildfly-service spec: externalIPs: - 10.0.2.15 selector: app: wildfly-rc-pod ports: - name: web port: 8080 #- name: admin-console # port: 9990 type: LoadBalancer --- apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc spec: replicas: 2 template: metadata: labels: app: wildfly-rc-pod spec: containers: - name: wildfly image: nbasetty/wildfly-server ports: - containerPort: 8080 #- containerPort: 9990 6) kubectl create -f jboss-wildfly-rc-service-custom.yaml 7) [root@centos7 jboss]# kubectl get pods NAME READY STATUS RESTARTS AGE mysql-pvc-pod 1/1 Running 6 2d wildfly-rc-d0k3h 0/1 ImagePullBackOff 0 23m wildfly-rc-hgsfj 0/1 ImagePullBackOff 0 23m [root@centos7 jboss]# kubectl logs wildfly-rc-d0k3h Error from server (BadRequest): container "wildfly" in pod "wildfly-rc-d0k3h" is waiting to start: trying and failing to pull image
很高兴你已经find一种方法来使其工作。 这是我遵循的步骤。
- 我将node-01标记为“dbserver:mysql”
- 在node-01中创builddocker镜像
- 创造了这个吊舱,它的工作。
apiVersion: v1 kind: ReplicationController metadata: name: wildfly-rc spec: replicas: 2 template: metadata: labels: app: wildfly-rc-pod spec: containers: - name: wildfly image: nbasetty/wildfly-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080 nodeSelector: dbserver: mysql
重新创build问题:
docker pull jboss/wildfly mkdir jw cd jw echo 'FROM jboss/wildfly RUN /opt/jboss/wildfly/bin/add-user.sh admin admin123$ --silent CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]' | tee Dockerfile docker build --tag=docker.io/surajd/wildfly-server .
查看可用的图像:
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/surajd/wildfly-server latest 10e96902ea12 11 seconds ago 583.8 MB
创build一个工作的configuration:
echo ' apiVersion: v1 kind: Service metadata: name: wildfly spec: selector: app: wildfly ports: - name: web port: 8080 type: LoadBalancer --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: wildfly spec: replicas: 2 template: metadata: labels: app: wildfly spec: containers: - name: wildfly image: docker.io/surajd/wildfly-server imagePullPolicy: Never ports: - containerPort: 8080 ' | tee config.yaml kubectl create -f config.yaml
注意imagePullPolicy: Never
字段imagePullPolicy: Never
,这可以帮助您使用节点上可用的图像(使用docker build
的图像)。 这适用于单节点群集,但可能会或可能不会在多节点群集上工作。 所以不build议把这个值,但是因为我们在单节点集群上做实验,所以我们可以把它设置为Never
。 始终将其设置为imagePullPolicy: Always
。 所以,每当预定的时间,图像将被从registry中拉出。 阅读关于imagePullPolicy
和一些configuration相关的提示 。
现在从registry中拉图像应该在registry中,所以要回答你的问题推送到docker集线器运行命令:
docker push docker.io/surajd/wildfly-server
所以在上面的例子surajd
您的dockerregistry用户名replacesurajd
。
以下是我在CentOS上设置单一节点群集的步骤:
我的机器版本:
$ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)
这是我所做的:
在CentOS上设置单节点k8s群集如下( src1 & src2 ):
yum update -y cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/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 kubectl kubernetes-cni systemctl enable docker && systemctl start docker systemctl enable kubelet && systemctl start kubelet sysctl net.bridge.bridge-nf-call-iptables=1 sysctl net.bridge.bridge-nf-call-ip6tables=1 kubeadm init cp /etc/kubernetes/admin.conf $HOME/ chown $(id -u):$(id -g) $HOME/admin.conf export KUBECONFIG=$HOME/admin.conf kubectl taint nodes --all node-role.kubernetes.io/master-
现在k8s版本:
# kubectl version Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:44:27Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:33:17Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}